<?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 Technologie grzewcze - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/technologie-grzewcze/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/technologie-grzewcze/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 06 Jun 2026 17:55:37 +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 Technologie grzewcze - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/technologie-grzewcze/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</title>
		<link>https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 14:43:41 +0000</pubDate>
				<category><![CDATA[Domy energooszczędne]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Koszty energii]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Koszty ogrzewania podłogowego]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania domu]]></category>
		<category><![CDATA[ogrzewanie domu 2026]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka czy grzejniki]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[zwrot z inwestycji ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3718</guid>

					<description><![CDATA[<p>Rosnące ceny energii sprawiają, że inwestorzy coraz częściej analizują nie tylko koszt budowy instalacji grzewczej, ale także jej opłacalność w długiej perspektywie. Właśnie dlatego temat zwrot z inwestycji w ogrzewanie podłogowe budzi dziś ogromne zainteresowanie wśród właścicieli domów i osób planujących budowę. Nowoczesne systemy niskotemperaturowe, współpracujące z pompami ciepła, pozwalają znacząco obniżyć rachunki za ogrzewanie. Sprawdzamy realne wyliczenia na 2026 rok, porównujemy koszty z grzejnikami i pokazujemy, kiedy podłogówka zaczyna przynosić realny zysk.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to jedna z tych decyzji, które dzielą inwestorów na dwa obozy: tych, którzy liczą każdą złotówkę wydaną „na starcie”, oraz tych, którzy patrzą na całkowity koszt posiadania domu przez dekady. W 2026 roku, w obliczu uwolnionych cen energii, taryf dynamicznych i rygorystycznych norm unijnych wynikających z dyrektywy EPBD, odpowiedź na pytanie o&nbsp;<strong>zwrot z inwestycji w ogrzewanie podłogowe</strong>&nbsp;nie jest już tylko kwestią komfortu, ale twardej matematyki, którą można precyzyjnie wyliczyć.</p>



<p class="wp-block-paragraph">Czy „podłogówka” to nadal luksus, czy może jedyna droga do przetrwania w dobie drogiego prądu? Sprawdzamy, ile realnie zaoszczędzisz po 10 latach i dlaczego tradycyjne grzejniki stają się dla pomp ciepła „kulą u nogi”. Wstępne koszty instalacji ogrzewania podłogowego są wyższe o około 30-40% w porównaniu do klasycznych grzejników, ale w 2026 roku kluczowym pojęciem jest&nbsp;<strong>COP (Coefficient of Performance)</strong>&nbsp;pompy ciepła.</p>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/" type="link" id="https://projekt-ogrzewania.pl/">Ogrzewanie podłogowe</a> to system niskotemperaturowy (zasilanie ok. 30–35°C), podczas gdy grzejniki wymagają 50–55°C, by pracować efektywnie. Każdy stopień obniżenia temperatury zasilania to około 2-3% oszczędności na rachunku za prąd. W skali dekady, przy uwzględnieniu inflacji i rosnących opłat dystrybucyjnych, różnica ta staje się Twoim czystym zyskiem. <strong>Inwestycja w ogrzewanie podłogowe zwrot</strong> następuje zazwyczaj między 7. a 11. rokiem użytkowania, ale jeśli weźmiemy pod uwagę taryfy dynamiczne (ładowanie „bufora ciepła” w wylewce, gdy prąd jest tani), okres ten może skrócić się nawet do 5-6 lat.</p>



<h2 class="wp-block-heading">Jakie czynniki decydują o opłacalności podłogówki w 2026 roku?</h2>



<p class="wp-block-paragraph">Zanim przejdziemy do szczegółowych wyliczeń, musimy zrozumieć, dlaczego w ogóle ogrzewanie podłogowe może być bardziej ekonomiczne od tradycyjnych grzejników. Odpowiedź kryje się w dwóch słowach:&nbsp;<strong>temperatura zasilania</strong>.</p>



<h3 class="wp-block-heading">Niska temperatura to wyższa efektywność źródła ciepła.</h3>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompy ciepła</a></strong> osiągają tym wyższą efektywność (współczynnik COP), im niższa jest temperatura wody w instalacji. Dla podłogówki COP może wynosić nawet 4,2–4,5, podczas gdy przy grzejnikach spada do 2,8–3,2.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/kociol-gazowy/" type="link" id="https://projekt-ogrzewania.pl/kociol-gazowy/">Kotły kondensacyjne</a></strong> w pełni wykorzystują zjawisko kondensacji pary wodnej właśnie przy niskich temperaturach powrotu. Im chłodniejsza woda wraca do kotła, tym więcej ciepła odzyskujemy ze spalin.</li>
</ul>



<h3 class="wp-block-heading">Taryfy dynamiczne i magazynowanie ciepła – nowość 2026 roku.</h3>



<p class="wp-block-paragraph">W 2026 roku taryfy dynamiczne pozwalają pompie pracować głównie w godzinach taniego prądu (np. między 11:00 a 15:00, gdy fotowoltaika sąsiadów generuje nadwyżki do sieci).&nbsp;<strong>Wylewka anhydrytowa o grubości 6-7 cm magazynuje to ciepło na wieczór</strong>, działając jak tani akumulator. Grzejniki takiej możliwości nie dają – muszą pracować wtedy, gdy jest zimno, czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy.</p>



<h3 class="wp-block-heading">Koszt instalacji w 2026 roku – ile trzeba wydać na starcie?</h3>



<p class="wp-block-paragraph">Dla potrzeb naszych wyliczeń przyjmujemy następujące koszty instalacji wewnętrznej (bez źródła ciepła):</p>



<ul class="wp-block-list">
<li><strong>Dom 120 m²</strong>: podłogówka około 27 600 zł, grzejniki około 19 200 zł</li>



<li><strong>Dom 150 m²</strong>: podłogówka około 34 500 zł, grzejniki około 24 000 zł</li>



<li><strong>Dom 200 m²</strong>: podłogówka około 46 000 zł, grzejniki około 32 000 zł</li>
</ul>



<h2 class="wp-block-heading">Realne wyliczenia dla czterech scenariuszy inwestycyjnych (dane na 2026 rok).</h2>



<p class="wp-block-paragraph">Przyjmujemy średnią cenę prądu w 2026 roku na poziomie&nbsp;<strong>1,10 zł/kWh</strong>&nbsp;(z dystrybucją) oraz gazu na poziomie&nbsp;<strong>0,42 zł/kWh</strong>. Standard energetyczny domów: WT 2021 (około&nbsp;<strong>70 kWh/m²/rok</strong>).</p>



<h3 class="wp-block-heading">Scenariusz A: Mały dom (120 m²) + Pompa ciepła powietrzna.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 120 m², zapotrzebowanie = 8 400 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 19 200 zł + 35 000 zł = 54 200 zł</li>



<li>Podłogówka + pompa ciepła: 27 600 zł + 35 000 zł = 62 600 zł</li>



<li><strong>Różnica (dopłata do podłogówki)</strong>: 8 400 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP przy 55°C = 3,0): 8 400 / 3,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li>Podłogówka (COP przy 35°C = 4,2): 8 400 / 4,2 = 2 000 kWh × 1,10 zł =&nbsp;<strong>2 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 080 – 2 200 =&nbsp;<strong>880 zł</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Prosty okres zwrotu</strong>: 8 400 zł / 880 zł ≈&nbsp;<strong>9,5 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz B: Średni dom (150 m²) + Pompa ciepła + Taryfy dynamiczne.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 150 m², zapotrzebowanie = 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 24 000 zł + 35 000 zł = 59 000 zł</li>



<li>Podłogówka + pompa ciepła: 34 500 zł + 35 000 zł = 69 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>&nbsp;(z optymalizacją taryf dynamicznych):</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 3,0, brak akumulacji): 10 500 / 3,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 4,2 + magazynowanie w wylewce pozwala wykorzystać 70% energii w tańszej taryfie 0,80 zł/kWh): 10 500 / 4,2 = 2 500 kWh, z czego 1 750 kWh po 0,80 zł i 750 kWh po 1,10 zł = 1 400 + 825 =&nbsp;<strong>2 225 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 2 225 =&nbsp;<strong>1 625 zł</strong>&nbsp;(dla uśrednienia przyjmijmy 1 450 zł, uwzględniając lata mniej słoneczne)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 1 450 zł ≈&nbsp;<strong>7,2 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz C: Duży dom (200 m²) + Pompa ciepła gruntowa.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 200 m², zapotrzebowanie = 14 000 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa gruntowa: 32 000 zł + 65 000 zł = 97 000 zł</li>



<li>Podłogówka + pompa gruntowa: 46 000 zł + 65 000 zł = 111 000 zł</li>



<li><strong>Różnica</strong>: 14 000 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 4,0 dla gruntówki przy 55°C): 14 000 / 4,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 5,0 przy 35°C): 14 000 / 5,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 3 080 =&nbsp;<strong>770 zł</strong>&nbsp;(Uwaga: to mniej niż w scenariuszu B, bo gruntówka jest już bardzo efektywna nawet z grzejnikami)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 14 000 zł / 770 zł ≈&nbsp;<strong>18 lat</strong>&nbsp;– to pokazuje, że przy gruntowej pompie głównym zyskiem jest komfort, a nie ekonomia.</p>



<h3 class="wp-block-heading">Scenariusz D: Dom 150 m² + Kocioł gazowy kondensacyjny (modernizacja).</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: jak w scenariuszu B, 150 m², 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + kocioł: 24 000 zł + 18 000 zł = 42 000 zł</li>



<li>Podłogówka + kocioł: 34 500 zł + 18 000 zł = 52 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (sprawność 95%): 10 500 / 0,95 = 11 053 kWh gazu × 0,42 zł =&nbsp;<strong>4 642 zł</strong></li>



<li>Podłogówka (sprawność 105%): 10 500 / 1,05 = 10 000 kWh gazu × 0,42 zł =&nbsp;<strong>4 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 4 642 – 4 200 =&nbsp;<strong>442 zł</strong>&nbsp;(w zaokrągleniu 450 zł)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 450 zł ≈&nbsp;<strong>23 lata</strong></p>



<p class="wp-block-paragraph"><strong>Wniosek</strong>: Przy gazie podłogówkę wybieramy głównie dla komfortu, a nie czystego zysku. To potwierdza, że prawdziwym beneficjentem niskotemperaturowej podłogówki jest pompa ciepła.</p>



<h2 class="wp-block-heading">Tabela rzeczywistego zwrotu w latach (z inflacją i taryfami dynamicznymi).</h2>



<p class="wp-block-paragraph">Poniższa tabela przedstawia skumulowane oszczędności z wyboru ogrzewania podłogowego nad grzejnikowym dla&nbsp;<strong>domu 150 m² z pompą ciepła i taryfami dynamicznymi</strong>&nbsp;(Scenariusz B). Założono średni wzrost cen energii o 4% rocznie oraz coroczną optymalizację taryfową.</p>



<style>
.roi-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 40px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.roi-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}

.roi-table thead {
    background: #1c7c54;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
}

.roi-table th {
    padding: 18px;
    font-size: 14px;
    text-align: left;
    font-weight: 600;
}

.roi-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: middle;
}

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

/* POPRAWKA: Selektor ograniczony tylko do ciała tabeli */
.roi-table tbody tr:hover:not(.roi-break) {
    background: #f2f7f5;
}

.roi-bold {
    font-weight: 700;
}

.roi-profit {
    color: #157a5b;
    font-weight: 700;
}

.roi-loss {
    color: #c0392b;
    font-weight: 600;
}

.roi-break {
    background: #fff3dc !important;
    font-weight: 700;
    box-shadow: inset 4px 0 0 #e0a94f;
}

.roi-progress {
    height: 8px;
    background: #e9f3ef;
    border-radius: 6px;
    margin-top: 6px;
    overflow: hidden;
}

.roi-bar {
    height: 100%;
    background: #1c7c54;
    border-radius: 6px;
}

@media(max-width:768px) {
    .roi-table th {
        font-size: 13px;
        padding: 14px;
    }
    .roi-table td {
        font-size: 14px;
        padding: 14px;
    }
}
</style>

<div class="roi-table-wrapper">
    <table class="roi-table">
        <thead>
            <tr>
                <th>Rok</th>
                <th>Koszt eksploatacji<br>(Grzejniki)</th>
                <th>Koszt eksploatacji<br>(Podłogówka)</th>
                <th>Skumulowana oszczędność</th>
                <th>Bilans inwestycji<br>(Nadwyżka / Strata)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="roi-bold">Rok 0</td>
                <td>–</td>
                <td>–</td>
                <td>–</td>
                <td class="roi-loss">-10 500 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 1</td>
                <td>3 850 zł</td>
                <td>2 225 zł</td>
                <td>1 625 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:8%"></div></div>
                </td>
                <td class="roi-loss">-8 875 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 2</td>
                <td>4 004 zł</td>
                <td>2 314 zł</td>
                <td>3 315 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:17%"></div></div>
                </td>
                <td class="roi-loss">-7 185 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 3</td>
                <td>4 164 zł</td>
                <td>2 407 zł</td>
                <td>5 072 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:26%"></div></div>
                </td>
                <td class="roi-loss">-5 428 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 4</td>
                <td>4 331 zł</td>
                <td>2 503 zł</td>
                <td>6 900 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:35%"></div></div>
                </td>
                <td class="roi-loss">-3 600 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 5</td>
                <td>4 504 zł</td>
                <td>2 603 zł</td>
                <td>8 801 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:45%"></div></div>
                </td>
                <td class="roi-loss">-1 699 zł</td>
            </tr>
            <tr class="roi-break">
                <td class="roi-bold">Rok 6</td>
                <td>4 684 zł</td>
                <td>2 707 zł</td>
                <td>10 778 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:55%"></div></div>
                </td>
                <td class="roi-profit">+278 zł (Próg rentowności)</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 7</td>
                <td>4 872 zł</td>
                <td>2 815 zł</td>
                <td>12 835 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:66%"></div></div>
                </td>
                <td class="roi-profit">+2 335 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 8</td>
                <td>5 067 zł</td>
                <td>2 928 zł</td>
                <td>14 974 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:77%"></div></div>
                </td>
                <td class="roi-profit">+4 474 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 9</td>
                <td>5 270 zł</td>
                <td>3 045 zł</td>
                <td>17 199 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:88%"></div></div>
                </td>
                <td class="roi-profit">+6 699 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 10</td>
                <td>5 481 zł</td>
                <td>3 167 zł</td>
                <td class="roi-bold">19 513 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:100%"></div></div>
                </td>
                <td class="roi-profit roi-bold">+9 013 zł</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph"><strong>Interpretacja</strong>: W 6. roku użytkowania system podłogowy nie tylko „spłacił” różnicę w cenie zakupu (10 500 zł), ale zaczyna przynosić czysty zysk. Po 10 latach na koncie zostaje dodatkowe&nbsp;<strong>9 013 zł</strong>&nbsp;w porównaniu do sytuacji, w której pozostalibyśmy przy grzejnikach. Po 15 latach zysk przekracza 20 000 zł.</p>



<h2 class="wp-block-heading">Porównanie systemów grzewczych: podłogówka vs grzejniki vs ogrzewanie powietrzne.</h2>



<p class="wp-block-paragraph">Dlaczego ogrzewanie powietrzne (klimatyzacja z funkcją grzania) przegrywa w bilansie 10-letnim? Choć jest tanie w montażu, w 2026 roku traci na&nbsp;<strong>braku bezwładności cieplnej</strong>. Poniższa tabela zestawia kluczowe cechy:</p>



<style>
.system-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 30px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.system-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.system-table thead {
    background: #1c7c54;
    color: #ffffff;
}

.system-table th {
    padding: 16px;
    font-size: 15px;
    text-align: left;
    font-weight: 600;
}

.system-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: top;
}

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

/* POPRAWKA: Selektor ograniczony do tbody */
.system-table tbody tr:hover {
    background: #f3f7f5;
}

.system-feature {
    font-weight: 600;
    white-space: nowrap;
}

.system-best {
    color: #1c7c54;
    font-weight: 700;
}

.system-warning {
    color: #c0392b;
    font-weight: 600;
}

@media(max-width:768px) {
    .system-table th {
        font-size: 13px;
    }
    .system-table td {
        font-size: 14px;
    }
}
</style>

<div class="system-table-wrapper">
    <table class="system-table">
        <thead>
            <tr>
                <th>Cecha</th>
                <th>Ogrzewanie podłogowe</th>
                <th>Grzejniki (konwekcyjne)</th>
                <th>Klimatyzacja (powietrze-powietrze)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="system-feature">Efektywność z PC</td>
                <td class="system-best">Najwyższa (COP 4.0–4.5)</td>
                <td>Średnia (COP 2.8–3.2)</td>
                <td>Wysoka (COP 3.5–4.0), ale brak akumulacji</td>
            </tr>
            <tr>
                <td class="system-feature">Komfort cieplny</td>
                <td class="system-best">Idealny (ciepłe stopy, brak przeciągów)</td>
                <td>Punktowy (zimne strefy przy podłodze)</td>
                <td class="system-warning">Nawiew (ryzyko przeciągów i przesuszenia)</td>
            </tr>
            <tr>
                <td class="system-feature">Akumulacja ciepła</td>
                <td class="system-best">Bardzo wysoka (6–12 godzin w wylewce)</td>
                <td>Bardzo niska (minuty)</td>
                <td>Brak</td>
            </tr>
            <tr>
                <td class="system-feature">Możliwość optymalizacji taryfowej</td>
                <td class="system-best">Pełna – ładujemy tani prąd w południe</td>
                <td>Ograniczona</td>
                <td class="system-warning">Żadna – grzeje gdy jest zimno, czyli drogo</td>
            </tr>
            <tr>
                <td class="system-feature">Estetyka</td>
                <td class="system-best">Niewidoczne</td>
                <td>Zajmują ściany</td>
                <td>Widoczne jednostki wewnętrzne</td>
            </tr>
            <tr>
                <td class="system-feature">Koszt instalacji</td>
                <td>Wysoki</td>
                <td>Niski / Średni</td>
                <td>Średni</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph">Kluczowa różnica: ogrzewanie podłogowe pozwala „kupić” tanią energię w południe i oddawać ją do północy. Klimatyzacja musi pracować wtedy, kiedy jest zimno – czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy. W perspektywie 10 lat to setki, a nawet tysiące złotych różnicy.</p>



<h2 class="wp-block-heading"><strong>Kalkulator zwrotu: Podłogówka vs Grzejniki</strong>.</h2>



<style>
.roi-kalkulator {
    max-width: 1100px;
    margin: 20px auto;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #333;
    background: #fdfdfd;
    border: 1px solid #eee;
    border-radius: 12px;
}

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

@media(max-width: 900px) {
    .roi-box { grid-template-columns: 1fr; }
}

.roi-panel {
    background: #ffffff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.roi-title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 25px;
    text-align: center;
    color: #1c7c54;
}

.roi-input {
    margin-bottom: 20px;
}

.roi-input label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 14px;
}

.roi-input .helper-text {
    font-size: 12px;
    color: #666;
    margin-bottom: 8px;
    display: block;
    line-height: 1.3;
}

.roi-input input,
.roi-input select {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 16px;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.roi-input input:focus {
    border-color: #1c7c54;
    outline: none;
    box-shadow: 0 0 0 3px rgba(28, 124, 84, 0.1);
}

.roi-result {
    font-size: 16px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f0f0f0;
}

.roi-big {
    font-size: 26px;
    font-weight: 700;
    color: #1c7c54;
    margin-top: 4px;
}

.roi-cta {
    margin-top: 25px;
}

.roi-cta a {
    display: block;
    background: #1c7c54;
    color: white;
    padding: 16px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    transition: background 0.3s ease;
    line-height: 1.4;
}

.roi-cta a:hover {
    background: #155f41;
}

#roi-res-zwrot {
    color: #e67e22;
}
</style>

<div class="roi-kalkulator">
    <div class="roi-title">Kalkulator zwrotu: Podłogówka vs Grzejniki</div>
    
    <div class="roi-box">
        <div class="roi-panel">
            <div class="roi-input">
                <label>Powierzchnia domu (m²)</label>
                <input type="number" id="roi-metraz" value="150" min="1">
            </div>

            <div class="roi-input">
                <label>Standard energetyczny</label>
                <select id="roi-standard">
                    <option value="70">Nowy dom (WT 2021) &#8211; 70 kWh/m²</option>
                    <option value="50">Dom energooszczędny &#8211; 50 kWh/m²</option>
                    <option value="100">Dom starszy / modernizowany &#8211; 100 kWh/m²</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Źródło ciepła</label>
                <select id="roi-zrodlo">
                    <option value="pc_powietrze">Pompa ciepła powietrzna</option>
                    <option value="pc_grunt">Pompa ciepła gruntowa</option>
                    <option value="gaz">Kocioł gazowy kondensacyjny</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Cena energii (zł/kWh)</label>
                <input type="number" id="roi-energia" value="1.10" step="0.01">
            </div>

            <div class="roi-input">
                <label>Różnica w koszcie inwestycji (zł)</label>
                <span class="helper-text">Wpisz o ile droższy jest montaż podłogówki od instalacji z grzejnikami (np. 12 000 zł).</span>
                <input type="number" id="roi-roznica" placeholder="Pozostaw puste, by zobaczyć same oszczędności" min="0">
            </div>
        </div>

        <div class="roi-panel">
            <div class="roi-result">
                Roczny koszt – grzejniki
                <div class="roi-big" id="roi-res-grzejniki">0 zł</div>
            </div>

            <div class="roi-result">
                Roczny koszt – podłogówka
                <div class="roi-big" id="roi-res-podlogowka">0 zł</div>
            </div>

            <div class="roi-result">
                Roczna oszczędność na paliwie
                <div class="roi-big" id="roi-res-oszczednosc">0 zł</div>
            </div>

            <div class="roi-result">
                Czas zwrotu różnicy kosztów
                <div class="roi-big" id="roi-res-zwrot">0 lat</div>
            </div>

            <div class="roi-result">
                Bilans po 10 latach użytkowania
                <div class="roi-big" id="roi-res-zysk">0 zł</div>
            </div>

            <div class="roi-cta">
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">
                    Zamów profesjonalny projekt, aby realnie obniżyć koszty ogrzewania
                </a>
            </div>
        </div>
    </div>
</div>

<script>
(function() {
    // Funkcja formatująca walutę
    function format(val) {
        return Math.round(val).toLocaleString('pl-PL') + " zł";
    }

    function oblicz() {
        const metraz = parseFloat(document.getElementById("roi-metraz").value) || 0;
        const standard = parseFloat(document.getElementById("roi-standard").value) || 0;
        const cenaEnergii = parseFloat(document.getElementById("roi-energia").value) || 0;
        const roznicaInwestycji = parseFloat(document.getElementById("roi-roznica").value) || 0;
        const zrodlo = document.getElementById("roi-zrodlo").value;

        // Roczne zapotrzebowanie na ciepło (kWh)
        const zapotrzebowanie = metraz * standard;

        // Ustawienie sprawności (COP / Sprawność kotła)
        let copGrzejnik = 3.0, copPodloga = 4.2;

        if (zrodlo === "pc_grunt") { copGrzejnik = 4.0; copPodloga = 5.0; }
        if (zrodlo === "gaz") { copGrzejnik = 0.95; copPodloga = 1.05; }

        // Koszty eksploatacji
        const kosztG = (zapotrzebowanie / copGrzejnik) * cenaEnergii;
        const kosztP = (zapotrzebowanie / copPodloga) * cenaEnergii;
        const oszczednoscRoczna = kosztG - kosztP;
        
        // Logika wyświetlania zwrotu
        let zwrotWynik = "0.0 lat";
        if (oszczednoscRoczna > 0) {
            if (roznicaInwestycji > 0) {
                zwrotWynik = (roznicaInwestycji / oszczednoscRoczna).toFixed(1) + " lat";
            } else {
                zwrotWynik = "0.0 lat";
            }
        } else {
            zwrotWynik = "Brak zwrotu";
        }

        // Zysk po 10 latach (Oszczędności * 10 - koszt początkowy różnicy)
        const bilans10 = (oszczednoscRoczna * 10) - roznicaInwestycji;

        // Renderowanie wyników
        document.getElementById("roi-res-grzejniki").innerText = format(kosztG);
        document.getElementById("roi-res-podlogowka").innerText = format(kosztP);
        document.getElementById("roi-res-oszczednosc").innerText = format(oszczednoscRoczna);
        document.getElementById("roi-res-zwrot").innerText = zwrotWynik;
        document.getElementById("roi-res-zysk").innerText = format(bilans10);
    }

    // Nasłuchiwanie zmian
    const inputs = ["roi-metraz", "roi-standard", "roi-zrodlo", "roi-energia", "roi-roznica"];
    inputs.forEach(id => {
        document.getElementById(id).addEventListener("input", oblicz);
    });

    // Startowe wywołanie
    oblicz();
})();
</script>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – klucz do realnych oszczędności</h2>



<p class="wp-block-paragraph">Wszystkie powyższe wyliczenia opierają się na założeniu, że instalacja została prawidłowo zaprojektowana i wykonana. W kontekście <strong>zwrotu z inwestycji w ogrzewanie podłogowe</strong> należy podkreślić, że <strong>profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt</a> to nie koszt, ale inwestycja, która bezpośrednio przekłada się na oszczędności</strong>.</p>



<p class="wp-block-paragraph">Dlaczego projekt jest tak ważny w 2026 roku? Po pierwsze, określa on optymalny rozstaw rur w zależności od stref obciążenia cieplnego – w pomieszczeniach narażonych na duże straty (przy oknach, drzwiach balkonowych) rury układa się gęściej, co zapobiega wychładzaniu podłogi. Po drugie, projekt uwzględnia opory przepływu i dobiera odpowiednią średnicę rur, aby pompa ciepła pracowała w optymalnym zakresie wydajności. Po trzecie, zawiera wytyczne dotyczące grubości i rodzaju wylewki –&nbsp;<strong>wylewka anhydrytowa o grubości 6-7 cm</strong>&nbsp;to dziś standard, bo najlepiej przewodzi ciepło i magazynuje je na potrzeby taryf dynamicznych.</p>



<p class="wp-block-paragraph">Dla inwestorów modernizujących stare budynki, którzy nie mogą zerwać podłóg, projektanci proponują <strong><a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche</a> (cienkowarstwowe)</strong> – ich zwrot jest nieco dłuższy, ale wciąż lepszy niż pozostanie przy wysokotemperaturowych grzejnikach. Koszt projektu (1 500–3 000 zł) zwraca się już w pierwszym sezonie grzewczym dzięki niższym rachunkom i bezawaryjnej pracy systemu.</p>



<h2 class="wp-block-heading">Dodatkowe korzyści: wartość domu przy sprzedaży i prestiż.</h2>



<p class="wp-block-paragraph">W 2026 roku kupujący domy są znacznie bardziej świadomi energetycznie niż jeszcze 5 lat temu.&nbsp;<strong>Certyfikat Energetyczny (Świadectwo Charakterystyki Energetycznej)</strong>&nbsp;jest dokumentem krytycznym przy transakcji.</p>



<ul class="wp-block-list">
<li><strong>Wyższa klasa energetyczna</strong>: Dom z podłogówką i pompą ciepła łatwiej wpada w klasę „A” lub „A+”. To realnie podnosi cenę ofertową nieruchomości o&nbsp;<strong>5–8%</strong>&nbsp;. Dla domu wartego 1 000 000 zł to dodatkowe 50 000 – 80 000 zł.</li>



<li><strong>Uniwersalność wykończenia</strong>: Brak grzejników pod oknami do samej ziemi (portfenetrami) to standard nowoczesnej architektury. Domy z grzejnikami w 2026 roku zaczynają być postrzegane jako „technologicznie przestarzałe”.</li>



<li><strong>Zdrowie i higiena</strong>: Ograniczenie konwekcji (unoszenia się kurzu) to argument, który dla alergików jest wart dopłaty przy zakupie domu.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1772881304440"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe naprawdę się opłaca?</strong></strong> <p class="schema-faq-answer">Tak, szczególnie w połączeniu z pompą ciepła. Niska temperatura zasilania zwiększa efektywność systemu, dzięki czemu rachunki za energię mogą być nawet o kilkadziesiąt procent niższe niż przy grzejnikach.</p> </div> <div class="schema-faq-section" id="faq-question-1772881366554"><strong class="schema-faq-question"><strong>Po ilu latach następuje zwrot z inwestycji w ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W większości nowych domów z pompą ciepła <strong>zwrot z inwestycji w ogrzewanie podłogowe</strong> następuje zazwyczaj po około 6–9 latach użytkowania, w zależności od cen energii i standardu izolacji budynku.</p> </div> <div class="schema-faq-section" id="faq-question-1772881379861"><strong class="schema-faq-question"><strong>Czy podłogówka działa lepiej z pompą ciepła niż z grzejnikami?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe jest systemem niskotemperaturowym, dlatego pompa ciepła pracuje z wyższym współczynnikiem COP, co bezpośrednio przekłada się na niższe koszty eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881405330"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe można zastosować w modernizowanym domu?</strong></strong> <p class="schema-faq-answer">Tak, istnieją systemy cienkowarstwowe i suche, które pozwalają zamontować podłogówkę bez znacznego podnoszenia poziomu podłogi. W takich przypadkach kluczowy jest dobrze wykonany projekt instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881413673"><strong class="schema-faq-question"><strong>Czy podłogówka zwiększa wartość domu?</strong></strong> <p class="schema-faq-answer">Tak. Domy wyposażone w nowoczesne systemy niskotemperaturowe, takie jak ogrzewanie podłogowe i pompy ciepła, uzyskują często wyższą klasę energetyczną, co może zwiększyć wartość nieruchomości nawet o kilka procent.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: czy to się opłaca?</h2>



<p class="wp-block-paragraph">Jeśli budujesz dom w 2026 roku i planujesz w nim mieszkać dłużej niż 7 lat,&nbsp;<strong>inwestycja w ogrzewanie podłogowe zwrot</strong>&nbsp;jest gwarantowany przez samą fizykę i zmiany w systemie rozliczeń energii. Nasze wyliczenia pokazują, że:</p>



<ol start="1" class="wp-block-list">
<li><strong>Przy pompie ciepła i taryfach dynamicznych</strong>&nbsp;okres zwrotu wynosi&nbsp;<strong>6–9 lat</strong>&nbsp;(w zależności od metrażu i izolacji). Po 10 latach zysk sięga kilku-kilkunastu tysięcy złotych.</li>



<li><strong>Przy kotle gazowym</strong>&nbsp;okres zwrotu wydłuża się do 20–25 lat – w tym przypadku podłogówkę wybieramy dla komfortu, a nie dla oszczędności.</li>



<li><strong>Kluczową rolę odgrywa możliwość magazynowania ciepła w wylewce</strong>&nbsp;i wykorzystania tanich taryf – to wyróżnik podłogówki, którego nie ma żaden inny system.</li>



<li><strong>Wartość domu przy sprzedaży rośnie o 5–8%</strong>&nbsp;, co wielokrotnie przewyższa początkową dopłatę do instalacji.</li>
</ol>



<h3 class="wp-block-heading">Rekomendacje na 2026 rok:</h3>



<ul class="wp-block-list">
<li><strong>Dla oszczędnych</strong>: Wybierz system wodny z grubszą wylewką anhydrytową (minimum 6 cm) i sterownikiem obsługującym taryfy dynamiczne. To połączenie daje najszybszy zwrot.</li>



<li><strong>Dla modernizujących</strong>: Jeśli nie możesz zerwać podłóg, rozważ systemy suche (cienkowarstwowe) – ich zwrot jest nieco dłuższy, ale wciąż opłacalny w perspektywie 10-12 lat.</li>
</ul>



<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to w 2026 roku nie tylko zakup <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rurek</a> i <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/" type="link" id="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">rozdzielaczy</a>. To zakup <strong>„akumulatora ciepła”</strong>, który jako jedyny pozwala skutecznie walczyć z niestabilnymi cenami energii na wolnym rynku. Decydując się na podłogówkę, zyskujesz nie tylko niższe rachunki, ale przede wszystkim wyższą wartość swojego domu i bezkonkurencyjny komfort przez najbliższe dekady.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kocioł na pellet.</title>
		<link>https://projekt-ogrzewania.pl/kociol-na-pellet/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 14 Jan 2026 10:09:49 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Hydraulika budowlana]]></category>
		<category><![CDATA[Instalacje domowe]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Kotły na pellet]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[ekologia]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[kocioł na pellet]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pellet drzewny]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3170</guid>

					<description><![CDATA[<p>Planując nowoczesny i ekonomiczny system grzewczy, coraz więcej inwestorów zwraca uwagę na kocioł na pellet jako stabilne, ekologiczne i przewidywalne źródło ciepła. W połączeniu z wodnym ogrzewaniem podłogowym tworzy on układ, który doskonale wykorzystuje niskotemperaturowy charakter instalacji i pozwala osiągnąć bardzo dobre parametry eksploatacyjne. W artykule szczegółowo omawiamy, dlaczego kocioł na pellet idealnie współpracuje z podłogówką, jakie komponenty są kluczowe, jak wygląda projektowanie takiego systemu oraz jakie realne koszty inwestycyjne i eksploatacyjne należy wziąć pod uwagę.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/">Kocioł na pellet.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #ffffff;
    --rk-intro-pellet: #d97706; /* Bursztyn/Pellet */
    --rk-intro-pellet-light: #fef3c7;
    --rk-intro-eco: #059669; /* Eko zieleń */
    --rk-intro-eco-light: #d1fae5;
    --rk-intro-alert: #dc2626;
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #cbd5e1;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
}

.rk-intro-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-intro-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(217, 119, 6, 0.15);
    border: 1px solid rgba(217, 119, 6, 0.3);
    overflow: hidden;
}

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

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

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

.rk-intro-h2 span { color: var(--rk-intro-pellet); }

.rk-intro-paragraph {
    font-size: 18px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Moduł Synergii */
.rk-intro-interactive {
    padding: 40px 50px;
    background: var(--rk-intro-bg);
}

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

/* Przełącznik */
.rk-intro-toggle-box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-intro-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-intro-muted);
    cursor: pointer;
    transition: color 0.3s;
}

.rk-intro-label.active-eco { color: var(--rk-intro-eco); }
.rk-intro-label.active-alert { color: var(--rk-intro-alert); }

.rk-intro-switch {
    position: relative;
    display: inline-block;
    width: 64px;
    height: 32px;
}

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

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

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

input:checked + .rk-intro-slider { background-color: var(--rk-intro-alert); }
input:checked + .rk-intro-slider:before { transform: translateX(32px); }

/* Grid Zawartości */
.rk-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: var(--rk-intro-card);
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    transition: all 0.4s ease;
}

/* Stan Synergia (Zaznaczone) */
.state-synergy .rk-intro-grid {
    border-color: var(--rk-intro-eco);
    box-shadow: 0 10px 30px -10px rgba(5, 150, 105, 0.2);
}

/* Stan Brak Synergii */
.state-error .rk-intro-grid {
    border-color: var(--rk-intro-alert);
    box-shadow: 0 10px 30px -10px rgba(220, 38, 38, 0.2);
}

/* Animacje SVG */
.rk-intro-svg-box {
    background: #1e293b;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-svg-main { width: 100%; max-width: 280px; height: auto; }

/* Obiekty SVG i animacje */
.anim-pellet-drop { opacity: 0; transform: translateY(-10px); }
.state-synergy .anim-pellet-drop { animation: dropPellet 1.5s infinite linear; }
.state-error .anim-pellet-drop { animation: jamPellet 0.5s infinite alternate; }

.anim-heat-flow { stroke-dasharray: 10 15; stroke-dashoffset: 0; transition: stroke 0.3s; }
.state-synergy .anim-heat-flow { stroke: var(--rk-intro-eco); animation: flowSmooth 2s linear infinite; }
.state-error .anim-heat-flow { stroke: var(--rk-intro-alert); animation: flowStutter 1s linear infinite; stroke-dasharray: 5 25; }

.anim-fire { transform-origin: bottom center; transition: fill 0.3s; }
.state-synergy .anim-fire { fill: var(--rk-intro-pellet); animation: steadyBurn 2s infinite alternate; }
.state-error .anim-fire { fill: var(--rk-intro-alert); animation: wildBurn 0.3s infinite alternate; }

@keyframes dropPellet { 0% { opacity: 0; transform: translateY(-10px); } 50% { opacity: 1; } 100% { opacity: 0; transform: translateY(30px); } }
@keyframes jamPellet { 0% { transform: translateY(0) rotate(-10deg); fill: #ef4444; } 100% { transform: translateY(2px) rotate(10deg); fill: #fca5a5; } }
@keyframes flowSmooth { to { stroke-dashoffset: -50; } }
@keyframes flowStutter { 0%, 100% { opacity: 1; } 50% { opacity: 0.2; } to { stroke-dashoffset: -10; } }
@keyframes steadyBurn { from { transform: scaleY(0.9); } to { transform: scaleY(1.1); } }
@keyframes wildBurn { from { transform: scaleY(0.5) scaleX(1.2); } to { transform: scaleY(1.5) scaleX(0.8); } }

/* Panel Danych */
.rk-intro-data-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

.rk-intro-data-row {
    background: var(--rk-intro-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-intro-border);
    transition: all 0.3s;
}

.state-synergy .rk-intro-data-row { border-left-color: var(--rk-intro-eco); }
.state-error .rk-intro-data-row { border-left-color: var(--rk-intro-alert); }

.rk-intro-data-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-intro-data-val {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-link {
    color: var(--rk-intro-pellet);
    text-decoration: none;
    border-bottom: 2px dashed rgba(217, 119, 6, 0.4);
    font-weight: 700;
    transition: all 0.3s;
}

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

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-interactive { padding: 30px 20px; }
    .rk-intro-h2 { font-size: 26px; }
    .rk-intro-grid { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-intro-svg-box { padding: 30px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Kocioł na pellet – Zautomatyzowane serce nowoczesnego systemu grzewczego",
    "description": "Analiza synergii między zautomatyzowanym kotłem na pellet a niskotemperaturową instalacją płaszczyznową. Jak wyeliminować błędy wykonawcze i obniżyć koszty eksploatacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-wstep",
    "name": "Wskaźniki efektywności energetycznej dla biomasy (2026)",
    "description": "Zestawienie inżynierskie obrazujące parametry zautomatyzowanego kotła na pellet pracującego w synergii z instalacją płaszczyznową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zautomatyzowany kocioł na pellet",
      "koszty eksploatacji podłogówki",
      "system grzewczy z podajnikiem",
      "sprawność normatywna pieca",
      "niskotemperaturowa instalacja płaszczyznowa"
    ],
    "measurementTechnique": "Porównanie parametrów pracy ciągłej (zbuforowanej) z układem obarczonym błędami wykonawczymi (taktowanie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna sprawność normatywna: >92% przy prawidłowej integracji.",
        "Kluczowy element: Automatyczny podajnik sprasowanych granulatów drzewnych.",
        "Kompatybilność: Wymaga rozprzężenia hydraulicznego z niskotemperaturowym jastrychem."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-wstep",
    "name": "Symulator Synergii Grzewczej",
    "description": "Interaktywna aplikacja wizualizująca na żywo przepływ energii między zautomatyzowanym kotłem stałopalnym a układem płaszczyznowym, uwidaczniająca wpływ błędów montażowych.",
    "applicationCategory": "EngineeringSimulator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Canvas/SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Inwestycja w przyszłość
        </div>
        <h2 class="rk-intro-h2">Kocioł na pellet – <span>Zautomatyzowane serce systemu</span></h2>
        <p class="rk-intro-paragraph">
            Planując system grzewczy dla nowoczesnego lub modernizowanego budynku, inwestorzy szukają synergii między niskimi kosztami eksploatacji a bezobsługowością. Kocioł na pellet z automatycznym podajnikiem paliwa zyskuje miano jednego z najbardziej stabilnych źródeł biomasowych. Ten zaawansowany technologicznie generator ciepła, spalający sprasowane pod wysokim ciśnieniem granulaty drzewne, doskonale wpisuje się w wymagania współczesnego budownictwa. Kluczem do sukcesu jest jego prawidłowa integracja z <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color:#fcd34d; font-weight:700;">niskotemperaturową instalacją płaszczyznową</a>, co pozwala uzyskać maksymalną sprawność normatywną i pełną kontrolę nad mikroklimatem w pomieszczeniach, eliminując jednocześnie <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color:#fcd34d; font-weight:700;">typowe błędy wykonawcze</a> spotykane na polskich budowach.
        </p>
    </div>

    <div class="rk-intro-interactive">
        <h3 class="rk-intro-h3">Synergia technologii: Od granulatu po komfort cieplny</h3>
        
        <div class="rk-intro-toggle-box">
            <span class="rk-intro-label active-eco" id="rk-lbl-synergy" onclick="document.getElementById('rk-intro-toggle').click()">Prawidłowa Integracja (Synergia)</span>
            <label class="rk-intro-switch">
                <input type="checkbox" id="rk-intro-toggle">
                <span class="rk-intro-slider"></span>
            </label>
            <span class="rk-intro-label" id="rk-lbl-error" onclick="document.getElementById('rk-intro-toggle').click()">Błędy Wykonawcze</span>
        </div>

        <div class="rk-intro-grid state-synergy" id="rk-dynamic-grid">
            
            <div class="rk-intro-svg-box">
                <svg class="rk-svg-main" viewBox="0 0 200 150">
                    <polygon points="20,20 60,20 50,70 30,70" fill="#475569" stroke="#94a3b8" stroke-width="2"/>
                    <circle class="anim-pellet-drop" cx="40" cy="40" r="3" fill="#f59e0b"/>
                    <circle class="anim-pellet-drop" cx="35" cy="50" r="3" fill="#f59e0b" style="animation-delay: 0.3s;"/>
                    <circle class="anim-pellet-drop" cx="45" cy="45" r="3" fill="#f59e0b" style="animation-delay: 0.6s;"/>
                    
                    <rect x="25" y="70" width="80" height="60" fill="#334155" rx="4"/>
                    <path class="anim-fire" d="M65 120 C50 120, 50 90, 65 80 C80 90, 80 120, 65 120 Z"/>
                    
                    <path class="anim-heat-flow" d="M105 100 L140 100 L140 130 L180 130" fill="none" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
                    
                    <rect x="130" y="120" width="60" height="20" fill="#cbd5e1" rx="2" opacity="0.5"/>
                    <circle cx="150" cy="130" r="4" fill="#ef4444"/>
                    <circle cx="170" cy="130" r="4" fill="#ef4444"/>
                </svg>
            </div>

            <div class="rk-intro-data-panel">
                <div class="rk-intro-data-row">
                    <div class="rk-intro-data-title">Zasilanie paliwem</div>
                    <div class="rk-intro-data-val" id="rk-val-fuel">Płynne dawkowanie automatyczne</div>
                </div>
                <div class="rk-intro-data-row">
                    <div class="rk-intro-data-title">Sprawność normatywna</div>
                    <div class="rk-intro-data-val" id="rk-val-eff">> 92% (Praca stabilna)</div>
                </div>
                <div class="rk-intro-data-row">
                    <div class="rk-intro-data-title">Koszty eksploatacji</div>
                    <div class="rk-intro-data-val" id="rk-val-cost">Niskie i przewidywalne</div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Strict no H2/H3 for fallback)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Algorytmicznej</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent inżynieryjny (w tym symulacje SVG i warstwa danych Schema.org) jest chroniony. Wykryto nieautoryzowane uruchomienie poza domeną docelową.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełącznika Synergii
    const toggle = document.getElementById('rk-intro-toggle');
    const grid = document.getElementById('rk-dynamic-grid');
    const lblSyn = document.getElementById('rk-lbl-synergy');
    const lblErr = document.getElementById('rk-lbl-error');
    
    // Pola tekstowe
    const valFuel = document.getElementById('rk-val-fuel');
    const valEff = document.getElementById('rk-val-eff');
    const valCost = document.getElementById('rk-val-cost');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // Stan Błędu
            grid.className = 'rk-intro-grid state-error';
            lblSyn.classList.remove('active-eco');
            lblErr.classList.add('active-alert');
            
            valFuel.innerHTML = 'Zablokowany / Zsyp nienormatywny';
            valEff.innerHTML = '< 70% (Taktowanie i straty)';
            valCost.innerHTML = 'Wysokie (Marnotrawstwo paliwa)';
        } else {
            // Stan Synergii
            grid.className = 'rk-intro-grid state-synergy';
            lblErr.classList.remove('active-alert');
            lblSyn.classList.add('active-eco');
            
            valFuel.innerHTML = 'Płynne dawkowanie automatyczne';
            valEff.innerHTML = '> 92% (Praca stabilna)';
            valCost.innerHTML = 'Niskie i przewidywalne';
        }
    });
});
</script>



<style>
:root {
    --rk-sync-dark: #111827;
    --rk-sync-card: #ffffff;
    --rk-sync-fire: #ea580c; /* Ogień / Pellet */
    --rk-sync-fire-light: #ffedd5;
    --rk-sync-water: #0ea5e9; /* Woda / Bufor */
    --rk-sync-water-light: #e0f2fe;
    --rk-sync-error: #dc2626; /* Błąd / Przegrzanie */
    --rk-sync-bg: #f8fafc;
    --rk-sync-border: #cbd5e1;
    --rk-sync-text: #334155;
    --rk-sync-muted: #64748b;
}

.rk-sync-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-sync-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.15);
    border: 1px solid rgba(234, 88, 12, 0.3);
    overflow: hidden;
}

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

.rk-sync-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 88, 12, 0.2);
    color: #fdba74;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 88, 12, 0.3);
}

.rk-sync-h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-sync-h2 span { color: var(--rk-sync-fire); }

.rk-sync-paragraph {
    font-size: 17px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Sekcja Symulatora */
.rk-sync-interactive {
    padding: 40px 50px;
    background: var(--rk-sync-bg);
}

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

/* Switcher / Toggle */
.rk-sync-toggle-box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 15px;
    border-radius: 100px;
    border: 1px solid var(--rk-sync-border);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.rk-sync-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-sync-muted);
    cursor: pointer;
    transition: color 0.3s;
    user-select: none;
}

.rk-sync-label.active-safe { color: var(--rk-sync-water); }
.rk-sync-label.active-error { color: var(--rk-sync-error); }

.rk-sync-switch {
    position: relative;
    display: inline-block;
    width: 64px;
    height: 32px;
    flex-shrink: 0;
}

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

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

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

input:checked + .rk-sync-slider { background-color: var(--rk-sync-error); }
input:checked + .rk-sync-slider:before { transform: translateX(32px); }

/* Layout Danych */
.rk-sync-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-sync-panel {
    background: var(--rk-sync-card);
    border: 1px solid var(--rk-sync-border);
    border-radius: 16px;
    padding: 30px;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Stany Wizualne */
.state-safe .rk-sync-panel { border-color: var(--rk-sync-water); box-shadow: 0 10px 30px -10px rgba(14, 165, 233, 0.2); }
.state-error .rk-sync-panel { border-color: var(--rk-sync-error); box-shadow: 0 10px 30px -10px rgba(220, 38, 38, 0.2); }

/* SVG Canvas przeniesiony na pełną szerokość pod spód */
.rk-sync-svg-wrapper {
    grid-column: 1 / -1;
    background: #0f172a;
    border-radius: 12px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    border: 1px solid var(--rk-sync-border);
    transition: border-color 0.4s ease;
}

.state-safe .rk-sync-svg-wrapper { border-color: var(--rk-sync-water); }
.state-error .rk-sync-svg-wrapper { border-color: var(--rk-sync-error); }

.rk-svg-main {
    width: 100%;
    max-width: 450px;
    height: auto;
}

/* Animacje SVG: Kocioł i Ogień */
.anim-flame { transform-origin: bottom center; transition: fill 0.3s; }
.state-safe .anim-flame { fill: #f59e0b; animation: burnSteady 2s infinite alternate; }
.state-error .anim-flame { fill: #ef4444; animation: burnStutter 0.3s infinite alternate; }

@keyframes burnSteady { from { transform: scaleY(0.9); } to { transform: scaleY(1.1); } }
@keyframes burnStutter { from { transform: scaleY(0.4) scaleX(1.2); opacity: 0.5; } to { transform: scaleY(1.3) scaleX(0.8); opacity: 1; } }

/* Animacje SVG: Rury i Woda */
.anim-flow-hot { stroke-dasharray: 6 12; stroke-dashoffset: 0; }
.state-safe .anim-flow-hot { stroke: #f97316; animation: flowSmooth 1.5s linear infinite; }
.state-error .anim-flow-hot { stroke: #dc2626; animation: flowFast 0.5s linear infinite; }

.anim-flow-mix { stroke-dasharray: 6 12; stroke-dashoffset: 0; transition: opacity 0.3s; }
.state-safe .anim-flow-mix { stroke: #0ea5e9; animation: flowSmooth 2s linear infinite; opacity: 1; }
.state-error .anim-flow-mix { opacity: 0; }

@keyframes flowSmooth { to { stroke-dashoffset: -36; } }
@keyframes flowFast { to { stroke-dashoffset: -36; } }

/* Animacje SVG: Bufor i Mieszacz */
.anim-buffer { transition: opacity 0.4s, transform 0.4s; transform-origin: bottom; }
.state-safe .anim-buffer { opacity: 1; transform: scaleY(1); }
.state-error .anim-buffer { opacity: 0.2; transform: scaleY(0); }

/* Animacje SVG: Wylewka i Pęknięcia */
.anim-floor { transition: fill 1s; }
.state-safe .anim-floor { fill: #94a3b8; }
.state-error .anim-floor { fill: #fca5a5; animation: throbRed 1.5s infinite alternate; }

.anim-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.1s; opacity: 0; }
.state-error .anim-crack { stroke-dashoffset: 0; opacity: 1; transition: stroke-dashoffset 1s 0.5s ease-out, opacity 0.1s 0.5s; }

@keyframes throbRed { from { fill: #fca5a5; } to { fill: #ef4444; } }

/* Typografia Danych */
.rk-data-block {
    height: 100%; /* Wyrównanie wysokości kafelków na desktopie */
}

.rk-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-sync-muted);
    margin-bottom: 10px;
}

.rk-data-val {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-sync-text);
}

.rk-data-val strong {
    font-weight: 800;
    color: var(--rk-sync-dark);
}

.rk-link {
    color: var(--rk-sync-water);
    text-decoration: none;
    border-bottom: 2px dashed rgba(14, 165, 233, 0.4);
    font-weight: 700;
    transition: all 0.3s;
}
.state-error .rk-link { color: var(--rk-sync-error); border-bottom-color: rgba(220, 38, 38, 0.4); }
.rk-link:hover { border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-sync-header, .rk-sync-interactive { padding: 30px 20px; }
    .rk-sync-h2 { font-size: 26px; }
    .rk-sync-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-sync-toggle-box { flex-direction: column; text-align: center; gap: 15px; border-radius: 20px; }
    .rk-sync-svg-wrapper { grid-column: auto; padding: 20px 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-podlogowka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Czy kocioł na pellet nadaje się do ogrzewania podłogowego?",
    "description": "Szczegółowa analiza synchronizacji hydraulicznej: sprawność kotła pelletowego, bezwładność cieplna wylewki oraz konsekwencje braku bufora ciepła wg normy PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-podlogowka",
    "name": "Parametry synchronizacji hydraulicznej: Pellet i Ogrzewanie Podłogowe",
    "description": "Baza danych termodynamicznych i normatywnych opisujących współpracę wysokotemperaturowego kotła na biomasę z niskotemperaturową płytą grzewczą.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kocioł na pellet a podłogówka",
      "bufor ciepła",
      "temperatura zasilania podłogówki",
      "pękanie wylewki betonowej",
      "taktowanie kotła",
      "norma PN-EN 1264"
    ],
    "measurementTechnique": "Analiza termodynamiczna zgodna z normami PN-EN 303-5:2021-10 oraz PN-EN 1264-4, badająca akumulację cieplną jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg normatywny: Minimalna pojemność bufora 50 l/kW.",
        "Parametr bezpieczeństwa: Max temp. zasilania 55°C, optymalnie 35-40°C.",
        "Bezwładność cieplna: Wylewka betonowa 6,5 cm waży 130-150 kg/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-podlogowka",
    "name": "Symulator Synchronizacji Hydraulicznej",
    "description": "Interaktywne narzędzie inżynierskie wizualizujące przepływy cieplne. Symuluje procesy taktowania palnika oraz pękania jastrychu przy braku grupy pompowej z mieszaczem.",
    "applicationCategory": "EngineeringSimulator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and inline SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sync-container" id="rk-sync-app">
    <div class="rk-sync-header">
        <div class="rk-sync-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Kompatybilności
        </div>
        <h2 class="rk-sync-h2">Czy kocioł na pellet nadaje się do <span>ogrzewania podłogowego?</span></h2>
        <p class="rk-sync-paragraph">
            Tak, <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/" style="color:#fdba74; font-weight:700;">kocioł na pellet</a> doskonale nadaje się do zasilania wodnego ogrzewania podłogowego, pod warunkiem zastosowania układu mieszającego oraz bufora ciepła o minimalnej pojemności <strong>50 l/kW mocy kotła</strong>, zgodnie z wytycznymi normy <strong>PN-EN 303-5:2021-10</strong>. Ogrzewanie podłogowe wymaga niskich temperatur zasilania (maksymalnie 55°C w stanach awaryjnych, typowo 35-40°C), natomiast kocioł pelletowy musi pracować w temperaturze powrotu powyżej 55°C, aby uniknąć korozji niskotemperaturowej. Ta różnica potencjałów termicznych sprawia, że bezpośrednie połączenie tych dwóch systemów bez hydraulicznego rozprzężenia to <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color:#fdba74; font-weight:700;">krytyczny błąd sztuki budowlanej</a>.
        </p>
    </div>

    <div class="rk-sync-interactive">
        <h3 class="rk-sync-h3">Symulacja Przepływów: Konsekwencje Błędów Instalacyjnych</h3>
        
        <div class="rk-sync-toggle-box">
            <span class="rk-sync-label active-safe" id="rk-lbl-safe" onclick="document.getElementById('rk-sync-toggle').click()">Standard (Bufor + Mieszacz)</span>
            <label class="rk-sync-switch">
                <input type="checkbox" id="rk-sync-toggle">
                <span class="rk-sync-slider"></span>
            </label>
            <span class="rk-sync-label" id="rk-lbl-error" onclick="document.getElementById('rk-sync-toggle').click()">Błąd (Bezpośrednie spięcie)</span>
        </div>

        <div class="rk-sync-grid state-safe" id="rk-main-grid">
            
            <div class="rk-sync-panel">
                <div class="rk-data-block">
                    <div class="rk-data-label">Praca źródła ciepła (Sprawność)</div>
                    <div class="rk-data-val" id="rk-text-boiler">
                        <strong>Stabilny cykl ciągły (>92%).</strong> Nowoczesny palnik wrzutkowy pracuje z mocą nominalną. Ciepło ładuje <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">zbiornik buforowy</a>, eliminując problem zjawiska taktowania. Emisja CO i pyłów jest minimalna.
                    </div>
                </div>
            </div>

            <div class="rk-sync-panel">
                <div class="rk-data-block">
                    <div class="rk-data-label">Parametry jastrychu i bezpieczeństwo</div>
                    <div class="rk-data-val" id="rk-text-floor">
                        <strong>Łagodne ładowanie (35-40°C).</strong> <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-link">Zawór mieszający</a> obniża temperaturę do bezpiecznego poziomu. Ogromna masa <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">wylewki betonowej</a> (grub. 6,5 cm, 150 kg/m²) działa jak powolny, pasywny akumulator, powoli oddając ciepło do pomieszczenia.
                    </div>
                </div>
            </div>

            <div class="rk-sync-svg-wrapper">
                <svg class="rk-svg-main" viewBox="0 0 250 180">
                    <rect x="10" y="70" width="60" height="90" fill="#334155" rx="4"></rect>
                    <path class="anim-flame" d="M40 140 C25 140, 20 100, 40 80 C60 100, 55 140, 40 140 Z"></path>
                    
                    <path class="anim-flow-hot" d="M70 90 L100 90" fill="none" stroke-width="6" stroke-linecap="round"></path>
                    
                    <g class="anim-buffer">
                        <rect x="100" y="40" width="40" height="120" fill="#1e293b" stroke="#0ea5e9" stroke-width="2" rx="8"></rect>
                        <path class="anim-flow-mix" d="M140 140 L160 140" fill="none" stroke-width="6" stroke-linecap="round"></path>
                        <polygon points="160,130 160,150 180,140" fill="#cbd5e1"></polygon>
                        <polygon points="170,120 190,120 180,140" fill="#cbd5e1"></polygon>
                    </g>

                    <path class="anim-flow-hot" id="rk-bypass-pipe" d="M70 90 L180 90 L180 140" fill="none" stroke-width="6" stroke-linecap="round" style="opacity:0;"></path>

                    <path class="anim-flow-mix" id="rk-floor-pipe" d="M180 140 L210 140" fill="none" stroke-width="6" stroke-linecap="round"></path>
                    
                    <rect class="anim-floor" x="180" y="130" width="60" height="30" rx="2"></rect>
                    <circle cx="200" cy="140" r="5" fill="#1e293b"></circle>
                    <circle cx="220" cy="140" r="5" fill="#1e293b"></circle>
                    
                    <path class="anim-crack" d="M190 130 L195 145 L185 160" fill="none" stroke="#000" stroke-width="2"></path>
                    <path class="anim-crack" d="M220 130 L215 140 L225 155" fill="none" stroke="#000" stroke-width="2"></path>
                </svg>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-sync-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🚧</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano kod autorski</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Próba osadzenia interaktywnego symulatora inżynierskiego poza autoryzowaną domeną. Kontener oraz struktura JSON-LD zostały zdeztywowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    const toggle = document.getElementById('rk-sync-toggle');
    const grid = document.getElementById('rk-main-grid');
    const lblSafe = document.getElementById('rk-lbl-safe');
    const lblError = document.getElementById('rk-lbl-error');
    
    const bypassPipe = document.getElementById('rk-bypass-pipe');
    const floorPipe = document.getElementById('rk-floor-pipe');
    
    const txtBoiler = document.getElementById('rk-text-boiler');
    const txtFloor = document.getElementById('rk-text-floor');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            grid.className = 'rk-sync-grid state-error';
            lblSafe.classList.remove('active-safe');
            lblError.classList.add('active-error');
            
            bypassPipe.style.opacity = '1';
            floorPipe.classList.remove('anim-flow-mix');
            floorPipe.classList.add('anim-flow-hot');
            
            txtBoiler.innerHTML = '<strong>Taktowanie (Spadek o 15-20%).</strong> Kocioł ciągle się rozpala i wygasza, próbując dopasować moc do małego zładu wody. Powstaje smoła, zapalarka ulega uszkodzeniu po jednym sezonie.';
            txtFloor.innerHTML = '<strong>Destrukcja termiczna (70°C).</strong> Wpuszczenie wrzątku bezpośrenio w rury powoduje natychmiastowe przekroczenie dopuszczalnej normą PN-EN 1264 temperatury (max 29°C). Wylewka pęka, płytki odpadają od podłoża.';
            
        } else {
            grid.className = 'rk-sync-grid state-safe';
            lblError.classList.remove('active-error');
            lblSafe.classList.add('active-safe');
            
            bypassPipe.style.opacity = '0';
            floorPipe.classList.remove('anim-flow-hot');
            floorPipe.classList.add('anim-flow-mix');
            
            txtBoiler.innerHTML = '<strong>Stabilny cykl ciągły (>92%).</strong> Nowoczesny palnik wrzutkowy pracuje z mocą nominalną. Ciepło ładuje <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">zbiornik buforowy</a>, eliminując problem zjawiska taktowania. Emisja CO i pyłów jest minimalna.';
            txtFloor.innerHTML = '<strong>Łagodne ładowanie (35-40°C).</strong> <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-link">Zawór mieszający</a> obniża temperaturę do bezpiecznego poziomu. Ogromna masa <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">wylewki betonowej</a> (grub. 6,5 cm) działa jak pasywny akumulator.';
        }
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #0f172a;
    --rk-temp-card: #ffffff;
    --rk-temp-hot: #ef4444; /* Wrzątek / Kocioł */
    --rk-temp-mix: #f59e0b; /* Optymalna podłoga */
    --rk-temp-cold: #3b82f6; /* Powrót / Zima */
    --rk-temp-evoh: #10b981; /* Ochrona EVOH */
    --rk-temp-bg: #f8fafc;
    --rk-temp-border: #e2e8f0;
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
}

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

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

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

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

.rk-temp-h2 span { color: var(--rk-temp-hot); }

.rk-temp-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-temp-paragraph strong { color: #ffffff; }

/* Sekcja Symulatora Krzywej */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
    border-bottom: 1px solid var(--rk-temp-border);
}

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

/* Dashboard Controls */
.rk-temp-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

/* Suwak (Slider) */
.rk-slider-group {
    margin-bottom: 30px;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
}

.rk-slider-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-temp-cold);
    background: #f0f9ff;
    padding: 5px 15px;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

.rk-range-input {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: linear-gradient(to right, #3b82f6 0%, #cbd5e1 50%, #f59e0b 100%);
    border-radius: 4px;
    outline: none;
}

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

/* Switcher / Toggle dla zaworu */
.rk-toggle-group {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    padding-top: 20px;
    border-top: 1px dashed var(--rk-temp-border);
}

.rk-valve-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-temp-muted);
    transition: color 0.3s;
}

.rk-valve-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 32px;
}
.rk-valve-switch input { opacity: 0; width: 0; height: 0; }
.rk-valve-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-temp-mix);
    border-radius: 32px;
    transition: .4s;
}
.rk-valve-slider:before {
    position: absolute;
    content: "";
    height: 24px;
    width: 24px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    border-radius: 50%;
    transition: .4s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
input:checked + .rk-valve-slider { background-color: var(--rk-temp-hot); }
input:checked + .rk-valve-slider:before { transform: translateX(28px); }

/* Grid Wyników i SVG */
.rk-temp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* SVG Panel */
.rk-temp-svg-panel {
    background: #0f172a;
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    position: relative;
}

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

/* Data Panel */
.rk-temp-data-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-temp-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-data-card.card-boiler { border-left: 4px solid var(--rk-temp-hot); }
.rk-data-card.card-floor { border-left: 4px solid var(--rk-temp-mix); }
.rk-data-card.card-status { border-left: 4px solid var(--rk-temp-cold); background: #f8fafc; }

.rk-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
}

.rk-card-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-temp-dark);
}

.val-hot { color: var(--rk-temp-hot); }
.val-mix { color: var(--rk-temp-mix); }

/* Sekcja EVOH */
.rk-temp-evoh-sec {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-evoh-box {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-evoh-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-temp-evoh);
    color: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-evoh-text h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: #166534;
}

.rk-evoh-text p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #15803d;
}

/* SVG Animations & Dynamic Classes */
.anim-flow { stroke-dasharray: 6 12; animation: flow 1s linear infinite; }
@keyframes flow { to { stroke-dashoffset: -18; } }

.crack-path { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.5s ease-out; opacity: 0; }
.show-crack .crack-path { stroke-dashoffset: 0; opacity: 1; }

.rk-link {
    color: var(--rk-temp-mix);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { border-bottom-style: solid; color: var(--rk-temp-hot); }

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-interactive, .rk-temp-evoh-sec { padding: 30px 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; }
    .rk-evoh-box { flex-direction: column; }
    .rk-temp-h2 { font-size: 26px; }
    .rk-data-card { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    },
    "headline": "Maksymalna temperatura zasilania podłogówki z kotła i rola zaworu trójdrogowego",
    "description": "Zrozumienie normy PN-EN 1264-2: dlaczego woda w rurach podłogówki nie może przekraczać 50°C. Interaktywny symulator krzywej grzewczej 0.4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#dataset",
    "name": "Krzywa grzewcza 0.4 i parametry zasilania (2026)",
    "description": "Zestawienie inżynierskie mapujące optymalną temperaturę zasilania jastrychu w zależności od temperatury zewnętrznej przy zachowaniu granicy 50°C.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania podłogówki",
      "krzywa grzewcza 0.4",
      "zawór trójdrogowy mieszający",
      "bariera antydyfuzyjna EVOH",
      "norma PN-EN 1264-2"
    ],
    "measurementTechnique": "Obliczenia termodynamiczne automatyki pogodowej (slope 0.4) w relacji do ograniczeń fizycznych wytrzymałości jastrychu (klasa F4 wg PN-EN 13813).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kocioł pelletowy: Generuje stałe 65-80°C.",
        "Krzywa 0.4 przy +10°C: Zasilanie podłogi = 26°C.",
        "Krzywa 0.4 przy -15°C: Zasilanie podłogi = 38°C.",
        "Ograniczenie jastrychu: Max 50°C (skrajnie 55°C w łazience)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#webapp",
    "name": "Symulator Zaworu Mieszającego i Krzywej Grzewczej",
    "description": "Interaktywna aplikacja obliczeniowa na żywo korelująca odczyty z czujnika pogodowego z pracą zaworu trójdrogowego, symulująca pękanie posadzki przy awarii mieszacza.",
    "applicationCategory": "EngineeringSimulator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 Range Input, and SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-temp-app">
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9a4 4 0 0 0-2 7.5"></path><path d="M12 3v2"></path><path d="m6.6 18.4-1.4 1.4"></path><path d="m20 4-1.4 1.4"></path><path d="M4 22l1.4-1.4"></path><path d="M21 13h-2"></path><path d="m17.4 18.4 1.4 1.4"></path></svg>
            Parametry Krytyczne wg Normy
        </div>
        <h2 class="rk-temp-h2">Jaka jest maksymalna temperatura zasilania <span>podłogówki z kotła?</span></h2>
        <p class="rk-temp-paragraph">
            Maksymalna temperatura zasilania instalacji ogrzewania podłogowego wynosi <strong>50°C</strong> (w skrajnych przypadkach dla łazienek 55°C), co precyzyjnie definiuje <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" style="color:#fca5a5; font-weight:700;">norma PN-EN 1264-2</a>. Przekroczenie tej wartości granicznej generuje naprężenia wewnętrzne w jastrychu przekraczające jego wytrzymałość na rozciąganie przy zginaniu (klasa jastrychu minimum F4 wg PN-EN 13813). W normalnych warunkach eksploatacyjnych, przy temperaturze projektowej zewnętrznej dla III strefy klimatycznej Polski (-20°C), <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color:#fca5a5; font-weight:700;">optymalna temperatura zasilania wynosi 35°C do 40°C</a>.
        </p>
    </div>

    <div class="rk-temp-interactive">
        <h3 class="rk-temp-h3">Rola zaworu trójdrogowego i krzywej grzewczej</h3>
        <p style="text-align:center; color:#64748b; margin-bottom:30px; font-size:15px; max-width:700px; margin-left:auto; margin-right:auto;">
            Aby obniżyć parametry wysokiej temperatury z kotła (65-80°C) do bezpiecznego poziomu, stosuje się <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-link">zawór mieszający z siłownikiem</a>. Regulator dobiera temperaturę według <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-link">krzywej grzewczej</a>. Sprawdź, jak to działa na żywo (krzywa 0.4):
        </p>

        <div class="rk-temp-dashboard">
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <div class="rk-slider-label">Temperatura Zewnętrzna (Czujnik)</div>
                    <div class="rk-slider-value" id="rk-out-temp">+10°C</div>
                </div>
                <input type="range" id="rk-out-slider" class="rk-range-input" min="-20" max="15" value="10">
            </div>

            <div class="rk-toggle-group">
                <span class="rk-valve-label" id="rk-lbl-on" style="color:#f59e0b;">Zawór Działa (Mieszanie)</span>
                <label class="rk-valve-switch">
                    <input type="checkbox" id="rk-valve-toggle">
                    <span class="rk-valve-slider"></span>
                </label>
                <span class="rk-valve-label" id="rk-lbl-off">Awaria / Brak Zaworu</span>
            </div>
        </div>

        <div class="rk-temp-grid">
            <div class="rk-temp-svg-panel" id="rk-svg-container">
                <svg class="rk-svg-main" viewBox="0 0 250 150">
                    <rect x="10" y="20" width="50" height="100" fill="#334155" rx="4"/>
                    <text x="35" y="75" fill="#ef4444" font-size="16" font-weight="bold" text-anchor="middle">75°</text>
                    
                    <path class="anim-flow" d="M60 40 L100 40" fill="none" stroke="#ef4444" stroke-width="8" stroke-linecap="round"/>
                    
                    <g id="rk-svg-valve">
                        <polygon points="100,30 100,50 120,40" fill="#cbd5e1"/>
                        <polygon points="120,40 140,30 140,50" fill="#cbd5e1"/>
                        <polygon points="110,60 130,60 120,40" fill="#cbd5e1"/>
                        <circle cx="120" cy="40" r="4" fill="#1e293b"/>
                    </g>

                    <path class="anim-flow" id="rk-svg-return" d="M120 110 L120 60" fill="none" stroke="#3b82f6" stroke-width="6" stroke-linecap="round"/>
                    <path class="anim-flow" d="M220 110 L120 110" fill="none" stroke="#3b82f6" stroke-width="6" stroke-linecap="round"/>

                    <path class="anim-flow" id="rk-svg-mixpipe" d="M140 40 L220 40 L220 70" fill="none" stroke="#f59e0b" stroke-width="8" stroke-linecap="round" transition="stroke 0.3s"/>
                    
                    <rect id="rk-svg-floor" x="160" y="70" width="80" height="30" fill="#94a3b8" rx="2" style="transition: fill 0.5s;"/>
                    <text id="rk-svg-floortext" x="200" y="90" fill="#ffffff" font-size="14" font-weight="bold" text-anchor="middle">26°C</text>

                    <path class="crack-path" d="M170 70 L180 85 L175 100" fill="none" stroke="#000000" stroke-width="2"/>
                    <path class="crack-path" d="M210 70 L205 85 L215 100" fill="none" stroke="#000000" stroke-width="2"/>
                </svg>
            </div>

            <div class="rk-temp-data-panel">
                <div class="rk-data-card card-boiler">
                    <div class="rk-card-title">Zasilanie Kotła (Stałe)</div>
                    <div class="rk-card-value val-hot">75.0 °C</div>
                </div>
                <div class="rk-data-card card-floor" id="rk-card-mix">
                    <div class="rk-card-title">Woda na posadzkę (Zredukowana)</div>
                    <div class="rk-card-value val-mix" id="rk-val-mix">26.0 °C</div>
                </div>
                <div class="rk-data-card card-status" id="rk-card-status">
                    <div class="rk-card-title">Status Jastrychu</div>
                    <div class="rk-card-value" style="color:#10b981;" id="rk-val-status">Bezpieczny (Norma)</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-temp-evoh-sec">
        <h3 class="rk-temp-h3" style="text-align:left;">Znaczenie bariery antydyfuzyjnej EVOH w rurach</h3>
        <div class="rk-evoh-box">
            <div class="rk-evoh-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
            <div class="rk-evoh-text">
                <h4>Ochrona instalacji wg normy DIN 4726</h4>
                <p>
                    Zgodnie z normą DIN 4726, <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" style="color:#166534; font-weight:700; text-decoration:underline; text-underline-offset:2px;">rury grzewcze (PEX, PERT)</a> stosowane w instalacjach płaszczyznowych muszą posiadać warstwę antydyfuzyjną EVOH (alkohol etylowinylowy). Zapobiega ona przenikaniu tlenu z powietrza do wnętrza układu. Przy kotłach stałopalnych, natleniona woda błyskawicznie powoduje korozję wżerową wymienników i zapowietrzanie się pętli grzewczych.
                </p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Ochrona Algorytmiczna (Brak znaczników H w fallbacku)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-temp-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Moduł kalkulatora krzywej grzewczej i pliki JSON-LD zostały zablokowane z powodu nieautoryzowanego użycia na obcej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Krzywej Grzewczej 0.4
    const slider = document.getElementById('rk-out-slider');
    const outTempDisplay = document.getElementById('rk-out-temp');
    const toggleValve = document.getElementById('rk-valve-toggle');
    
    // UI Elements
    const lblOn = document.getElementById('rk-lbl-on');
    const lblOff = document.getElementById('rk-lbl-off');
    const valMix = document.getElementById('rk-val-mix');
    const valStatus = document.getElementById('rk-val-status');
    const cardMix = document.getElementById('rk-card-mix');
    
    // SVG Elements
    const svgMixPipe = document.getElementById('rk-svg-mixpipe');
    const svgFloor = document.getElementById('rk-svg-floor');
    const svgFloorText = document.getElementById('rk-svg-floortext');
    const svgContainer = document.getElementById('rk-svg-container');
    const svgReturn = document.getElementById('rk-svg-return');

    // Algorytm wyliczający T_zasilania na podstawie krzywej 0.4
    // Uproszczona matematyka dająca dokładnie: +10C -> 26C, -15C -> 38C
    // T_floor = 30.8 - (0.48 * T_out)
    function calculateFloorTemp(tOut) {
        let tFloor = 30.8 - (0.48 * tOut);
        return Math.round(tFloor * 10) / 10;
    }

    function updateSimulation() {
        let tOut = parseInt(slider.value);
        let prefix = tOut > 0 ? "+" : "";
        outTempDisplay.innerText = prefix + tOut + "°C";

        let isBroken = toggleValve.checked;

        if (isBroken) {
            // AWARIA ZAWORU - Płynie wrzątek z kotła
            lblOn.style.color = 'var(--rk-temp-muted)';
            lblOff.style.color = 'var(--rk-temp-hot)';
            
            valMix.innerText = "75.0 °C";
            valMix.className = "rk-card-value val-hot";
            cardMix.style.borderLeftColor = "var(--rk-temp-hot)";
            
            valStatus.innerText = "KRYTYCZNE: Pękanie jastrychu!";
            valStatus.style.color = "var(--rk-temp-hot)";
            
            // Wizualizacja SVG
            svgMixPipe.setAttribute("stroke", "#ef4444"); // czerwona rura
            svgReturn.style.opacity = "0.2"; // brak powrotu zimnej
            svgFloor.setAttribute("fill", "#fca5a5"); // podłoga się przegrzewa
            svgFloorText.textContent = "75°C";
            svgContainer.classList.add("show-crack");

        } else {
            // ZAWÓR DZIAŁA - Mieszanie pogodowe
            lblOff.style.color = 'var(--rk-temp-muted)';
            lblOn.style.color = 'var(--rk-temp-mix)';
            
            let tFloor = calculateFloorTemp(tOut);
            valMix.innerText = tFloor.toFixed(1) + " °C";
            valMix.className = "rk-card-value val-mix";
            cardMix.style.borderLeftColor = "var(--rk-temp-mix)";
            
            if (tFloor <= 50) {
                valStatus.innerText = "Bezpieczny (Zgodnie z normą)";
                valStatus.style.color = "var(--rk-temp-evoh)";
                svgFloor.setAttribute("fill", "#94a3b8");
                svgContainer.classList.remove("show-crack");
            } else {
                valStatus.innerText = "Ostrzeżenie: Granica normy";
                valStatus.style.color = "var(--rk-temp-mix)";
            }

            // Wizualizacja SVG - zmiana koloru rury w zależności od temp
            svgReturn.style.opacity = "1";
            svgFloorText.textContent = tFloor.toFixed(0) + "°C";
            
            if(tFloor < 30) svgMixPipe.setAttribute("stroke", "#fbbf24"); // żółty
            else if (tFloor < 40) svgMixPipe.setAttribute("stroke", "#f59e0b"); // pomarańcz
            else svgMixPipe.setAttribute("stroke", "#d97706"); // ciemny pomarańcz
        }
    }

    slider.addEventListener('input', updateSimulation);
    toggleValve.addEventListener('change', updateSimulation);

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



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-card: #ffffff;
    --rk-flow-cyan: #06b6d4; /* Precyzja Inżynierska */
    --rk-flow-cyan-light: #cffafe;
    --rk-flow-blue: #3b82f6; /* Woda / Przepływ */
    --rk-flow-blue-light: #dbeafe;
    --rk-flow-alert: #ef4444; /* Ostrzeżenie / Brak zładu */
    --rk-flow-bg: #f8fafc;
    --rk-flow-border: #e2e8f0;
    --rk-flow-text: #334155;
    --rk-flow-muted: #64748b;
}

.rk-flow-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-flow-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(6, 182, 212, 0.15);
    border: 1px solid var(--rk-flow-border);
    overflow: hidden;
}

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

.rk-flow-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(6, 182, 212, 0.3);
}

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

.rk-flow-h2 span { color: var(--rk-flow-cyan); }

.rk-flow-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-flow-formula {
    background: rgba(0,0,0,0.3);
    padding: 15px 20px;
    border-radius: 12px;
    font-family: 'Courier New', monospace;
    font-size: 18px;
    color: #22d3ee;
    text-align: center;
    margin: 20px 0;
    border: 1px dashed rgba(34, 211, 238, 0.4);
}

/* Interaktywny Kalkulator */
.rk-flow-interactive {
    padding: 40px 50px;
    background: var(--rk-flow-bg);
}

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

.rk-flow-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-flow-border);
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

/* Suwaki / Controls */
.rk-flow-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-group {
    background: var(--rk-flow-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-flow-border);
}

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

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

.rk-slider-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-flow-cyan);
}

.rk-range-input {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: linear-gradient(to right, #bae6fd 0%, #06b6d4 100%);
    border-radius: 4px;
    outline: none;
}

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

/* Wyniki & Wizualizacja */
.rk-flow-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-result-card {
    background: var(--rk-flow-bg);
    border: 1px solid var(--rk-flow-border);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-result-card.highlight {
    background: var(--rk-flow-cyan-light);
    border-color: var(--rk-flow-cyan);
}

.rk-result-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-flow-text);
}

.rk-result-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-flow-dark);
}

.rk-result-card.highlight .rk-result-val { color: var(--rk-flow-cyan); }

/* Zład Wody Info */
.rk-volume-info {
    margin-top: 40px;
    padding: 30px;
    background: #ffffff;
    border-radius: 16px;
    border-left: 5px solid var(--rk-flow-alert);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-volume-info h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-volume-info p {
    margin: 0 0 10px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-flow-text);
}

.rk-link {
    color: var(--rk-flow-cyan);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(6, 182, 212, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { border-bottom-style: solid; color: #0891b2; }

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-interactive { padding: 30px 20px; }
    .rk-flow-grid { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-flow-h2 { font-size: 26px; }
    .rk-volume-info { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Ile m³ wody na godzinę musi przepłynąć przez instalację? Algorytmy i zład wody",
    "description": "Zrozumienie fundamentalnego wzoru termodynamiki m = Q / (cw · ΔT). Obliczanie nastaw rotametrów na rozdzielaczu i analiza ryzyka małego zładu wody przy kotłach na pellet.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#dataset-przeplyw",
    "name": "Kalkulator Przepływu Masowego i Zładu Wody (2026)",
    "description": "Zestawienie inżynierskie łączące ciepło właściwe wody (1,163 Wh/kg·K) z zapotrzebowaniem na moc i projektową deltą temperatur w celu wyznaczenia przepływu w rotametrach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ w ogrzewaniu podłogowym",
      "wzór na przepływ wody",
      "nastawy rotametrów podłogówka",
      "zład wody rura 16x2",
      "taktowanie kotła pelletowego"
    ],
    "measurementTechnique": "Termodynamiczne równanie bilansu cieplnego z uwzględnieniem ciepła właściwego wody oraz pojemności wodnej rur PEX/PERT 16x2 (0,113 l/mb).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przykład 10 kW, ΔT = 5 K: Przepływ = 1,72 m³/h (28,6 l/min).",
        "Przykład pętla 1200 W, ΔT = 5 K: Przepływ pętli = 3,44 l/min.",
        "Zład wody dla 100 m² (rozstaw 10 cm): ok. 113 litrów (Zbyt mało dla kotła stałopalnego bez bufora)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#webapp-przeplyw",
    "name": "Interaktywny Kalkulator Rotametrów i Algorytmów Przepływu",
    "description": "Dynamiczne narzędzie inżynierskie obliczające na żywo przepływ objętościowy [l/min] na bazie zmian mocy OZC i spadku temperatury ΔT.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Range Inputs.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-flow-app">
    <div class="rk-flow-header">
        <div class="rk-flow-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Termodynamika w Praktyce
        </div>
        <h2 class="rk-flow-h2">Ile m³ wody na godzinę musi <span>przepłynąć przez instalację?</span></h2>
        <p class="rk-flow-paragraph">
            Dla budynku o zapotrzebowaniu na moc cieplną <strong>Q = 10 kW</strong> i projektowej różnicy temperatur <strong>ΔT = 5 K</strong> (typowy spadek dla podłogówki), wymagany masowy przepływ nominalny wynosi dokładnie <strong>1,72 m³/h</strong> (28,6 l/min). Wartość tę wylicza się bezpośrednio z fundamentalnego wzoru termodynamiki:
        </p>
        <div class="rk-flow-formula">
            m = Q / (cw · ΔT)
        </div>
        <p class="rk-flow-paragraph" style="font-size: 14px; opacity: 0.9;">
            Gdzie <strong>cw</strong> to ciepło właściwe wody wynoszące <strong>1,163 Wh/(kg·K)</strong>. Każde drastyczne zdławienie przepływu poniżej wartości obliczeniowej przez źle dobraną <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" style="color:#67e8f9; font-weight:700;">pompę obiegową</a> skutkuje niedogrzaniem stref oddalonych od rozdzielacza i zaburzeniem równowagi hydraulicznej obiegu.
        </p>
    </div>

    <div class="rk-flow-interactive">
        <h3 class="rk-flow-h3">Algorytm obliczania przepływu dla pętli grzewczych</h3>
        
        <div class="rk-flow-grid">
            <div class="rk-flow-controls">
                <div class="rk-slider-group">
                    <div class="rk-slider-header">
                        <div class="rk-slider-label">Zapotrzebowanie z OZC (Q)</div>
                        <div class="rk-slider-value" id="rk-val-q">1200 W</div>
                    </div>
                    <input type="range" id="rk-slider-q" class="rk-range-input" min="500" max="2500" step="100" value="1200">
                </div>

                <div class="rk-slider-group">
                    <div class="rk-slider-header">
                        <div class="rk-slider-label">Spadek temperatury (ΔT)</div>
                        <div class="rk-slider-value" id="rk-val-dt">5 K</div>
                    </div>
                    <input type="range" id="rk-slider-dt" class="rk-range-input" min="3" max="10" step="1" value="5">
                </div>
            </div>

            <div class="rk-flow-results">
                <div class="rk-result-card">
                    <div class="rk-result-label">Strumień masowy</div>
                    <div class="rk-result-val" id="rk-out-mass">206.4 kg/h</div>
                </div>
                <div class="rk-result-card highlight">
                    <div class="rk-result-label">Nastawa Rotametru <br><span style="font-size:11px; color:#64748b; font-weight:400;">(Złożenie dla 2 pętli w salonie)</span></div>
                    <div class="rk-result-val" id="rk-out-rota">1.72 l/min</div>
                </div>
            </div>
        </div>

        <div class="rk-volume-info">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Zjawisko zbyt małego zładu wody
            </h4>
            <p>
                Ogrzewanie podłogowe oparte na <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" class="rk-link">rurze PEX/PERT 16x2 mm</a> mieści w sobie zaledwie <strong>0,113 litra wody</strong> na każdy metr bieżący. Przy rozstawie co 10 cm, na powierzchni 100 m² mamy około 1000 m rury, co daje zład wodny rzędu zaledwie <strong>113 litrów</strong>.
            </p>
            <p>
                Dla nowoczesnego kotła na pellet o modulacji mocy od 3 kW do 10 kW to <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/" class="rk-link">zdecydowanie za mało</a>. Kocioł nie ma gdzie zrzucić wyprodukowanej energii cieplnej, gdy automatyka pokojowa zamknie większość obwodów. Bez dodatkowego magazynu energii (zbiornika buforowego) układ błyskawicznie wejdzie w tryb niszczącego, <strong>ciągłego taktowania</strong>.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Ochrona Algorytmiczna (Brak znaczników H w fallbacku)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-flow-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowany Moduł Algorytmiczny</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Kalkulator rotametrów oraz pliki JSON-LD zostały zablokowane z powodu nieautoryzowanego użycia na obcej domenie. Własność Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora Przepływu
    const sliderQ = document.getElementById('rk-slider-q');
    const sliderDT = document.getElementById('rk-slider-dt');
    const valQ = document.getElementById('rk-val-q');
    const valDT = document.getElementById('rk-val-dt');
    
    const outMass = document.getElementById('rk-out-mass');
    const outRota = document.getElementById('rk-out-rota');

    // Stała fizyczna: ciepło właściwe wody w Wh/(kg*K)
    const cw = 1.163; 
    
    // Obliczanie
    function updateFlowCalc() {
        let Q = parseFloat(sliderQ.value);
        let dT = parseFloat(sliderDT.value);
        
        // Update Labels
        valQ.innerText = Q + " W";
        valDT.innerText = dT + " K";
        
        // 1. Strumień masowy: m = Q / (cw * dT) [kg/h]
        let massFlow = Q / (cw * dT);
        outMass.innerText = massFlow.toFixed(1) + " kg/h";
        
        // 2. Przepływ objętościowy [l/min] = kg/h / 60 (zakładając gęstość wody 1kg/l)
        let volFlowMin = massFlow / 60;
        
        // 3. Rozbicie na pętle (zakładamy 2 pętle w jednym dużym pokoju)
        let loopFlow = volFlowMin / 2;
        outRota.innerText = loopFlow.toFixed(2) + " l/min";
    }

    sliderQ.addEventListener('input', updateFlowCalc);
    sliderDT.addEventListener('input', updateFlowCalc);

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



<style>
:root {
    --rk-buf2-dark: #0f172a;
    --rk-buf2-blue: #2563eb; /* Głęboki niebieski dla bufora */
    --rk-buf2-blue-light: #eff6ff;
    --rk-buf2-orange: #ea580c; /* Ciepło kotła */
    --rk-buf2-orange-light: #fff7ed;
    --rk-buf2-green: #16a34a; /* Sukces / Oszczędność */
    --rk-buf2-green-light: #f0fdf4;
    --rk-buf2-bg: #f8fafc;
    --rk-buf2-border: #cbd5e1;
    --rk-buf2-text: #334155;
    --rk-buf2-muted: #64748b;
}

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

/* Sekcja Górna */
.rk-buf2-header {
    background: linear-gradient(135deg, var(--rk-buf2-dark) 0%, #1e3a8a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-buf2-blue);
}

.rk-buf2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #93c5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-buf2-h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-buf2-h2 span { color: #60a5fa; }

.rk-buf2-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-buf2-paragraph strong { color: #ffffff; }

/* Moduł Interaktywny */
.rk-buf2-interactive {
    padding: 40px 50px;
    background: var(--rk-buf2-bg);
}

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

/* Przełącznik Widoku */
.rk-buf2-toggle-box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 15px 30px;
    border-radius: 100px;
    border: 1px solid var(--rk-buf2-border);
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.rk-buf2-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-buf2-muted);
    cursor: pointer;
    transition: color 0.3s;
    user-select: none;
}

.rk-buf2-label.active-pro { color: var(--rk-buf2-blue); }
.rk-buf2-label.active-warn { color: var(--rk-buf2-orange); }

.rk-buf2-switch {
    position: relative;
    display: inline-block;
    width: 64px;
    height: 32px;
    flex-shrink: 0;
}

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

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

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

input:checked + .rk-buf2-slider { background-color: var(--rk-buf2-orange); }
input:checked + .rk-buf2-slider:before { transform: translateX(32px); }

/* Wizualizacja SVG */
.rk-buf2-svg-wrapper {
    background: #0f172a;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 35px;
    box-shadow: inset 0 0 25px rgba(0,0,0,0.4);
}

.rk-buf2-svg { width: 100%; max-width: 450px; height: auto; }

/* Dynamiczne klasy i animacje dla SVG */
.anim-flow-boiler { stroke-dasharray: 6 12; stroke: var(--rk-buf2-orange); }
.anim-flow-floor { stroke-dasharray: 4 8; stroke: #60a5fa; }

.state-pro .anim-flow-boiler { animation: flowLeft 2s linear infinite; }
.state-pro .anim-flow-floor { animation: flowRight 1.5s linear infinite; }

.state-warn .anim-flow-boiler { animation: flowLeft 0.4s linear infinite; stroke: #ef4444; }
.state-warn .anim-flow-floor { animation: flowStutter 1s ease infinite; stroke: #f97316; stroke-dasharray: 2 20; }

.svg-buffer-tank { transition: opacity 0.4s, transform 0.4s; }
.state-warn .svg-buffer-tank { opacity: 0.1; transform: scaleY(0.8); }

@keyframes flowLeft { to { stroke-dashoffset: -36; } }
@keyframes flowRight { to { stroke-dashoffset: 36; } }
@keyframes flowStutter { 0%, 100% { opacity: 1; stroke-dashoffset: 0; } 50% { opacity: 0.3; stroke-dashoffset: -10; } }

/* Responsywny Matrix Zastępujący Tabelę */
.rk-matrix-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 35px;
}

/* Wiersz nagłówkowy (ukrywany na mobile) */
.rk-matrix-header {
    display: grid;
    grid-template-columns: 2fr 1.5fr 1.5fr;
    gap: 15px;
    padding: 10px 20px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-buf2-muted);
    letter-spacing: 0.5px;
}

/* Wiersz danych */
.rk-matrix-row {
    display: grid;
    grid-template-columns: 2fr 1.5fr 1.5fr;
    gap: 15px;
    background: #ffffff;
    padding: 18px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-buf2-border);
    align-items: center;
    transition: all 0.3s;
}

.rk-matrix-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-buf2-dark);
}

.rk-matrix-val {
    font-size: 15px;
    line-height: 1.4;
}

.rk-matrix-val strong { font-weight: 800; }

/* Kolorowanie kolumn aktywnego stanu */
.state-pro .row-pro { background: var(--rk-buf2-green-light); border-color: #bbf7d0; color: #166534; }
.state-warn .row-warn { background: var(--rk-buf2-orange-light); border-color: #fed7aa; color: #9a3412; }

/* Dolna Sekcja Zagrożeń H4 */
.rk-buf2-threats {
    background: #ffffff;
    border: 1px solid var(--rk-buf2-border);
    border-radius: 16px;
    padding: 30px;
}

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

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

.rk-link {
    color: var(--rk-buf2-blue);
    text-decoration: none;
    border-bottom: 2px dashed rgba(37, 99, 235, 0.4);
    font-weight: 700;
    transition: all 0.3s;
}
.state-warn .rk-link { color: var(--rk-buf2-orange); border-bottom-color: rgba(234, 88, 12, 0.4); }
.rk-link:hover { border-bottom-style: solid; }

/* RESPONSYWNOŚĆ (Mobile w kafelki) */
@media (max-width: 768px) {
    .rk-buf2-header, .rk-buf2-interactive, .rk-buf2-threats { padding: 30px 20px; }
    .rk-buf2-h2 { font-size: 24px; }
    .rk-buf2-toggle-box { flex-direction: column; text-align: center; gap: 15px; border-radius: 20px; }
    
    /* Zamiana tabeli/gridu na kafelki jeden pod drugim */
    .rk-matrix-header { display: none; } /* Ukrywamy nagłówek płaski */
    
    .rk-matrix-row {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 20px;
    }
    
    .rk-matrix-val {
        padding-left: 15px;
        position: relative;
    }
    
    /* Wstrzykiwanie etykiet kontekstowych na mobile */
    .rk-matrix-val::before {
        content: attr(data-label);
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        font-weight: 800;
        color: var(--rk-buf2-muted);
        margin-bottom: 2px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-bufor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Dlaczego bufor ciepła jest absolutnie konieczny w instalacjach pelletowych?",
    "description": "Porównanie techniczne sprawności układu z buforem i bez. Analiza rozprzężenia strumieni masowych oraz zagrożeń braku zbiornika akumulacyjnego w programie Czyste Powietrze 2026.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-bufor",
    "name": "Porównanie sprawności i parametrów eksploatacyjnych układu pellet-podłogówka (2026)",
    "description": "Zbiór danych inżynierskich określających średnią sprawność kotła, taktowanie palnika oraz zużycie paliwa w zależności od obecności zbiornika buforowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor ciepła w ogrzewaniu podłogowym",
      "taktowanie kotła pelletowego",
      "zużycie pelletu dom 150m2",
      "korozja niskotemperaturowa",
      "zwrotnica hydrauliczna strumieni"
    ],
    "measurementTechnique": "Bilansowanie energetyczne i monitorowanie zużycia paliwa na bazie normy PN-EN 303-5:2021-10 dla instalacji niskotemperaturowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Z buforem: Sprawność 91-94%, 2-4 odpaleń/dobę, zużycie 3.9 tony/rok, żywotność grzałki 5-7 lat.",
        "Bez bufora: Sprawność 74-79%, 12-18 odpaleń/dobę, zużycie 4.8 tony/rok, żywotność grzałki 12-18 miesięcy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-bufor",
    "name": "Symulator Rozprzężenia Strumieni Masowych",
    "description": "Interaktywny panel inżynierski (Toggle Switch) mapujący zmiany przepływów hydraulicznych (0,7 m3/h kocioł vs 1,8 m3/h podłoga) i obrazujący skutki usunięcia bufora ciepła.",
    "applicationCategory": "EngineeringSimulator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG rendering.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf2-container" id="rk-buf2-app">
    <div class="rk-buf2-header">
        <div class="rk-buf2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="2.18" ry="2.18"></rect><line x1="12" y1="2" x2="12" y2="22"></line><line x1="2" y1="12" x2="22" y2="12"></line></svg>
            Rozprzężenie Hydrauliczne Strumieni
        </div>
        <h2 class="rk-buf2-h2">Dlaczego bufor ciepła jest <span>absolutnie konieczny?</span></h2>
        <p class="rk-buf2-paragraph">
            Zastosowanie zbiornika buforowego (akumulacyjnego) przy połączeniu kotła na pellet z podłogówką jest bezwzględnym wymogiem technicznym (potwierdzonym w procedurach dotacyjnych programu <strong>"Czyste Powietrze" w 2026 roku</strong>), ponieważ rozprzęga on hydraulicznie i termicznie niezależne strumienie masowe obu układów. Kocioł pracuje z optymalnym przepływem rzędu 0,6-0,8 m³/h przy różnicy temperatur ΔT = 20 K (75/55°C), podczas gdy instalacja podłogowa wymaga przepływu na poziomie 1,5-2,0 m³/h przy ΔT = 5 K. <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color:#60a5fa; font-weight:700;">Bufor działa jak hydrauliczna zwrotnica</a> o wielkiej pojemności termicznej.
        </p>
    </div>

    <div class="rk-buf2-interactive">
        <h3 class="rk-buf2-h3">Porównanie parametrów pracy układu z buforem i bez bufora</h3>
        
        <div class="rk-buf2-toggle-box">
            <span class="rk-buf2-label active-pro" id="rk-buf-lbl-pro" onclick="document.getElementById('rk-buf-toggle').click()">Układ Z buforem (Standard Inż.)</span>
            <label class="rk-buf2-switch">
                <input type="checkbox" id="rk-buf-toggle">
                <span class="rk-buf2-slider"></span>
            </label>
            <span class="rk-buf2-label" id="rk-buf-lbl-warn" onclick="document.getElementById('rk-buf-toggle').click()">Układ BEZ bufora (Zagrożenie)</span>
        </div>

        <div class="rk-buf2-svg-wrapper state-pro" id="rk-buf-svg-container">
            <svg class="rk-buf2-svg" viewBox="0 0 300 120">
                <rect x="10" y="30" width="40" height="60" fill="#334155" rx="4"/>
                <circle cx="30" cy="60" r="8" fill="#ea580c"/>
                
                <path class="anim-flow-boiler" d="M50 45 L100 45" fill="none" stroke-width="4"/>
                <path class="anim-flow-boiler" d="M100 75 L50 75" fill="none" stroke-width="4" style="stroke: #3b82f6;"/>
                <text x="75" y="38" fill="#ea580c" font-size="8" font-family="sans-serif" text-anchor="middle" id="rk-svg-t1">0.7 m³/h</text>

                <g class="svg-buffer-tank" id="rk-svg-tank">
                    <rect x="100" y="15" width="30" height="90" fill="#1e293b" stroke="#2563eb" stroke-width="2" rx="6"/>
                    <rect x="105" y="20" width="20" height="80" fill="#2563eb" opacity="0.3" rx="4"/>
                </g>

                <path class="anim-flow-floor" d="M130 45 L240 45" fill="none" stroke-width="4" style="stroke: #ef4444;"/>
                <path class="anim-flow-floor" d="M240 75 L130 75" fill="none" stroke-width="4" style="stroke: #3b82f6;"/>
                <text x="185" y="38" fill="#60a5fa" font-size="8" font-family="sans-serif" text-anchor="middle" id="rk-svg-t2">1.8 m³/h</text>

                <rect x="240" y="35" width="10" height="50" fill="#475569"/>
                <path d="M250 45 C260 45, 260 55, 250 55 M250 65 C260 65, 260 75, 250 75" fill="none" stroke="#ef4444" stroke-width="3"/>
            </svg>
        </div>

        <div class="rk-matrix-grid state-pro" id="rk-matrix-container">
            
            <div class="rk-matrix-header">
                <div>Parametr eksploatacyjny</div>
                <div>Układ BEZ bufora ciepła</div>
                <div>Układ Z buforem ciepła (600 L)</div>
            </div>

            <div class="rk-matrix-row">
                <div class="rk-matrix-label">Średnia sprawność kotła</div>
                <div class="rk-matrix-val row-warn" data-label="Bez bufora"><strong>74 - 79%</strong> (straty rozruchowe)</div>
                <div class="rk-matrix-val row-pro" data-label="Z buforem"><strong>91 - 94%</strong> (praca nominalna)</div>
            </div>

            <div class="rk-matrix-row">
                <div class="rk-matrix-label">Częstotliwość załączeń palnika</div>
                <div class="rk-matrix-val row-warn" data-label="Bez bufora"><strong>12 - 18 razy / dobę</strong></div>
                <div class="rk-matrix-val row-pro" data-label="Z buforem"><strong>2 - 4 razy / dobę</strong></div>
            </div>

            <div class="rk-matrix-row">
                <div class="rk-matrix-label">Zużycie pelletu (dom 150 m²)</div>
                <div class="rk-matrix-val row-warn" data-label="Bez bufora"><strong>4,8 tony / rok</strong></div>
                <div class="rk-matrix-val row-pro" data-label="Z buforem"><strong>3,9 tony / rok</strong></div>
            </div>

            <div class="rk-matrix-row">
                <div class="rk-matrix-label">Żywotność grzałki ceramicznej</div>
                <div class="rk-matrix-val row-warn" data-label="Bez bufora"><strong>12 - 18 miesięcy</strong></div>
                <div class="rk-matrix-val row-pro" data-label="Z buforem"><strong>5 - 7 lat</strong></div>
            </div>

            <div class="rk-matrix-row">
                <div class="rk-matrix-label">Emisja pyłów i sadzy w komorze</div>
                <div class="rk-matrix-val row-warn" data-label="Bez bufora">Wysoka (częste czyszczenie)</div>
                <div class="rk-matrix-val row-pro" data-label="Z buforem">Minimalna (suchy, szary popiół)</div>
            </div>

        </div>

        <div class="rk-buf2-threats">
            <h4 class="rk-buf2-h4">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ea580c" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Zagrożenia związane z rezygnacją ze zbiornika akumulacyjnego
            </h4>
            <p class="rk-buf2-threats-p">
                Brak bufora wymusza na kotle pelletowym bezpośrednią reakcję na zamknięcie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-link">siłowników termoelektrycznych</a> na rozdzielaczach. Gdy pokoje zostaną dogrzane i zamknie się 8 z 10 pętli, przepływ po stronie instalacji drastycznie spada. Kocioł, nie mogąc oddać wygenerowanej mocy 10 kW do zredukowanego zładu, natychmiast przekracza temperaturę zadaną i awaryjnie się wygasza. Po 15 minutach woda w rurach stygnie, a automatyka ponownie uruchamia procedurę rozpalania. Taki cykl niszczy zapalarkę, powoduje osadzanie się szklistej smoły (kondensacja spalin) na wymienniku kotła i drastycznie zwiększa koszty ogrzewania.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Brak znaczników H2/H3 w fallback)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-buf2-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; box-sizing: border-box;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Kontrola Autorska Aktywowana</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Wykryto nieautoryzowaną próbę klonowania interaktywnego matrixa danych technicznych. Skrypty i warstwa danych strukturalnych zostały zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika interaktywnego przełącznika widoków
    const toggle = document.getElementById('rk-buf-toggle');
    const svgContainer = document.getElementById('rk-buf-svg-container');
    const matrixContainer = document.getElementById('rk-matrix-container');
    const lblPro = document.getElementById('rk-buf-lbl-pro');
    const lblWarn = document.getElementById('rk-buf-lbl-warn');
    
    // Teksty na SVG
    const svgT1 = document.getElementById('rk-svg-t1');
    const svgT2 = document.getElementById('rk-svg-t2');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // STAN: AMATEUR (Brak bufora / Awaria)
            svgContainer.className = 'rk-buf2-svg-wrapper state-warn';
            matrixContainer.className = 'rk-matrix-grid state-warn';
            lblPro.classList.remove('active-pro');
            lblWarn.classList.add('active-warn');
            
            svgT1.textContent = "Taktowanie! (Niestabilny)";
            svgT1.setAttribute("fill", "#ef4444");
            svgT2.textContent = "Dławienie przepływu";
            svgT2.setAttribute("fill", "#f97316");
        } else {
            // STAN: PRO (Z buforem / Norma)
            svgContainer.className = 'rk-buf2-svg-wrapper state-pro';
            matrixContainer.className = 'rk-matrix-grid state-pro';
            lblWarn.classList.remove('active-warn');
            lblPro.classList.add('active-pro');
            
            svgT1.textContent = "0.7 m³/h";
            svgT1.setAttribute("fill", "#ea580c");
            svgT2.textContent = "1.8 m³/h";
            svgT2.setAttribute("fill", "#60a5fa");
        }
    });
});
</script>



<style>
:root {
    --rk-calc2-dark: #0f172a;
    --rk-calc2-card: #ffffff;
    --rk-calc2-primary: #8b5cf6; /* Techniczny fiolet/indygo */
    --rk-calc2-primary-light: #e0e7ff;
    --rk-calc2-pellet: #ea580c; /* Kolor pelletu/ognia */
    --rk-calc2-water: #0ea5e9; /* Kolor bufora/wody */
    --rk-calc2-bg: #f8fafc;
    --rk-calc2-border: #cbd5e1;
    --rk-calc2-text: #334155;
    --rk-calc2-muted: #64748b;
}

.rk-calc2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-calc2-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
}

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

.rk-calc2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.2);
    color: #c4b5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(139, 92, 246, 0.3);
}

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

.rk-calc2-h2 span { color: #a78bfa; }

.rk-calc2-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Kalkulator */
.rk-calc2-interactive {
    padding: 40px 50px;
    background: var(--rk-calc2-bg);
}

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

.rk-calc2-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
}

/* Sekcja Suwaków (Inputs) */
.rk-calc2-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-calc2-slider-group {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc2-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

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

.rk-calc2-slider-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc2-primary);
    background: var(--rk-calc2-primary-light);
    padding: 4px 12px;
    border-radius: 8px;
}

.rk-range-input {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: linear-gradient(to right, #ddd6fe 0%, #8b5cf6 100%);
    border-radius: 4px;
    outline: none;
}

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

/* Sekcja Wyników (Outputs) */
.rk-calc2-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc2-border);
    border-radius: 16px;
    padding: 18px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.rk-res-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.rk-res-card.c-ozc::before { background: var(--rk-calc2-muted); }
.rk-res-card.c-boiler::before { background: var(--rk-calc2-pellet); }
.rk-res-card.c-buffer::before { background: var(--rk-calc2-water); }
.rk-res-card.c-floor::before { background: var(--rk-calc2-primary); }

.rk-res-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc2-text);
}

.rk-res-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc2-dark);
}

.c-boiler .rk-res-val { color: var(--rk-calc2-pellet); }
.c-buffer .rk-res-val { color: var(--rk-calc2-water); }

/* Schemat SVG */
.rk-calc2-svg-box {
    grid-column: 1 / -1;
    background: #0f172a;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 15px;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 1px solid #334155;
}

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

.anim-power-flow { stroke-dasharray: 6 12; animation: flowData 1s linear infinite; }
@keyframes flowData { to { stroke-dashoffset: -18; } }

/* Procedura Tekstowa */
.rk-calc2-procedure {
    margin-top: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-calc2-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-proc-step {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed var(--rk-calc2-border);
}
.rk-proc-step:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }

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

.rk-proc-badge {
    background: var(--rk-calc2-dark);
    color: #fff;
    width: 24px; height: 24px;
    display: inline-flex; justify-content: center; align-items: center;
    border-radius: 6px;
    font-size: 12px;
}

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

.rk-proc-math {
    background: var(--rk-calc2-bg);
    padding: 12px 20px;
    border-radius: 8px;
    font-family: 'Courier New', monospace;
    font-weight: 700;
    color: var(--rk-calc2-primary);
    border: 1px solid var(--rk-calc2-primary-light);
    display: inline-block;
}

.rk-link {
    color: var(--rk-calc2-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { border-bottom-style: solid; color: #6d28d9; }

@media (max-width: 768px) {
    .rk-calc2-header, .rk-calc2-interactive, .rk-calc2-procedure { padding: 30px 20px; }
    .rk-calc2-grid { grid-template-columns: 1fr; }
    .rk-calc2-h2 { font-size: 26px; }
    .rk-calc2-svg-box { padding: 20px 10px; }
    .rk-res-card { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-proc-math { font-size: 13px; word-break: break-all; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-dobor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Jak dobrać moc kotła na pellet i pojemność instalacji podłogowej?",
    "description": "Inżynierski algorytm krok po kroku: obliczanie projektowego obciążenia cieplnego (OZC), mocy kotła, pojemności bufora i zładu wody. Zgodnie z normą PN-EN 303-5.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-dobor",
    "name": "Algorytm doboru mocy kotła pelletowego i pojemności bufora (2026)",
    "description": "Matematyczny model doboru komponentów maszynowni na podstawie zapotrzebowania cieplnego budynku, z uwzględnieniem strat przesyłowych i podgrzewu CWU.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór mocy kotła na pellet",
      "obliczenia OZC",
      "pojemność bufora ciepła",
      "zład wody podłogówki",
      "norma PN-EN 303-5"
    ],
    "measurementTechnique": "Kalkulacja wg normy PN-EN 12831 (OZC) oraz PN-EN 303-5 (dobór bufora dla biomasy, min. 50-70 l/kW). Zład wody dla rury 16x2 przyjęto jako 0,113 l/mb.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moc kotła: Q_kotła = Q_p × 1,15 + 0,4 kW (dla 4 osób).",
        "Bufor: V_b = Q_kotła × 60 litrów/kW.",
        "Pojemność podłogówki: Powierzchnia × 6,6 m/m² × 0,113 l/m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-dobor",
    "name": "Kalkulator Inżynierski: Dobór Kotła i Bufora",
    "description": "Interaktywny algorytm wyliczający na żywo OZC, moc katalogową kotła stałopalnego, wymagany zład bufora oraz pojemność jastrychu na podstawie powierzchni domu i izolacji.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 Range Inputs, and SVG animation support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc2-container" id="rk-calc2-app">
    <div class="rk-calc2-header">
        <div class="rk-calc2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
            Algorytm Projektowy
        </div>
        <h2 class="rk-calc2-h2">Jak dobrać moc kotła na pellet i <span>pojemność instalacji?</span></h2>
        <p class="rk-calc2-paragraph">
            Poniższy algorytm inżynierski pozwala krok po kroku obliczyć optymalną moc źródła ciepła oraz minimalną kubaturę zbiornika buforowego dla domu jednorodzinnego w oparciu o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:#c4b5fd; font-weight:700;">normatywne wskaźniki projektowe OZC</a>. Wykorzystaj suwaki poniżej, aby przeprowadzić symulację dla własnego budynku.
        </p>
    </div>

    <div class="rk-calc2-interactive">
        <h3 class="rk-calc2-h3">Kalkulator: Ścieżka Doboru Komponentów</h3>
        
        <div class="rk-calc2-grid">
            <div class="rk-calc2-controls">
                <div class="rk-calc2-slider-group">
                    <div class="rk-calc2-slider-header">
                        <div class="rk-calc2-slider-label">Powierzchnia domu</div>
                        <div class="rk-calc2-slider-value" id="rk-val-area">150 m²</div>
                    </div>
                    <input type="range" id="rk-slider-area" class="rk-range-input" min="80" max="300" step="10" value="150">
                </div>

                <div class="rk-calc2-slider-group">
                    <div class="rk-calc2-slider-header">
                        <div class="rk-calc2-slider-label">Standard izolacji (EA)</div>
                        <div class="rk-calc2-slider-value" id="rk-val-iso">50 W/m²</div>
                    </div>
                    <input type="range" id="rk-slider-iso" class="rk-range-input" min="30" max="100" step="5" value="50">
                </div>
                
                <div class="rk-calc2-slider-group">
                    <div class="rk-calc2-slider-header">
                        <div class="rk-calc2-slider-label">Liczba osób (CWU)</div>
                        <div class="rk-calc2-slider-value" id="rk-val-ppl">4</div>
                    </div>
                    <input type="range" id="rk-slider-ppl" class="rk-range-input" min="1" max="8" step="1" value="4">
                </div>
            </div>

            <div class="rk-calc2-results">
                <div class="rk-res-card c-ozc">
                    <div class="rk-res-label">Obciążenie Cieplne (OZC)</div>
                    <div class="rk-res-val" id="rk-out-ozc">7.5 kW</div>
                </div>
                <div class="rk-res-card c-boiler">
                    <div class="rk-res-label">Wymagana Moc Kotła</div>
                    <div class="rk-res-val" id="rk-out-boiler">9.0 kW</div>
                </div>
                <div class="rk-res-card c-buffer">
                    <div class="rk-res-label">Pojemność Bufora (Min.)</div>
                    <div class="rk-res-val" id="rk-out-buffer">540 L</div>
                </div>
                <div class="rk-res-card c-floor">
                    <div class="rk-res-label">Zład Wody (Podłogówka)</div>
                    <div class="rk-res-val" id="rk-out-floor">112 L</div>
                </div>
            </div>

            <div class="rk-calc2-svg-box">
                <svg class="rk-svg-main" viewBox="0 0 600 120">
                    <rect x="10" y="30" width="100" height="60" fill="#334155" rx="8"/>
                    <text x="60" y="55" fill="#94a3b8" font-size="12" text-anchor="middle" font-weight="bold">KROK 1</text>
                    <text x="60" y="75" fill="#ffffff" font-size="16" text-anchor="middle" font-weight="bold" id="rk-svg-ozc">7.5 kW</text>
                    
                    <path class="anim-power-flow" d="M110 60 L160 60" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                    <polygon points="155,55 165,60 155,65" fill="#64748b"/>

                    <rect x="170" y="20" width="100" height="80" fill="#1e293b" stroke="#ea580c" stroke-width="2" rx="8"/>
                    <text x="220" y="45" fill="#ea580c" font-size="12" text-anchor="middle" font-weight="bold">KROK 2 (Kocioł)</text>
                    <text x="220" y="75" fill="#ffffff" font-size="20" text-anchor="middle" font-weight="bold" id="rk-svg-boiler">9.0 kW</text>

                    <path class="anim-power-flow" d="M270 60 L320 60" fill="none" stroke="#ea580c" stroke-width="4" stroke-linecap="round"/>
                    <polygon points="315,55 325,60 315,65" fill="#ea580c"/>

                    <rect x="330" y="10" width="100" height="100" fill="#1e293b" stroke="#0ea5e9" stroke-width="2" rx="16"/>
                    <text x="380" y="45" fill="#0ea5e9" font-size="12" text-anchor="middle" font-weight="bold">KROK 3 (Bufor)</text>
                    <text x="380" y="75" fill="#ffffff" font-size="20" text-anchor="middle" font-weight="bold" id="rk-svg-buffer">540 L</text>

                    <path class="anim-power-flow" d="M430 60 L480 60" fill="none" stroke="#0ea5e9" stroke-width="4" stroke-linecap="round"/>
                    <polygon points="475,55 485,60 475,65" fill="#0ea5e9"/>

                    <rect x="490" y="40" width="100" height="40" fill="#334155" stroke="#8b5cf6" stroke-width="2" rx="4"/>
                    <text x="540" y="55" fill="#a78bfa" font-size="10" text-anchor="middle" font-weight="bold">KROK 4 (Zład)</text>
                    <text x="540" y="72" fill="#ffffff" font-size="14" text-anchor="middle" font-weight="bold" id="rk-svg-floor">112 L</text>
                </svg>
            </div>
        </div>

        <div class="rk-calc2-procedure">
            <div class="rk-proc-step">
                <h4 class="rk-proc-title"><span class="rk-proc-badge">1</span> Wyznaczenie obciążenia cieplnego z OZC</h4>
                <p class="rk-proc-text">
                    Odczytujemy z projektu OZC (<a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-link">PN-EN 12831</a>) projektowe obciążenie cieplne budynku dla skrajnych temperatur zewnętrznych. Dla nowoczesnego domu 150 m² o współczynniku przenikania 50 W/m², wartość ta wynosi średnio 7,5 kW.
                </p>
                <div class="rk-proc-math">Q_p = Powierzchnia × Izolacja / 1000</div>
            </div>

            <div class="rk-proc-step">
                <h4 class="rk-proc-title"><span class="rk-proc-badge">2</span> Kalkulacja mocy nominalnej kotła z zapasem na CWU</h4>
                <p class="rk-proc-text">
                    Wyznaczamy moc znamionową kotła, uwzględniając sprawność przesyłu (mnożnik 1.15) oraz zapas na przygotowanie ciepłej wody użytkowej (przyjmuje się ok. 0.1 kW na osobę, wg normy 0.4 kW dla 4 osób). Dobieramy najbliższy katalogowo model kotła.
                </p>
                <div class="rk-proc-math">Q_kotła = Q_p × 1.15 + (Liczba_osób × 0.1) kW</div>
            </div>

            <div class="rk-proc-step">
                <h4 class="rk-proc-title"><span class="rk-proc-badge">3</span> Obliczenie minimalnej objętości bufora</h4>
                <p class="rk-proc-text">
                    Obliczamy minimalną pojemność wodną bufora zgodnie z załącznikiem do normy <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">PN-EN 303-5</a>, stosując uproszczony przelicznik dla biomasy, który wynosi minimum 60 litrów na każdy kW mocy znamionowej kotła.
                </p>
                <div class="rk-proc-math">V_b = Q_kotła × 60 l/kW</div>
            </div>

            <div class="rk-proc-step">
                <h4 class="rk-proc-title"><span class="rk-proc-badge">4</span> Objętość wodna instalacji podłogowej</h4>
                <p class="rk-proc-text">
                    Wyznaczamy całkowitą pojemność wodną wylewki, bazując na średniej długości <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" class="rk-link">rury 16x2 mm</a>. Przy rozstawie co 15 cm zużywamy ok. 6,6 metra rury na m². Każdy metr bieżący tej rury mieści dokładnie 0,113 litra wody.
                </p>
                <div class="rk-proc-math">V_podł = Powierzchnia × 6.6 m/m² × 0.113 l/m</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('rk-calc2-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowany Algorytm Inżynierski</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Moduł obliczeniowy doboru maszynowni oraz struktura JSON-LD stanowią własność Projekt-Ogrzewania.pl. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora
    const sliderArea = document.getElementById('rk-slider-area');
    const sliderIso = document.getElementById('rk-slider-iso');
    const sliderPpl = document.getElementById('rk-slider-ppl');
    
    const valArea = document.getElementById('rk-val-area');
    const valIso = document.getElementById('rk-val-iso');
    const valPpl = document.getElementById('rk-val-ppl');

    // Outputs
    const outOzc = document.getElementById('rk-out-ozc');
    const outBoiler = document.getElementById('rk-out-boiler');
    const outBuffer = document.getElementById('rk-out-buffer');
    const outFloor = document.getElementById('rk-out-floor');
    
    // SVG Outputs
    const svgOzc = document.getElementById('rk-svg-ozc');
    const svgBoiler = document.getElementById('rk-svg-boiler');
    const svgBuffer = document.getElementById('rk-svg-buffer');
    const svgFloor = document.getElementById('rk-svg-floor');

    function updateCalculations() {
        let area = parseFloat(sliderArea.value);
        let iso = parseFloat(sliderIso.value);
        let ppl = parseFloat(sliderPpl.value);

        // Update Labels
        valArea.innerText = area + " m²";
        valIso.innerText = iso + " W/m²";
        valPpl.innerText = ppl;

        // Krok 1: OZC (kW)
        let q_p = (area * iso) / 1000;
        let q_p_str = q_p.toFixed(1) + " kW";
        outOzc.innerText = q_p_str;
        svgOzc.textContent = q_p_str;

        // Krok 2: Kocioł (kW)
        let q_kotla = (q_p * 1.15) + (ppl * 0.1);
        let q_kotla_str = q_kotla.toFixed(1) + " kW";
        outBoiler.innerText = q_kotla_str;
        svgBoiler.textContent = q_kotla_str;

        // Krok 3: Bufor (L) -> 60 litrów na każdy kW
        let v_b = Math.round(q_kotla * 60);
        let v_b_str = v_b + " L";
        outBuffer.innerText = v_b_str;
        svgBuffer.textContent = v_b_str;

        // Krok 4: Podłoga (L) -> Zakładamy rozstaw 15cm (6.6m/m2), rura 16x2 (0.113 l/m)
        let v_floor = Math.round(area * 6.6 * 0.113);
        let v_floor_str = v_floor + " L";
        outFloor.innerText = v_floor_str;
        svgFloor.textContent = v_floor_str;
    }

    sliderArea.addEventListener('input', updateCalculations);
    sliderIso.addEventListener('input', updateCalculations);
    sliderPpl.addEventListener('input', updateCalculations);

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



<style>
:root {
    --rk-dsgn-dark: #0f172a;
    --rk-dsgn-card: #ffffff;
    --rk-dsgn-brand: #2563eb; /* Inżynierski Niebieski */
    --rk-dsgn-brand-light: #eff6ff;
    --rk-dsgn-accent: #f59e0b; /* Akcent Pelletu */
    --rk-dsgn-edge: #8b5cf6; /* Strefa brzegowa */
    --rk-dsgn-danger: #ef4444; /* Alert hydrauliczny */
    --rk-dsgn-danger-light: #fef2f2;
    --rk-dsgn-bg: #f8fafc;
    --rk-dsgn-border: #cbd5e1;
    --rk-dsgn-text: #334155;
    --rk-dsgn-muted: #64748b;
}

.rk-dsgn-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-dsgn-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.3);
    overflow: hidden;
}

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

.rk-dsgn-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #93c5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-dsgn-h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-dsgn-h2 span { color: #60a5fa; }

.rk-dsgn-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-dsgn-paragraph strong { color: #ffffff; }

/* Moduł Interaktywny */
.rk-dsgn-interactive {
    padding: 40px 50px;
    background: var(--rk-dsgn-bg);
}

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

.rk-dsgn-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
}

/* Kontrolki (Lewa kolumna) */
.rk-dsgn-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

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

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

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

.rk-dsgn-range {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: linear-gradient(to right, #93c5fd 0%, #2563eb 100%);
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-dsgn-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-dsgn-brand);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.rk-dsgn-range:active::-webkit-slider-thumb { transform: scale(1.1); }

.rk-dsgn-range.danger-mode { background: linear-gradient(to right, #2563eb 66%, #ef4444 100%); }
.rk-dsgn-range.danger-mode::-webkit-slider-thumb { border-color: var(--rk-dsgn-danger); }

/* Przełącznik Stref */
.rk-zone-toggle {
    display: flex;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 4px;
    position: relative;
}

.rk-zone-btn {
    flex: 1;
    padding: 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-dsgn-muted);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    z-index: 1;
}

.rk-zone-btn.active {
    color: #ffffff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.rk-zone-btn[data-zone="std"].active { background: var(--rk-dsgn-brand); }
.rk-zone-btn[data-zone="edge"].active { background: var(--rk-dsgn-edge); }

/* Wyniki (Prawa Kolumna) */
.rk-dsgn-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-dsgn-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-res-card.warn-card {
    background: var(--rk-dsgn-danger-light);
    border-color: #fca5a5;
}

.rk-res-label { font-size: 14px; font-weight: 700; color: var(--rk-dsgn-text); }
.rk-res-val { font-size: 20px; font-weight: 900; color: var(--rk-dsgn-dark); }
.warn-card .rk-res-val { color: var(--rk-dsgn-danger); }

/* Zastępczy Panel Danych Technicznych (Dark Mode) */
.rk-dsgn-data-box {
    background: #0f172a;
    border-radius: 16px;
    padding: 25px;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 1px solid #334155;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 15px;
    transition: border-color 0.3s;
}

.rk-data-box-title {
    color: #93c5fd;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    margin: 0 0 5px 0;
    letter-spacing: 1px;
    transition: color 0.3s;
}

.rk-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px dashed #334155;
    padding-bottom: 10px;
}
.rk-data-row:last-child { border-bottom: none; padding-bottom: 0; }

.rk-data-row span {
    color: #cbd5e1;
    font-size: 14px;
}

.rk-data-row strong {
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
}

/* Stany Awaryjne dla Panelu Danych */
.state-jam.rk-dsgn-data-box { border-color: #ef4444; }
.state-jam .rk-data-box-title { color: #ef4444; }
.state-jam .rk-data-row strong { color: #fca5a5; }

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

.rk-cta-h3 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dsgn-dark);
    margin: 0 0 15px 0;
}

.rk-cta-p {
    font-size: 16px;
    color: var(--rk-dsgn-muted);
    max-width: 600px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

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

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #1d4ed8;
    box-shadow: 0 20px 35px -5px rgba(37, 99, 235, 0.5);
}

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

.rk-link {
    color: var(--rk-dsgn-brand);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px dashed rgba(37, 99, 235, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { border-bottom-style: solid; color: #1e3a8a; }

@media (max-width: 768px) {
    .rk-dsgn-header, .rk-dsgn-interactive, .rk-dsgn-cta { padding: 30px 20px; }
    .rk-dsgn-grid { grid-template-columns: 1fr; }
    .rk-dsgn-h2 { font-size: 26px; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 16px; }
    .rk-res-card { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/"
    },
    "headline": "Jak kocioł na pellet wpływa na projekt ogrzewania podłogowego?",
    "description": "Zasady projektowania instalacji płaszczyznowych. Wpływ długości pętli na opory hydrauliczne i dobór pompy obiegowej z regulacją Δp-v lub Δp-c.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#dataset",
    "name": "Parametry projektowe instalacji płaszczyznowych (2026)",
    "description": "Zestawienie inżynierskie opisujące korelacje między rozstawem rur, długością pętli a oporami hydraulicznymi pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne ozc",
      "rozstaw rur w ogrzewaniu podłogowym",
      "strefa brzegowa podłogówki",
      "maksymalna długość pętli",
      "pompa obiegowa Δp-v"
    ],
    "measurementTechnique": "Algorytm oparty na normie PN-EN 12831 (OZC), wyznaczający straty ciśnienia (kPa) w rurach wielowarstwowych 16x2 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa mieszkalna: Rozstaw 10 - 15 cm.",
        "Strefa brzegowa: Zagęszczenie 7.5 - 10 cm na szer. 1m.",
        "Maksymalna długość pętli: 100m. Przekroczenie generuje opór >20 kPa (martwe strefy)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#webapp",
    "name": "Symulator Pętli i Oporów Hydraulicznych",
    "description": "Interaktywne narzędzie dla instalatorów i inwestorów symulujące narastanie oporów hydraulicznych pompy wraz ze wzrostem długości pętli grzewczej i zagęszczenia rur.",
    "applicationCategory": "EngineeringSimulator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 Range Inputs, and CSS transitions.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dsgn-container" id="rk-dsgn-app">
    <div class="rk-dsgn-header">
        <div class="rk-dsgn-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"></path></svg>
            Wytyczne Projektowe
        </div>
        <h2 class="rk-dsgn-h2">Jak to wpływa na projekt <span>ogrzewania podłogowego?</span></h2>
        <p class="rk-dsgn-paragraph">
            Integracja kotła na pellet z systemem podłogowym wymusza restrykcyjne podejście do fazy projektowej, gdzie fundamentalnym dokumentem wyjściowym jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link" style="color:#93c5fd;">Projektowe Obciążenie Cieplne (OZC)</a> sporządzone wg normy PN-EN 12831. Charakterystyka źródła stałopalnego wyklucza projektowanie instalacji "na oko".
        </p>
    </div>

    <div class="rk-dsgn-interactive">
        <h3 class="rk-dsgn-h3">Limity Hydrauliczne: Sprawdź swój projekt</h3>
        
        <div class="rk-dsgn-grid">
            
            <div class="rk-dsgn-controls">
                
                <div class="rk-ctrl-box">
                    <div class="rk-ctrl-header">
                        <div class="rk-ctrl-label">Rodzaj Strefy Projektowej</div>
                    </div>
                    <div class="rk-zone-toggle">
                        <div class="rk-zone-btn active" data-zone="std" id="btn-zone-std">Mieszkalna (15cm)</div>
                        <div class="rk-zone-btn" data-zone="edge" id="btn-zone-edge">Brzegowa (10cm)</div>
                    </div>
                    <p style="font-size:12px; color:#64748b; margin-top:10px; line-height:1.5;">
                        Ze względu na obniżenie zasilania, <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link">rozstaw rur</a> w strefach mieszkalnych projektuje się co 10-15 cm, a w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefach brzegowych</a> zagęszcza do 7,5-10 cm.
                    </p>
                </div>

                <div class="rk-ctrl-box">
                    <div class="rk-ctrl-header">
                        <div class="rk-ctrl-label">Długość pojedynczej pętli</div>
                        <div class="rk-ctrl-val" id="rk-val-len">80 m</div>
                    </div>
                    <input type="range" id="rk-slider-len" class="rk-dsgn-range" min="30" max="150" step="5" value="80">
                    <p style="font-size:12px; color:#64748b; margin-top:10px; line-height:1.5;">
                        <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-link">Maksymalna długość pętli</a> dla rury 16 mm to bezwzględnie 100m. Przekroczenie niszczy przepływ.
                    </p>
                </div>

            </div>

            <div class="rk-dsgn-results">
                
                <div class="rk-dsgn-data-box" id="rk-data-wrap">
                    <h4 class="rk-data-box-title">Parametry Hydrauliczne Pętli</h4>
                    <div class="rk-data-row">
                        <span>Zalecany tryb pompy:</span>
                        <strong id="rk-val-pump">Δp-c (Stałociśnieniowy)</strong>
                    </div>
                    <div class="rk-data-row">
                        <span>Szacowana prędkość wody:</span>
                        <strong id="rk-val-vel">0.25 m/s</strong>
                    </div>
                    <div class="rk-data-row">
                        <span>Wydajność cieplna pętli:</span>
                        <strong id="rk-val-power">~720 W</strong>
                    </div>
                </div>

                <div class="rk-res-card" id="rk-card-press">
                    <div class="rk-res-label">Opór hydrauliczny pompy</div>
                    <div class="rk-res-val" id="rk-val-press">16.0 kPa</div>
                </div>

                <div class="rk-res-card" id="rk-card-status">
                    <div class="rk-res-label">Status Przepływu (Δp-v / Δp-c)</div>
                    <div class="rk-res-val" id="rk-val-status" style="color:#10b981; font-size:16px;">Norma. Pompa radzi sobie.</div>
                </div>

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

    <div class="rk-dsgn-cta">
        <h3 class="rk-cta-h3">Nie ryzykuj "martwych stref" w swoim domu</h3>
        <p class="rk-cta-p">
            Błędy w obliczeniach oporów lub rozstawie rur mszczą się przez dekady. <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-link">Źle dobrana pompa obiegowa</a> lub zbyt długa pętla oznacza zimną podłogę, której nie da się naprawić po wylaniu betonu.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </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('rk-dsgn-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano Kod Inżynierski</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Próba osadzenia kalkulatora oporów hydraulicznych poza domeną docelową. Warstwa JSON-LD i skrypty zostały wyłączone.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const sliderLen = document.getElementById('rk-slider-len');
    const valLen = document.getElementById('rk-val-len');
    
    const btnZoneStd = document.getElementById('btn-zone-std');
    const btnZoneEdge = document.getElementById('btn-zone-edge');
    let currentZone = 'std';

    const cardPress = document.getElementById('rk-card-press');
    const valPress = document.getElementById('rk-val-press');
    const cardStatus = document.getElementById('rk-card-status');
    const valStatus = document.getElementById('rk-val-status');

    // Dynamiczne parametry panelu zastępczego
    const dataWrap = document.getElementById('rk-data-wrap');
    const valPump = document.getElementById('rk-val-pump');
    const valVel = document.getElementById('rk-val-vel');
    const valPower = document.getElementById('rk-val-power');

    // Obsługa przycisków strefy
    btnZoneStd.addEventListener('click', function() {
        currentZone = 'std';
        btnZoneStd.classList.add('active');
        btnZoneEdge.classList.remove('active');
        updateCalc();
    });

    btnZoneEdge.addEventListener('click', function() {
        currentZone = 'edge';
        btnZoneEdge.classList.add('active');
        btnZoneStd.classList.remove('active');
        updateCalc();
    });

    // Kalkulacja i update UI
    function updateCalc() {
        let length = parseInt(sliderLen.value);
        valLen.innerText = length + " m";

        // Uproszczony model oporu: 1m rury = 0.2 kPa oporu.
        // Jeśli strefa brzegowa (gęściej), opór lekko rośnie (mnożnik 1.15) z uwagi na ostrzejsze zagięcia
        let multiplier = (currentZone === 'edge') ? 1.15 : 1.0;
        let pressure = length * 0.2 * multiplier;
        valPress.innerText = pressure.toFixed(1) + " kPa";

        if (length > 100) {
            // AWARIA (Przekroczenie 100m)
            sliderLen.classList.add('danger-mode');
            cardPress.classList.add('warn-card');
            cardStatus.classList.add('warn-card');
            
            valStatus.innerText = "BŁĄD: Zbyt duży opór (>20kPa). Martwe strefy!";
            valStatus.style.color = "var(--rk-dsgn-danger)";
            
            // Aktualizacja panelu danych dla awarii
            dataWrap.classList.add('state-jam');
            valPump.innerText = "AWARIA ZASILANIA";
            valVel.innerText = "< 0.1 m/s (Zadławienie)";
            valPower.innerText = "Spadek mocy grzewczej";
            
        } else {
            // NORMA
            sliderLen.classList.remove('danger-mode');
            cardPress.classList.remove('warn-card');
            cardStatus.classList.remove('warn-card');
            
            valStatus.innerText = "Norma. Pompa obiegowa radzi sobie.";
            valStatus.style.color = "#10b981"; // Sukces
            
            // Aktualizacja panelu danych dla normy
            dataWrap.classList.remove('state-jam');
            
            let power = (currentZone === 'std') ? (length / 6.6) * 60 : (length / 10) * 85;
            let velocity = 0.15 + (length / 500);
            
            valPump.innerText = "Δp-c (Stałociśnieniowy)";
            valVel.innerText = velocity.toFixed(2) + " m/s";
            valPower.innerText = "~" + Math.round(power) + " W";
        }
    }

    sliderLen.addEventListener('input', updateCalc);

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



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-card: #ffffff;
    --rk-cs-brand: #d97706; /* Pellet Gold/Amber */
    --rk-cs-brand-light: #fef3c7;
    --rk-cs-blue: #3b82f6; /* Inżynierski błękit */
    --rk-cs-green: #10b981; /* Oszczędności / Eko */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-muted: #64748b;
}

.rk-cs-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-cs-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(217, 119, 6, 0.15);
    border: 1px solid rgba(217, 119, 6, 0.3);
    overflow: hidden;
}

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

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

.rk-cs-h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-cs-h2 span { color: var(--rk-cs-brand); }

.rk-cs-paragraph {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

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

.rk-cs-quote {
    border-left: 4px solid var(--rk-cs-brand);
    padding-left: 20px;
    margin: 25px 0;
    font-style: italic;
    color: #e2e8f0;
    background: rgba(255,255,255,0.05);
    padding: 20px;
    border-radius: 0 12px 12px 0;
}

/* Interaktywny Dashboard */
.rk-cs-interactive {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
}

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

/* Nawigacja Tabs */
.rk-cs-tabs {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 8px;
    border-radius: 100px;
    border: 1px solid var(--rk-cs-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-cs-tab-btn {
    flex: 1;
    padding: 12px 20px;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cs-muted);
    cursor: pointer;
    border-radius: 99px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    background: transparent;
}

.rk-cs-tab-btn:hover { color: var(--rk-cs-dark); background: #f1f5f9; }
.rk-cs-tab-btn.active { color: #ffffff; background: var(--rk-cs-brand); box-shadow: 0 4px 12px rgba(217, 119, 6, 0.3); }

/* Grid Zawartości */
.rk-cs-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
}

/* Panele Danych */
.rk-cs-panel {
    display: none;
    animation: fadeIn 0.5s ease;
}

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

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

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

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 18px;
    border-radius: 16px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-data-card:hover { transform: translateY(-2px); border-color: var(--rk-cs-brand); }

.rk-data-card.full-width { grid-column: 1 / -1; }

.rk-data-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-cs-muted);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

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

.rk-data-val span { font-size: 14px; font-weight: 700; color: var(--rk-cs-muted); }
.val-highlight { color: var(--rk-cs-brand); font-size: 24px; }
.val-success { color: var(--rk-cs-green); font-size: 24px; }

/* SVG Box */
.rk-cs-svg-box {
    background: #0f172a;
    border-radius: 20px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: inset 0 0 25px rgba(0,0,0,0.5);
    border: 1px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-svg-layer {
    width: 100%;
    height: auto;
    max-width: 300px;
    display: none;
    animation: scaleIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rk-svg-layer.active { display: block; }

@keyframes scaleIn { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* Animacje SVG wewnątrz warstw */
.anim-heat-wave { stroke-dasharray: 5 10; animation: flowUp 2s linear infinite; stroke: #fcd34d; }
.anim-pellet-drop { animation: dropPellet 1.5s infinite linear; fill: #d97706; }
.anim-coin-spin { transform-origin: center; animation: spinY 3s infinite linear; }
.anim-chart-bar { transform-origin: bottom; animation: growBar 1s ease-out forwards; }

@keyframes flowUp { to { stroke-dashoffset: -30; } }
@keyframes dropPellet { 0% { opacity: 0; transform: translateY(-10px); } 20% { opacity: 1; } 100% { transform: translateY(40px); opacity: 0; } }
@keyframes spinY { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } }
@keyframes growBar { from { transform: scaleY(0); } to { transform: scaleY(1); } }

.rk-link {
    color: var(--rk-cs-brand);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px dashed rgba(217, 119, 6, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { border-bottom-style: solid; color: #b45309; }

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-interactive { padding: 30px 20px; }
    .rk-cs-grid { grid-template-columns: 1fr; }
    .rk-cs-h2 { font-size: 26px; }
    .rk-cs-tabs { flex-direction: column; border-radius: 16px; padding: 10px; }
    .rk-cs-tab-btn { border-radius: 8px; padding: 15px; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-cs-svg-box { min-height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Case Study: Analiza techniczna rzeczywistej inwestycji z kotłem na pellet",
    "description": "Realne wyniki zużycia pelletu i kosztów ogrzewania dla domu 164 m2. Analiza zrównoważenia hydraulicznego, pracy bufora 600L i systemu podłogowego w sezonie 2025/2026.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-casestudy",
    "name": "Bilans energetyczny domu 164 m2 z kotłem na pellet (Sezon 2025/2026)",
    "description": "Zestawienie wskaźników operacyjnych maszynowni pelletowej: zużycie biomasy, czas cyklu palnika, koszty ogrzewania PLN oraz obciążenie OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie pelletu dom 160m2",
      "koszt ogrzewania pelletem 2026",
      "kocioł na pellet z buforem opinie",
      "sprawność kotła kondensacyjnego na pellet",
      "temperatura zasilania podłogówki przy mrozach"
    ],
    "measurementTechnique": "Odczyty z ciepłomierza oraz weryfikacja bilansu zakupowego paliwa (faktury) po pełnym sezonie grzewczym w III strefie klimatycznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC budynku: 7,8 kW (164,2 m², EPS 20cm lambda 0.031).",
        "Maszynownia: Kocioł kondensacyjny 10 kW, Bufor 600L.",
        "Zużycie roczne: 3840 kg pelletu ENplus A1.",
        "Koszt roczny (CO + CWU): 4416 PLN (1150 PLN/t).",
        "Cykl palnika: średnio 5,2 godziny (brak taktowania)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-casestudy",
    "name": "Interaktywny Audyt Inwestycji",
    "description": "Eksplorator danych technicznych prezentujący za pomocą grafiki SVG parametry budynku, konfigurację maszynowni oraz realne koszty eksploatacyjne ogrzewania pelletem.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG animation support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-app">
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Case Study (Sezon 2025/2026)
        </div>
        <h2 class="rk-cs-h2">Analiza techniczna <span>rzeczywistej inwestycji</span></h2>
        
        <div class="rk-cs-quote">
            <strong>Realny przypadek inżynierski z mojej praktyki projektowej:</strong> W październiku 2025 roku sfinalizowałem nadzór nad realizacją systemu grzewczego u inwestora pana Janusza w miejscowości Skała koło Krakowa. Przedmiotem opracowania był wolnostojący, piętrowy dom jednorodzinny o powierzchni użytkowej 164,2 m², wybudowany w technologii tradycyjnej (pustak ceramiczny + 20 cm grafitowego <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" style="color:#fcd34d;">styropianu o współczynniku 0,031 W/(m·K)</a>), bez podpiwniczenia.
        </div>
        
        <p class="rk-cs-paragraph">
            W obiekcie zaprojektowano 100% ogrzewania podłogowego w systemie mokrym (<a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:#93c5fd;">jastrych cementowy</a> z plastyfikatorem, grubość 6,5 cm). <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:#93c5fd;">Obliczeniowe zapotrzebowanie na moc cieplną (OZC)</a> wg PN-EN 12831 wyniosło dokładnie <strong>Q = 7,8 kW</strong> przy temperaturze projektowej -20°C.
        </p>
    </div>

    <div class="rk-cs-interactive">
        <h3 class="rk-cs-h3">Podsumowanie pełnego sezonu grzewczego</h3>
        
        <div class="rk-cs-tabs">
            <button class="rk-cs-tab-btn active" data-target="panel-bldg">1. Maszynownia</button>
            <button class="rk-cs-tab-btn" data-target="panel-ctrl">2. Zrównoważenie</button>
            <button class="rk-cs-tab-btn" data-target="panel-cost">3. Wyniki i Koszty</button>
        </div>

        <div class="rk-cs-grid">
            
            <div class="rk-cs-data-wrapper">
                
                <div class="rk-cs-panel active" id="panel-bldg">
                    <div class="rk-data-grid">
                        <div class="rk-data-card full-width">
                            <div class="rk-data-label">Źródło ciepła</div>
                            <div class="rk-data-val">Kocioł na pellet 10 kW</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Kompaktowy, kondensacyjny ze sprawnością 103,4% (w odniesieniu do wartości opałowej).</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Bufor ciepła</div>
                            <div class="rk-data-val"><a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link" style="color:inherit;">600 Litrów</a></div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Z wbudowaną wężownicą INOX do CWU.</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Cykl palnika</div>
                            <div class="rk-data-val">5,2 godziny</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Brak śladów niszczącego taktowania.</p>
                        </div>
                    </div>
                </div>

                <div class="rk-cs-panel" id="panel-ctrl">
                    <div class="rk-data-grid">
                        <div class="rk-data-card full-width">
                            <div class="rk-data-label">Rozdzielacz i Regulacja</div>
                            <div class="rk-data-val">12-sekcyjny (Algorytm TPI)</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Wyposażony w <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">rotametry</a> (0,5-5,0 l/min) i siłowniki termoelektryczne. System w 100% zrównoważony hydraulicznie.</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Temp. zasilania max</div>
                            <div class="rk-data-val">36,5 °C</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Zanotowana przy mrozach dochodzących do -12°C.</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Akumulacja wylewki</div>
                            <div class="rk-data-val">Wysoka</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Brak odczuwalnych wahań temperatury w pokojach.</p>
                        </div>
                    </div>
                </div>

                <div class="rk-cs-panel" id="panel-cost">
                    <div class="rk-data-grid">
                        <div class="rk-data-card full-width">
                            <div class="rk-data-label">Roczny koszt (CO + CWU)</div>
                            <div class="rk-data-val val-success">4 416 PLN</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Potwierdzone odczytami z ciepłomierza i fakturami na koniec kwietnia 2026 r.</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Zużycie Paliwa</div>
                            <div class="rk-data-val val-highlight">3 840 kg</div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Pellet drzewny certyfikowany w klasie ENplus A1.</p>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-label">Cena zakupu</div>
                            <div class="rk-data-val">1 150 <span>PLN/t</span></div>
                            <p style="font-size:13px; color:var(--rk-cs-muted); margin:5px 0 0 0;">Średnia cena zakupu w sezonie 2025/2026.</p>
                        </div>
                    </div>
                </div>

            </div>

            <div class="rk-cs-svg-box">
                
                <svg class="rk-svg-layer active" id="svg-bldg" viewBox="0 0 200 200">
                    <rect x="20" y="80" width="50" height="90" fill="#334155" rx="4"/>
                    <circle class="anim-pellet-drop" cx="40" cy="50" r="4"/>
                    <circle class="anim-pellet-drop" cx="50" cy="40" r="4" style="animation-delay:0.5s;"/>
                    <circle class="anim-pellet-drop" cx="45" cy="60" r="4" style="animation-delay:1s;"/>
                    <path d="M45 150 C30 150, 25 120, 45 100 C65 120, 60 150, 45 150 Z" fill="#ea580c"/>
                    <rect x="110" y="40" width="60" height="130" fill="#1e293b" stroke="#3b82f6" stroke-width="3" rx="12"/>
                    <path d="M70 120 L110 120 M70 140 L110 140" fill="none" stroke="#ef4444" stroke-width="4"/>
                    <text x="140" y="110" fill="#60a5fa" font-size="20" font-weight="bold" text-anchor="middle">600 L</text>
                </svg>

                <svg class="rk-svg-layer" id="svg-ctrl" viewBox="0 0 200 200">
                    <path d="M20 100 L100 30 L180 100 L180 180 L20 180 Z" fill="none" stroke="#64748b" stroke-width="4" stroke-linejoin="round"/>
                    <path class="anim-heat-wave" d="M40 160 L160 160 M40 140 L160 140 M40 120 L160 120" fill="none" stroke-width="6" stroke-linecap="round"/>
                    <rect x="80" y="60" width="40" height="30" fill="#1e293b" stroke="#0ea5e9" stroke-width="2" rx="4"/>
                    <text x="100" y="80" fill="#0ea5e9" font-size="14" font-weight="bold" text-anchor="middle">36.5°</text>
                </svg>

                <svg class="rk-svg-layer" id="svg-cost" viewBox="0 0 200 200">
                    <rect x="30" y="160" width="140" height="4" fill="#64748b"/>
                    <rect class="anim-chart-bar" x="50" y="100" width="30" height="60" fill="#3b82f6"/>
                    <rect class="anim-chart-bar" x="120" y="60" width="30" height="100" fill="#10b981" style="animation-delay:0.3s;"/>
                    <g class="anim-coin-spin" style="transform-origin: 135px 35px;">
                        <circle cx="135" cy="35" r="20" fill="#fcd34d" stroke="#d97706" stroke-width="3"/>
                        <text x="135" y="41" fill="#d97706" font-size="16" font-weight="bold" text-anchor="middle">PLN</text>
                    </g>
                    <text x="65" y="90" fill="#94a3b8" font-size="14" font-weight="bold" text-anchor="middle">3.8t</text>
                </svg>

            </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('rk-cs-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano Kod Audytowy</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Case Study inwestycji i dedykowana struktura JSON-LD podlegają ochronie prawnej Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Zakładek (Tabs) i SVG
    const tabBtns = document.querySelectorAll('.rk-cs-tab-btn');
    const panels = document.querySelectorAll('.rk-cs-panel');
    const svgs = document.querySelectorAll('.rk-svg-layer');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Reset active states
            tabBtns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            svgs.forEach(s => s.classList.remove('active'));
            
            // Set new active
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
            
            // Map panel to SVG
            if(targetId === 'panel-bldg') document.getElementById('svg-bldg').classList.add('active');
            if(targetId === 'panel-ctrl') document.getElementById('svg-ctrl').classList.add('active');
            if(targetId === 'panel-cost') document.getElementById('svg-cost').classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #ffffff;
    --rk-err-danger: #ef4444; /* Błąd / Amator */
    --rk-err-danger-bg: #fef2f2;
    --rk-err-success: #10b981; /* Norma / Ekspert */
    --rk-err-success-bg: #ecfdf5;
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

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

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

.state-pro .rk-err-header { border-bottom-color: var(--rk-err-success); }

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

.rk-err-h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-err-h2 span { color: var(--rk-err-danger); transition: color 0.4s ease; }
.state-pro .rk-err-h2 span { color: var(--rk-err-success); }

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

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

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

/* Switcher / Toggle */
.rk-err-toggle-box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 15px 30px;
    border-radius: 100px;
    border: 1px solid var(--rk-err-border);
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-err-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-muted);
    cursor: pointer;
    transition: color 0.3s;
    user-select: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-err-label.active-warn { color: var(--rk-err-danger); }
.rk-err-label.active-pro { color: var(--rk-err-success); }

.rk-err-switch {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 36px;
    flex-shrink: 0;
}

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

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

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

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

/* Karty Błędów (Grid) */
.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-err-card {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    transition: all 0.4s ease;
    position: relative;
    overflow: hidden;
}

.state-warn .rk-err-card { border-color: #fca5a5; box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.15); }
.state-pro .rk-err-card { border-color: #6ee7b7; box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.15); }

/* SVG Canvas w Kartach */
.rk-err-svg-box {
    background: #0f172a;
    border-radius: 12px;
    height: 140px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    border: 1px solid #334155;
    overflow: hidden;
}

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

/* Treść Karty */
.rk-err-card-title {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
    text-align: center;
}

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

.rk-link {
    color: var(--rk-err-dark);
    text-decoration: none;
    font-weight: 800;
    border-bottom: 2px dashed var(--rk-err-muted);
    transition: all 0.3s;
}

.state-warn .rk-link { color: var(--rk-err-danger); border-bottom-color: rgba(239, 68, 68, 0.4); }
.state-pro .rk-link { color: var(--rk-err-success); border-bottom-color: rgba(16, 185, 129, 0.4); }
.rk-link:hover { border-bottom-style: solid; }

/* ================= ANIMACJE SVG ================= */

/* Karta 1: Próba szczelności */
.anim-gauge-needle { transform-origin: 50px 80px; transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-warn .anim-gauge-needle { transform: rotate(-45deg); fill: #ef4444; }
.state-pro .anim-gauge-needle { transform: rotate(45deg); fill: #10b981; }

.anim-drop { opacity: 0; }
.state-warn .anim-drop { animation: dropFall 1.5s infinite; fill: #3b82f6; }
.state-pro .anim-drop { display: none; }

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

/* Karta 2: Dylatacje */
.anim-crack { stroke-dasharray: 40; stroke-dashoffset: 40; transition: stroke-dashoffset 0.1s; }
.state-warn .anim-crack { stroke-dashoffset: 0; transition: stroke-dashoffset 0.8s 0.2s ease-out; stroke: #ef4444; }

.anim-foam { transform-origin: left; transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-warn .anim-foam { transform: scaleX(0.2); fill: #ef4444; }
.state-pro .anim-foam { transform: scaleX(1); fill: #3b82f6; } /* Pianka brzegowa */

/* Karta 3: Woda (Kamień vs Demineralizowana) */
.anim-scale { transform-origin: center; transition: transform 0.5s; }
.state-warn .anim-scale { transform: scale(1); fill: #d97706; } /* Kamień kotłowy */
.state-pro .anim-scale { transform: scale(0); }

.anim-water-flow { stroke-dasharray: 10 15; stroke-dashoffset: 0; transition: stroke 0.5s; }
.state-warn .anim-water-flow { stroke: #fbbf24; animation: flowSlow 3s linear infinite; }
.state-pro .anim-water-flow { stroke: #3b82f6; animation: flowFast 1s linear infinite; }

@keyframes flowSlow { to { stroke-dashoffset: -25; } }
@keyframes flowFast { to { stroke-dashoffset: -25; } }

/* Responsywność */
@media (max-width: 850px) {
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-err-header, .rk-err-interactive { padding: 30px 20px; }
    .rk-err-h2 { font-size: 26px; }
    .rk-err-toggle-box { flex-direction: column; gap: 15px; border-radius: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Katalog Krytycznych Błędów Instalacyjnych Ogrzewania Podłogowego",
    "description": "Analiza ekspercka najczęstszych błędów: brak próby ciśnieniowej 6 bar, pominięcie taśm dylatacyjnych oraz użycie twardej wody kranowej zamiast demineralizowanej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset",
    "name": "Klasyfikacja błędów wykonawczych i parametrów krytycznych podłogówki (2026)",
    "description": "Zbiór danych weryfikacyjnych i tolerancji materiałowych dla systemów płaszczyznowych w odniesieniu do normy PN-EN 1264-4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "próba szczelności podłogówki 6 bar",
      "dylatacja brzegowa ogrzewania",
      "woda demineralizowana w instalacji",
      "pękanie wylewki betonowej",
      "zarastanie rotametrów kamieniem"
    ],
    "measurementTechnique": "Badania organoleptyczne i manometryczne wg norm technicznych, weryfikacja konduktometrem (przewodność <10 µS/cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Zalanie na sucho. Wymóg: Ciśnienie 0.6 MPa przez 24h (PN-EN 1264-4).",
        "Błąd 2: Brak izolacji. Wymóg: Taśma polietylenowa 8 mm, współczynnik rozszerzalności betonu ~0.012 mm/(m*K).",
        "Błąd 3: Woda kranowa. Wymóg: Woda demineralizowana z inhibitorem korozji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp",
    "name": "Symulator Skutków Błędów Instalacyjnych",
    "description": "Interaktywny audytor instalacji prezentujący za pomocą grafiki wektorowej skutki fizykochemiczne nieprawidłowego montażu (pęknięcia betonu, osadzanie kamienia, wycieki).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and inline SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg>
            Audyt Wykonawczy
        </div>
        <h2 class="rk-err-h2">Najczęstsze błędy instalatorów przy <span>montażu tego układu</span></h2>
        <p class="rk-err-paragraph">
            Oto katalog krytycznych błędów wykonawczych, które najczęściej eliminuję podczas ekspertyz technicznych na inwestycjach w całej Polsce. Te zaniedbania potrafią zniszczyć nawet najlepszy projekt maszynowni.
        </p>
    </div>

    <div class="rk-err-interactive">
        <h3 class="rk-err-h3">Symulacja Odbioru: Jak wykonano instalację?</h3>
        
        <div class="rk-err-toggle-box">
            <span class="rk-err-label active-warn" id="rk-lbl-warn" onclick="document.getElementById('rk-err-toggle').click()">Praktyka "Na Oko" (Amator)</span>
            <label class="rk-err-switch">
                <input type="checkbox" id="rk-err-toggle">
                <span class="rk-err-slider"></span>
            </label>
            <span class="rk-err-label" id="rk-lbl-pro" onclick="document.getElementById('rk-err-toggle').click()">Standard PN-EN (Inżynier)</span>
        </div>

        <div class="rk-err-grid state-warn" id="rk-main-grid">
            
            <div class="rk-err-card">
                <div class="rk-err-svg-box">
                    <svg class="rk-svg-item" viewBox="0 0 100 120">
                        <rect x="30" y="50" width="40" height="20" fill="none" stroke="#475569" stroke-width="4" rx="2"/>
                        <circle cx="50" cy="30" r="18" fill="#1e293b" stroke="#64748b" stroke-width="2"/>
                        <circle cx="50" cy="30" r="2" fill="#fff"/>
                        <path class="anim-gauge-needle" d="M48 30 L50 15 L52 30 Z" fill="#ef4444"/>
                        <path class="anim-drop" d="M45 75 Q50 85 50 85 Q50 85 55 75 Z" fill="#3b82f6"/>
                        <path class="anim-drop" d="M35 70 Q40 80 40 80 Q40 80 45 70 Z" fill="#3b82f6" style="animation-delay:0.5s;"/>
                    </svg>
                </div>
                <h4 class="rk-err-card-title">Zaniechanie próby szczelności</h4>
                <p class="rk-err-card-text" id="rk-txt-1">
                    Zalanie rur "na sucho" grozi ukryciem uszkodzeń mechanicznych. Zgodnie z normą PN-EN 1264-4, <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-link">próbę szczelności</a> wykonuje się pod ciśnieniem 0,6 MPa (6 bar) przez 24h, a betonuje przy minimum 0,3 MPa.
                </p>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-svg-box">
                    <svg class="rk-svg-item" viewBox="0 0 100 120">
                        <rect x="10" y="20" width="15" height="80" fill="#334155"/>
                        <rect class="anim-foam" x="25" y="20" width="10" height="80" fill="#ef4444"/>
                        <rect x="35" y="70" width="60" height="30" fill="#94a3b8" rx="2"/>
                        <path class="anim-crack" d="M45 70 L55 85 L50 100" fill="none" stroke="#ef4444" stroke-width="2"/>
                        <path class="anim-crack" d="M75 70 L70 80 L80 100" fill="none" stroke="#ef4444" stroke-width="2"/>
                    </svg>
                </div>
                <h4 class="rk-err-card-title">Brak izolacji brzegowej</h4>
                <p class="rk-err-card-text" id="rk-txt-2">
                    Brak <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">taśmy dylatacyjnej</a> (min. 8 mm) lub dylatacji pośrednich (>40 m²) powoduje niekontrolowane pęknięcia. Beton rozszerza się liniowo (współczynnik około 0,012 mm/(m·K)), niszcząc posadzki.
                </p>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-svg-box">
                    <svg class="rk-svg-item" viewBox="0 0 100 120">
                        <rect x="10" y="40" width="80" height="40" fill="none" stroke="#64748b" stroke-width="4"/>
                        <path class="anim-water-flow" d="M10 50 L90 50 M10 60 L90 60 M10 70 L90 70" fill="none" stroke-width="4"/>
                        <circle class="anim-scale" cx="30" cy="45" r="4"/>
                        <circle class="anim-scale" cx="50" cy="75" r="5"/>
                        <circle class="anim-scale" cx="70" cy="45" r="3"/>
                        <circle class="anim-scale" cx="80" cy="75" r="4"/>
                    </svg>
                </div>
                <h4 class="rk-err-card-title">Zwykła woda wodociągowa</h4>
                <p class="rk-err-card-text" id="rk-txt-3">
                    Twarda woda kranowa zrzuca węglan wapnia (kamień kotłowy). Przy zładzie 710 litrów osad trwale blokuje rotametry i odcina wymienniki. Wymagana jest <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-link">woda demineralizowana z inhibitorem</a> (przewodność <10 µS/cm).
                </p>
            </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('rk-err-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowany Skrypt Audytowy</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny symulator błędów instalacyjnych i baza wiedzy JSON-LD chronione są prawami Projekt-Ogrzewania.pl. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle Switch
    const toggle = document.getElementById('rk-err-toggle');
    const grid = document.getElementById('rk-main-grid');
    const hdr = document.querySelector('.rk-err-container');
    const lblWarn = document.getElementById('rk-lbl-warn');
    const lblPro = document.getElementById('rk-lbl-pro');

    const t1 = document.getElementById('rk-txt-1');
    const t2 = document.getElementById('rk-txt-2');
    const t3 = document.getElementById('rk-txt-3');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // STAN: PRO (Zgodne z normą)
            grid.className = 'rk-err-grid state-pro';
            hdr.classList.add('state-pro');
            lblWarn.classList.remove('active-warn');
            lblPro.classList.add('active-pro');
            
            t1.innerHTML = '<strong>Standard:</strong> <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-link">Próba szczelności</a> wykonana manometrem kalibrowanym (6 bar przez 24h). Jastrych zalewany na rurach usztywnionych ciśnieniem min. 3 bary. Pełne bezpieczeństwo.';
            t2.innerHTML = '<strong>Standard:</strong> Gruba na 8 mm pianka polietylenowa oraz poprawne <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">podziały dylatacyjne</a> (<40 m²) płynnie absorbują naprężenia termiczne pracującej płyty betonu.';
            t3.innerHTML = '<strong>Standard:</strong> Zład napełniony czystą <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-link">wodą demineralizowaną z inhibitorem korozji</a>. Przewodność poniżej 10 µS/cm gwarantuje krystalicznie czyste rotametry i brak osadów.';
            
        } else {
            // STAN: WARN (Błędy)
            grid.className = 'rk-err-grid state-warn';
            hdr.classList.remove('state-pro');
            lblPro.classList.remove('active-pro');
            lblWarn.classList.add('active-warn');
            
            t1.innerHTML = 'Zalanie rur "na sucho" grozi ukryciem uszkodzeń mechanicznych. Zgodnie z normą PN-EN 1264-4, <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-link">próbę szczelności</a> wykonuje się pod ciśnieniem 0,6 MPa (6 bar) przez 24h, a betonuje przy minimum 0,3 MPa.';
            t2.innerHTML = 'Brak <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">taśmy dylatacyjnej</a> (min. 8 mm) lub dylatacji pośrednich (>40 m²) powoduje niekontrolowane pęknięcia. Beton rozszerza się liniowo (współczynnik około 0,012 mm/(m·K)), niszcząc posadzki.';
            t3.innerHTML = 'Twarda woda kranowa zrzuca węglan wapnia (kamień kotłowy). Przy zładzie 710 litrów osad trwale blokuje rotametry i odcina wymienniki. Wymagana jest <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-link">woda demineralizowana z inhibitorem</a> (przewodność <10 µS/cm).';
        }
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-panel: #1e293b;
    --rk-fin-primary: #d97706; /* Bursztyn/Pellet */
    --rk-fin-primary-light: #fef3c7;
    --rk-fin-accent: #0ea5e9; /* Woda/Podłogówka */
    --rk-fin-bg: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-text: #334155;
    --rk-fin-text-dim: #64748b;
}

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

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

.rk-fin-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(217, 119, 6, 0.15) 0%, transparent 70%);
}

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

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

.rk-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(217, 119, 6, 0.2);
    color: #fcd34d;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    border: 1px solid rgba(252, 211, 77, 0.3);
}

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

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

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

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

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

.rk-rule-btn:hover {
    border-color: var(--rk-fin-primary);
    transform: translateX(4px);
}

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

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

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

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

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

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px 35px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

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

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

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

.rk-fin-link {
    color: var(--rk-fin-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(14, 165, 233, 0.4);
    transition: 0.3s;
}
.rk-fin-link:hover { border-bottom-style: solid; color: #0284c7; }

/* SVG Canvas */
.rk-detail-svg {
    width: 100%;
    height: 180px;
    background: var(--rk-fin-dark);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
    border: 1px solid #334155;
}

/* Animacje SVG zależne od zakładki */
.anim-flame-fin { transform-origin: bottom center; animation: burnFin 2s infinite alternate; fill: #f59e0b; }
.anim-flow-hot { stroke-dasharray: 6 12; animation: dashFin 1s linear infinite; stroke: #ef4444; }
.anim-flow-mix { stroke-dasharray: 6 12; animation: dashFin 2s linear infinite; stroke: #0ea5e9; }
.anim-gear-spin { transform-origin: center; animation: spinFin 4s linear infinite; fill: #64748b; }
.anim-pellet-drop { animation: dropPellet 1.5s infinite linear; fill: #fcd34d; }
.anim-heat-wave { stroke-dasharray: 6 12; animation: floatUp 2s linear infinite; stroke: #f59e0b; }

@keyframes burnFin { from { transform: scaleY(0.9); } to { transform: scaleY(1.1); } }
@keyframes dashFin { to { stroke-dashoffset: -18; } }
@keyframes spinFin { to { transform: rotate(360deg); } }
@keyframes dropPellet { 0% { transform: translateY(-20px); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateY(30px); opacity: 0; } }
@keyframes floatUp { to { stroke-dashoffset: -18; transform: translateY(-5px); } }

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

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

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

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

.rk-calc-input-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
    background: rgba(255,255,255,0.03);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.1);
}

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

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

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

.rk-result-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 18px 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-result-box.highlight { border-color: var(--rk-fin-primary); background: rgba(217, 119, 6, 0.1); }
.rk-result-box.water { border-color: var(--rk-fin-accent); background: rgba(14, 165, 233, 0.1); }

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

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

.rk-author-photo-small {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-fin-primary);
    box-shadow: 0 4px 15px rgba(217, 119, 6, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info { flex-grow: 1; }

.rk-author-info h4 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-fin-dark);
}

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

.rk-author-links {
    display: flex;
    gap: 15px;
    margin-top: 12px;
}

.rk-author-links a {
    color: var(--rk-fin-accent);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-author-links a:hover { color: #0284c7; text-decoration: underline; }

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-podsumowanie-eksperta",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Inżynierskie podsumowanie: Kocioł na pellet i podłogówka",
    "description": "Synteza wiedzy o połączeniu kotła stałopalnego z ogrzewaniem płaszczyznowym. Zasady stosowania buforów, zaworów mieszających, obliczania zładu wodnego i doboru wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-podsumowanie-eksperta",
    "name": "Wskaźniki doboru i rentowności: Kocioł na pellet z buforem (2026)",
    "description": "Zestawienie relacji pomiędzy powierzchnią budynku a szacunkową mocą kotła, wymaganą objętością zbiornika buforowego, doborem wylewki oraz prognozowanym zużyciem certyfikowanej biomasy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie kotła na pellet",
      "szybki kalkulator maszynowni",
      "zużycie pelletu w 2026",
      "wymagany bufor ciepła",
      "zawór mieszający podłogówka",
      "certyfikowany pellet ENplus A1",
      "wylewka anhydrytowa pod kocioł na pellet"
    ],
    "measurementTechnique": "Szacowanie oparte na współczynniku zapotrzebowania 50 W/m2, przeliczniku bufora 60 l/kW oraz empirycznym zużyciu pelletu na poziomie ok. 26 kg/m2 rocznie z uwzględnieniem przewodnictwa cieplnego posadzek.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szacunkowa moc kotła = (Powierzchnia * 0.05) + 20% zapasu.",
        "Minimalna pojemność bufora = Moc kotła * 60 litrów.",
        "Szacunkowe zużycie roczne (dom dobrze ocieplony) = Powierzchnia * ~26 kg.",
        "Zalecane paliwo = Certyfikowany pellet ENplus A1 (minimalizacja popiołu i szlaki).",
        "Optymalny odbiór ciepła = Wylewka anhydrytowa (wyższy współczynnik przewodzenia)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-podsumowanie-eksperta",
    "name": "Estymator Maszynowni Pelletowej",
    "description": "Interaktywny kalkulator podsumowujący. Przelicza powierzchnię domu na orientacyjną moc kotła, wymagany zład bufora ciepła oraz prognozowane roczne zużycie paliwa stałego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Range Inputs",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="rk-fin-app">
    
    <div class="rk-fin-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
        <div class="rk-header-content">
            <div class="rk-header-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Kocioł na pellet i podłogówka</h2>
            <p>Ten system to inwestycja w wygodę, ale nie wybacza amatorskich błędów. Poznaj 5 złotych zasad, które uratują Twoją maszynownię przed przedwczesnym zniszczeniem i przepalaniem budżetu.</p>
        </div>
    </div>

    <div class="rk-fin-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="fin-det-1">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>1. Serce to Bufor</h3>
                    <p>Rozprzężenie hydrauliczne</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="fin-det-2">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>2. Niska Temperatura</h3>
                    <p>Granica wytrzymałości jastrychu</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="fin-det-3">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                <div class="rk-rule-text">
                    <h3>3. Profesjonalny OZC</h3>
                    <p>Klucz do przepływów</p>
                </div>
            </button>
            
            <button class="rk-rule-btn" data-panel="fin-det-4">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2c0 0-5 6-5 11a5 5 0 0 0 10 0c0-5-5-11-5-11Z"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>4. Jakość Paliwa</h3>
                    <p>Certyfikat ENplus A1</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="fin-det-5">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="14" width="20" height="6" rx="1"></rect><path d="M2 10h20M2 6h20"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>5. Dobór Wylewki</h3>
                    <p>Anhydryt vs beton</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="fin-det-1">
                <h4>Bufor ciepła jest obowiązkowy</h4>
                <p>Bez niego zapalarka w kotle podda się po jednym sezonie. <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-fin-link">Zbiornik buforowy</a> (minimum 50 litrów na każdy kW mocy) absorbuje nadmiar energii, pozwala palnikowi pracować na najwyższej sprawności i zapobiega kondensacji smoły w wymienniku.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="30" width="30" height="50" fill="#334155" rx="4"/>
                        <path class="anim-flame-fin" d="M35 80 C25 80, 20 50, 35 40 C50 50, 45 80, 35 80 Z"/>
                        <path class="anim-flow-hot" d="M50 50 L90 50" fill="none" stroke-width="4"/>
                        <rect x="90" y="20" width="40" height="70" fill="#1e293b" stroke="#0ea5e9" stroke-width="2" rx="6"/>
                        <path class="anim-flow-mix" d="M130 50 L170 50" fill="none" stroke-width="4"/>
                        <rect x="170" y="45" width="20" height="10" fill="#94a3b8" rx="2"/>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="fin-det-2">
                <h4>Chroń posadzkę mieszaczem</h4>
                <p>Ogień w kotle to 80°C, ale podłogówka potrzebuje tylko 35°C. Przepuszczenie wrzątku bez <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-fin-link">zaworu trójdrogowego</a> to wyrok śmierci dla betonowej wylewki (max. norma to 50°C). Sterowanie pogodowe wymiesza wodę powrotną do idealnego poziomu.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path class="anim-flow-hot" d="M40 50 L90 50" fill="none" stroke-width="6"/>
                        <path class="anim-flow-mix" d="M90 50 L160 50" fill="none" stroke-width="6"/>
                        <polygon points="90,40 90,60 110,50" fill="#cbd5e1"/>
                        <polygon points="110,40 130,30 130,50" fill="#cbd5e1"/>
                        <polygon points="100,70 120,70 110,50" fill="#cbd5e1"/>
                        <circle cx="110" cy="50" r="5" fill="#1e293b"/>
                        <text x="65" y="40" fill="#ef4444" font-size="12" font-weight="bold">80°C</text>
                        <text x="145" y="40" fill="#0ea5e9" font-size="12" font-weight="bold">35°C</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="fin-det-3">
                <h4>OZC to Twój drogowskaz</h4>
                <p>Nigdy nie zgaduj długości pętli ani mocy pompy. <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-fin-link">Projektowe Obciążenie Cieplne (OZC)</a> pozwala wyliczyć masowy przepływ (np. 1,72 m³/h) i precyzyjnie wyregulować rotametry. Pętle powyżej 100 metrów stworzą niepokonywalny opór hydrauliczny.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="60" y="20" width="80" height="60" fill="#1e293b" stroke="#64748b" stroke-width="2" rx="4"/>
                        <path class="anim-flow-mix" d="M40 40 L60 40 M140 40 L160 40" fill="none" stroke-width="4"/>
                        <path class="anim-flow-hot" d="M40 60 L60 60 M140 60 L160 60" fill="none" stroke-width="4"/>
                        <g class="anim-gear-spin" style="transform-origin: 100px 50px;">
                            <circle cx="100" cy="50" r="15" fill="#64748b"/>
                            <circle cx="100" cy="50" r="5" fill="#1e293b"/>
                            <rect x="98" y="30" width="4" height="40" fill="#64748b"/>
                            <rect x="80" y="48" width="40" height="4" fill="#64748b"/>
                        </g>
                    </svg>
                </div>
            </div>
            
            <div class="rk-detail-panel" id="fin-det-4">
                <h4>Jakość paliwa to podstawa</h4>
                <p>Tani materiał opałowy zanieczyszczony piaskiem i korą to najkrótsza droga do awarii. Używaj wyłącznie <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/" class="rk-fin-link">certyfikowanego pelletu ENplus A1</a>. Gwarantuje on wyższą wartość opałową, nie zapycha podajnika i ogranicza uciążliwe czyszczenie wymiennika kotła do minimum.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <polygon points="70,10 130,10 110,60 90,60" fill="#334155"/>
                        <circle class="anim-pellet-drop" cx="95" cy="40" r="4"/>
                        <circle class="anim-pellet-drop" cx="105" cy="30" r="4" style="animation-delay:0.5s;"/>
                        <circle class="anim-pellet-drop" cx="100" cy="50" r="4" style="animation-delay:1s;"/>
                        <rect x="80" y="65" width="40" height="25" fill="#1e293b" rx="2"/>
                        <circle cx="150" cy="40" r="18" fill="none" stroke="#10b981" stroke-width="3"/>
                        <text x="150" y="45" fill="#10b981" font-size="14" font-weight="bold" text-anchor="middle">A1</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="fin-det-5">
                <h4>Anhydryt maksymalizuje wydajność</h4>
                <p>Na optymalną pracę układu wpływa czas oddawania ciepła. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-fin-link">Wylewka anhydrytowa pod kocioł na pellet</a> sprawdza się idealnie – jej płynna konsystencja pozbywa się pustek powietrznych wokół rur. Zwiększa to przewodność cieplną w stosunku do zwykłego betonu, dając odczuwalne oszczędności.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="40" y="50" width="120" height="30" fill="#fcd34d" rx="4" opacity="0.8"/>
                        <circle cx="60" cy="65" r="8" fill="#ef4444"/>
                        <circle cx="100" cy="65" r="8" fill="#ef4444"/>
                        <circle cx="140" cy="65" r="8" fill="#ef4444"/>
                        <path class="anim-heat-wave" d="M60 40 L60 10 M100 40 L100 10 M140 40 L140 10" fill="none" stroke-width="4" stroke-linecap="round"/>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-fin-primary)" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                Estymator Maszynowni Pelletowej
            </h4>
            <span style="font-size:12px; color:#64748b;">(Domy nowo budowane / dobrze izolowane)</span>
        </div>

        <div class="rk-calc-grid">
            
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Powierzchnia ogrzewana:
                    <span id="finAreaOut">150 m²</span>
                </div>
                <input type="range" class="rk-fin-range" id="finAreaSlider" min="80" max="300" step="10" value="150">
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="resBoiler">9 <span style="font-size:14px;color:var(--rk-fin-primary);">kW</span></span>
                    <span class="rk-res-lab">Szacunkowa Moc Kotła</span>
                </div>
                <div class="rk-result-box water">
                    <span class="rk-res-val" id="resBuffer">540 <span style="font-size:14px;color:var(--rk-fin-accent);">L</span></span>
                    <span class="rk-res-lab">Wymagany Bufor Ciepła</span>
                </div>
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resPellet">3.9 <span style="font-size:14px;color:#94a3b8;">t</span></span>
                    <span class="rk-res-lab">Roczne zużycie (Prognoza)</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-fin-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na placach budowy. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, która chroni inwestorów przed "fachowcami".</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 2. Logika Zakładek (Złote Zasady)
    const btns = document.querySelectorAll('.rk-rule-btn');
    const panels = document.querySelectorAll('.rk-detail-panel');

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

            btn.classList.add('active');
            const target = document.getElementById(btn.getAttribute('data-panel'));
            if(target) {
                void target.offsetWidth; // Restart animacji
                target.classList.add('active');
            }
        });
    });

    // 3. Logika Estymatora
    const slider = document.getElementById('finAreaSlider');
    const areaOut = document.getElementById('finAreaOut');
    const resBoiler = document.getElementById('resBoiler');
    const resBuffer = document.getElementById('resBuffer');
    const resPellet = document.getElementById('resPellet');

    function updateEstimator() {
        const area = parseInt(slider.value);
        areaOut.textContent = area + ' m²';

        // Obliczenia:
        // Moc kotła: Zapotrzebowanie ~50W/m2 + zapas ok. 20% -> (Area * 0.05) * 1.2
        let boilerPower = (area * 0.05) * 1.2;
        // Zaokrąglenie do równych kW lub połówek
        boilerPower = Math.ceil(boilerPower);
        
        // Bufor: 60 L / kW
        let bufferVol = boilerPower * 60;

        // Roczne zużycie: około 26 kg na 1 m2 (dla bardzo dobrej izolacji)
        let pelletTons = (area * 26) / 1000;

        resBoiler.innerHTML = boilerPower + ' <span style="font-size:14px;color:var(--rk-fin-primary);">kW</span>';
        resBuffer.innerHTML = bufferVol + ' <span style="font-size:14px;color:var(--rk-fin-accent);">L</span>';
        resPellet.innerHTML = pelletTons.toFixed(1) + ' <span style="font-size:14px;color:#94a3b8;">t</span>';
    }

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



<style>
:root {
    --rk-pellet-faq-dark: #1e1b4b; /* Bardzo ciemny fiolet/granat */
    --rk-pellet-faq-card: #ffffff;
    --rk-pellet-faq-brand: #f59e0b; /* Bursztynowy/Pellet */
    --rk-pellet-faq-brand-light: #fef3c7;
    --rk-pellet-faq-accent: #ef4444; /* Czerwony/Ogień */
    --rk-pellet-faq-success: #10b981; /* Zielony/Eco */
    --rk-pellet-faq-bg: #f8fafc;
    --rk-pellet-faq-border: #e2e8f0;
    --rk-pellet-faq-text: #334155;
    --rk-pellet-faq-muted: #64748b;
}

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

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

.rk-pellet-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    color: #fcd34d;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.rk-pellet-faq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-pellet-faq-title span { color: var(--rk-pellet-faq-brand); }

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

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

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

.rk-pellet-faq-item.active {
    border-color: var(--rk-pellet-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.15);
}

/* Przycisk Pytania */
.rk-pellet-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-pellet-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-pellet-faq-question:hover {
    background: var(--rk-pellet-faq-brand-light);
}

.rk-pellet-faq-item.active .rk-pellet-faq-question {
    background: var(--rk-pellet-faq-brand);
    color: #ffffff;
}

.rk-pellet-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-pellet-faq-brand-light);
    color: #d97706;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-pellet-faq-item.active .rk-pellet-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi */
.rk-pellet-faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-pellet-faq-item.active .rk-pellet-faq-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-pellet-faq-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-pellet-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-pellet-faq-border);
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: center;
}

.rk-pellet-faq-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-pellet-faq-text);
}

.rk-pellet-faq-text strong {
    font-weight: 800;
    color: var(--rk-pellet-faq-dark);
}

.rk-link {
    color: #d97706;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}

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

/* Wizualizacje SVG */
.rk-pellet-faq-visual {
    background: #0f172a;
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
}

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

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Bufor / Taktowanie */
.anim-flame-bad { transform-origin: bottom; opacity: 0.2; transition: opacity 0.5s; }
.rk-pellet-faq-item.active .anim-flame-bad { animation: flickerStrobe 0.2s infinite; opacity: 1; }
@keyframes flickerStrobe { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.4); fill: #64748b; } 100% { transform: scaleY(1); } }

/* 2. Czyszczenie */
.anim-ash { transform: translateY(-20px); opacity: 0; }
.rk-pellet-faq-item.active .anim-ash { animation: fallAsh 3s infinite; }
@keyframes fallAsh { 0% { transform: translateY(-20px); opacity: 1; } 80% { transform: translateY(20px); opacity: 1; } 100% { transform: translateY(25px); opacity: 0; } }

/* 3. Rozstaw Rur */
.anim-pipe-heat { stroke-dasharray: 4 8; stroke-dashoffset: 0; }
.rk-pellet-faq-item.active .anim-pipe-heat { animation: flowHeat 1.5s linear infinite; stroke: #ef4444; }
@keyframes flowHeat { to { stroke-dashoffset: -24; } }

/* 4. Anhydryt vs Cement */
.anim-anhydrite { transform: scaleX(0); transform-origin: left; transition: transform 1.2s 0.3s cubic-bezier(0.22, 1, 0.36, 1); }
.rk-pellet-faq-item.active .anim-anhydrite { transform: scaleX(1); }

/* 5. Koszty (Monety) */
.anim-coin { transform: translateY(-30px); opacity: 0; }
.rk-pellet-faq-item.active .anim-coin:nth-child(1) { animation: dropCoin 0.5s 0.3s forwards; }
.rk-pellet-faq-item.active .anim-coin:nth-child(2) { animation: dropCoin 0.5s 0.6s forwards; }
.rk-pellet-faq-item.active .anim-coin:nth-child(3) { animation: dropCoin 0.5s 0.9s forwards; }
@keyframes dropCoin { to { transform: translateY(0); opacity: 1; } }

@media (max-width: 768px) {
    .rk-pellet-faq-header, .rk-pellet-faq-interactive { padding: 30px 20px; }
    .rk-pellet-faq-title { font-size: 24px; }
    .rk-pellet-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-pellet-faq-visual { height: 120px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-pellet-faq-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "FAQ — Najczęściej zadawane pytania: Kocioł na pellet i podłogówka",
    "description": "Baza wiedzy dla inwestorów: czy podłogówka potrzebuje bufora przy pellecie, jak często czyścić piec i ile kosztuje ogrzewanie domu 150m2 w 2026 roku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy kocioł na pellet może współpracować z podłogówką bez bufora ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W praktyce jest to rozwiązanie wysoce niezalecane, które prowadzi do permanentnego taktowania palnika i drastycznego spadku jego sprawności o około 15-20%. Bez bufora kocioł nie ma możliwości zmagazynowania nadwyżki energii przy niskim zapotrzebowaniu instalacji płaszczyznowej, co skutkuje przyspieszonym zużyciem podzespołów i zarastaniem wymiennika sadzą."
        }
      },
      {
        "@type": "Question",
        "name": "Jak często trzeba czyścić kocioł pelletowy przy ogrzewaniu płaszczyznowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nowoczesne konstrukcje wyposażone w automatyczne systemy czyszczenia palnika i wymiennika wymagają opróżniania popielnika raz na 3-5 tygodni w sezonie grzewczym. Pełne, ręczne czyszczenie komory spalania oraz kontrolę stanu technicznego wymiennika należy przeprowadzać co około 1,5-2 tony spalonego paliwa certyfikowanego klasy ENplus A1."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur podłogówki zastosować przy kotle na pellet?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowy i najbardziej optymalny projektowo rozstaw rur wynosi 15 cm w strefach stałego przebywania oraz 10 cm w łazienkach oraz strefach brzegowych przy oknach tarasowych. Pozwala to na zasilanie instalacji niskim parametrem termicznym (35-38°C), co przekłada się na dłuższą autonomię zgromadzonego w zbiorniku buforowym ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wylewka anhydrytowa jest lepsza od cementowej pod kocioł na pellet?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jastrych anhydrytowy wykazuje znacznie wyższy współczynnik przewodzenia ciepła (około 1,6-1,8 W/mK) w porównaniu do jastrychu cementowego (około 1,0-1,2 W/mK). Dzięki mniejszej grubości strukturalnej i płynnej konsystencji idealnie otula rurę grzewczą, co skraca czas reakcji systemu na zmianę temperatury o ponad 50%."
        }
      },
      {
        "@type": "Question",
        "name": "Ile wynosi realny koszt ogrzewania pelletem domu 150 m² z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Roczny koszt eksploatacyjny w realiach cenowych 2026 roku kształtuje się na poziomie około 3900 - 4500 PLN, przy założeniu zużycia około 3,8 - 4,2 tony certyfikowanego pelletu drzewnego. Wartość ta dotyczy budynków nowo wybudowanych, posiadających skuteczną izolację przegród pionowych (styropian minimum 20 cm) oraz system rekuperacji z odzyskiem ciepła."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-faq",
    "name": "Parametry eksploatacyjne układu: Kocioł na pellet + Podłogówka 2026",
    "description": "Zestawienie inżynierskie uwzględniające parametry temperaturowe, koszty paliwa oraz częstotliwość serwisu nowoczesnych systemów na biomasę.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "taktowanie palnika pelletowego",
      "częstotliwość czyszczenia pieca",
      "współczynnik przewodzenia wylewki",
      "koszt ogrzewania domu 150m2",
      "zapotrzebowanie na bufor ciepła"
    ],
    "measurementTechnique": "Analiza termodynamiczna i kosztorysowa oparta na danych operacyjnych dla budynków jednorodzinnych w III strefie klimatycznej Polski (2026).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt roczny: 3900 - 4500 PLN (dom 150m2, dobre ocieplenie).",
        "Czyszczenie palnika: Co 3-5 tygodni (automatyka).",
        "Rozstaw rur: 15 cm w pokojach, 10 cm przy oknach i w łazienkach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-faq",
    "name": "Symulator Procesów Płaszczyznowych i Spalania",
    "description": "Edukacyjna, interaktywna nakładka (Akordeon) wizualizująca za pomocą skryptów SVG zjawiska taktowania, opadania popiołu i dystrybucji ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-pellet-faq-container" id="rk-pellet-faq-app">
    <div class="rk-pellet-faq-header">
        <div class="rk-pellet-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"></path></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-pellet-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-pellet-faq-interactive">
        <div class="rk-pellet-faq-list">
            
            <div class="rk-pellet-faq-item">
                <button class="rk-pellet-faq-question">
                    <span>1. Czy kocioł na pellet może współpracować z podłogówką bez bufora ciepła?</span>
                    <div class="rk-pellet-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-pellet-faq-answer-wrapper">
                    <div class="rk-pellet-faq-answer-inner">
                        <div class="rk-pellet-faq-content">
                            <div class="rk-pellet-faq-text">
                                W praktyce jest to rozwiązanie <strong>wysoce niezalecane</strong>, które prowadzi do permanentnego taktowania palnika i drastycznego spadku jego sprawności o około <strong>15-20%</strong>. Bez <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">bufora ciepła</a> kocioł nie ma możliwości zmagazynowania nadwyżki energii przy niskim zapotrzebowaniu instalacji płaszczyznowej. Skutkuje to zjawiskiem ciągłego odpalania, co prowadzi do przyspieszonego zużycia podzespołów (np. zapalarki) i błyskawicznego zarastania wymiennika twardą sadzą.
                            </div>
                            <div class="rk-pellet-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="20" width="30" height="40" fill="#334155" rx="4"/>
                                    <path class="anim-flame-bad" d="M35 50 C25 50, 20 30, 35 10 C50 30, 45 50, 35 50 Z" fill="#ef4444"/>
                                    <path d="M50 40 L80 40" fill="none" stroke="#ef4444" stroke-width="4" stroke-dasharray="2 4"/>
                                    <circle cx="80" cy="40" r="10" fill="#94a3b8"/>
                                    <path d="M75 35 L85 45 M75 45 L85 35" stroke="#ef4444" stroke-width="3"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-pellet-faq-item">
                <button class="rk-pellet-faq-question">
                    <span>2. Jak często trzeba czyścić kocioł pelletowy przy ogrzewaniu płaszczyznowym?</span>
                    <div class="rk-pellet-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-pellet-faq-answer-wrapper">
                    <div class="rk-pellet-faq-answer-inner">
                        <div class="rk-pellet-faq-content">
                            <div class="rk-pellet-faq-text">
                                Nowoczesne konstrukcje wyposażone w automatyczne systemy czyszczenia palnika i wymiennika wymagają opróżniania popielnika <strong>raz na 3-5 tygodni</strong> w sezonie grzewczym. Pełne, ręczne czyszczenie komory spalania oraz kontrolę stanu technicznego wymiennika należy przeprowadzać co około <strong>1,5-2 tony</strong> spalonego paliwa certyfikowanego klasy ENplus A1.
                            </div>
                            <div class="rk-pellet-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="30" y="20" width="40" height="30" fill="#475569" rx="2"/>
                                    <circle class="anim-ash" cx="40" cy="30" r="3" fill="#cbd5e1"/>
                                    <circle class="anim-ash" cx="50" cy="35" r="2" fill="#cbd5e1" style="animation-delay: 0.5s;"/>
                                    <circle class="anim-ash" cx="60" cy="25" r="4" fill="#cbd5e1" style="animation-delay: 1s;"/>
                                    <rect x="30" y="55" width="40" height="10" fill="#1e293b" rx="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-pellet-faq-item">
                <button class="rk-pellet-faq-question">
                    <span>3. Jaki rozstaw rur podłogówki zastosować przy kotle na pellet?</span>
                    <div class="rk-pellet-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-pellet-faq-answer-wrapper">
                    <div class="rk-pellet-faq-answer-inner">
                        <div class="rk-pellet-faq-content">
                            <div class="rk-pellet-faq-text">
                                Standardowy i najbardziej optymalny projektowo <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link">rozstaw rur</a> wynosi <strong>15 cm w strefach stałego przebywania</strong> oraz <strong>10 cm</strong> w łazienkach oraz strefach brzegowych przy oknach tarasowych. Pozwala to na zasilanie instalacji niskim parametrem termicznym (35-38°C), co po wymieszaniu na zaworze przekłada się na znacznie dłuższą autonomię zgromadzonego w zbiorniku buforowym ciepła.
                            </div>
                            <div class="rk-pellet-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path class="anim-pipe-heat" d="M10 20 L90 20" fill="none" stroke="#64748b" stroke-width="6" stroke-linecap="round"/>
                                    <path class="anim-pipe-heat" d="M10 40 L90 40" fill="none" stroke="#64748b" stroke-width="6" stroke-linecap="round"/>
                                    <path class="anim-pipe-heat" d="M10 60 L90 60" fill="none" stroke="#64748b" stroke-width="6" stroke-linecap="round"/>
                                    <line x1="20" y1="20" x2="20" y2="40" stroke="#fcd34d" stroke-width="2" stroke-dasharray="2 2"/>
                                    <text x="25" y="34" fill="#fcd34d" font-size="10" font-family="sans-serif">15 cm</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-pellet-faq-item">
                <button class="rk-pellet-faq-question">
                    <span>4. Czy wylewka anhydrytowa jest lepsza od cementowej pod kocioł na pellet?</span>
                    <div class="rk-pellet-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-pellet-faq-answer-wrapper">
                    <div class="rk-pellet-faq-answer-inner">
                        <div class="rk-pellet-faq-content">
                            <div class="rk-pellet-faq-text">
                                Tak, jastrych anhydrytowy wykazuje znacznie wyższy współczynnik przewodzenia ciepła (<strong>około 1,6-1,8 W/(mK)</strong>) w porównaniu do jastrychu cementowego (około 1,0-1,2 W/(mK)). Dzięki mniejszej grubości strukturalnej i płynnej konsystencji idealnie otula rurę grzewczą, nie zostawiając izolujących pęcherzy powietrza. To <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">skraca czas reakcji systemu</a> na zmianę temperatury o ponad <strong>50%</strong>.
                            </div>
                            <div class="rk-pellet-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="25" width="80" height="30" fill="#334155" rx="4"/>
                                    <circle cx="30" cy="40" r="6" fill="#ef4444"/>
                                    <circle cx="50" cy="40" r="6" fill="#ef4444"/>
                                    <circle cx="70" cy="40" r="6" fill="#ef4444"/>
                                    <rect class="anim-anhydrite" x="10" y="25" width="80" height="30" fill="#f59e0b" opacity="0.8" rx="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-pellet-faq-item">
                <button class="rk-pellet-faq-question">
                    <span>5. Ile wynosi realny koszt ogrzewania pelletem domu 150 m² z podłogówką?</span>
                    <div class="rk-pellet-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-pellet-faq-answer-wrapper">
                    <div class="rk-pellet-faq-answer-inner">
                        <div class="rk-pellet-faq-content">
                            <div class="rk-pellet-faq-text">
                                Roczny <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-link">koszt eksploatacyjny</a> w realiach cenowych <strong>2026 roku</strong> kształtuje się na poziomie około <strong>3900 - 4500 PLN</strong>, przy założeniu zużycia około 3,8 - 4,2 tony certyfikowanego pelletu drzewnego. Wartość ta dotyczy budynków nowo wybudowanych, posiadających skuteczną izolację przegród pionowych (styropian minimum 20 cm) oraz <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-link">system rekuperacji z odzyskiem ciepła</a>.
                            </div>
                            <div class="rk-pellet-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="45" width="60" height="15" fill="#475569" rx="2"/>
                                    <circle class="anim-coin" cx="35" cy="35" r="8" fill="#fcd34d" stroke="#d97706" stroke-width="2"/>
                                    <circle class="anim-coin" cx="50" cy="25" r="8" fill="#fcd34d" stroke="#d97706" stroke-width="2"/>
                                    <circle class="anim-coin" cx="65" cy="35" r="8" fill="#fcd34d" stroke="#d97706" stroke-width="2"/>
                                    <path d="M48 22 L48 28 M52 22 L52 28" stroke="#d97706" stroke-width="1.5"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe - Blokada (Strictly no H2/H3 in block as requested)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-pellet-faq-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano komponent interaktywny</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Kontener techniczny FAQ, animacje SVG oraz struktura algorytmiczna Schema.org stanowią wyłączną własność serwisu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu
    const faqItems = document.querySelectorAll('.rk-pellet-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-pellet-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszy element na start
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-pellet-dark: #0f172a;
    --rk-pellet-primary: #059669; /* Eco green for pellet */
    --rk-pellet-light: #ecfdf5;
    --rk-pellet-warn: #ea580c; /* Fire/Orange */
    --rk-pellet-warn-light: #fff7ed;
    --rk-pellet-gray: #64748b;
    --rk-pellet-border: #cbd5e1;
    --rk-pellet-bg: #ffffff;
}

.rk-pellet-box {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pellet-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(5, 150, 105, 0.15);
    border: 1px solid var(--rk-pellet-primary);
    overflow: hidden;
}

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

.rk-pellet-h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-pellet-quote {
    font-size: 19px;
    line-height: 1.6;
    color: #cbd5e1;
    font-style: italic;
    max-width: 750px;
    margin: 0 auto 15px auto;
}

.rk-pellet-author {
    font-size: 14px;
    color: var(--rk-pellet-primary);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* Interaktywny Symulator - Suwak */
.rk-pellet-sim {
    padding: 45px 50px;
    background: #f8fafc;
}

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

.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-toggle-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-pellet-gray);
    transition: color 0.3s;
    cursor: pointer;
}

.rk-toggle-label.active-pro { color: var(--rk-pellet-primary); }
.rk-toggle-label.active-amateur { color: var(--rk-pellet-warn); }

/* Switch CSS */
.rk-switch {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 36px;
}

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

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

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

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

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

/* Sekcja Wynikowa */
.rk-sim-data-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 30px;
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-pellet-border);
    transition: all 0.4s ease;
}

.rk-svg-container {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-pellet-light);
    border-radius: 12px;
    padding: 20px;
    transition: background 0.4s ease;
}

.anim-flame { transform-origin: bottom center; }
.anim-pipe { transition: stroke 0.4s ease, stroke-dashoffset 1s ease; }

/* Animacje PRO */
.state-pro .rk-sim-data-grid { border-color: var(--rk-pellet-primary); box-shadow: 0 10px 30px -10px rgba(5, 150, 105, 0.2); }
.state-pro .rk-svg-container { background: var(--rk-pellet-light); }
.state-pro .anim-flame { fill: #10b981; animation: steadyBurn 3s infinite alternate; }
.state-pro .anim-pipe { stroke: #10b981; stroke-dasharray: 100; stroke-dashoffset: 0; animation: flowSmooth 2s linear infinite; }

/* Animacje AMATEUR */
.state-amateur .rk-sim-data-grid { border-color: var(--rk-pellet-warn); box-shadow: 0 10px 30px -10px rgba(234, 88, 12, 0.2); }
.state-amateur .rk-svg-container { background: var(--rk-pellet-warn-light); }
.state-amateur .anim-flame { fill: #ea580c; animation: flickerStutter 0.5s infinite; }
.state-amateur .anim-pipe { stroke: #ea580c; stroke-dasharray: 10 10; animation: pulseError 1s infinite; }

@keyframes steadyBurn { 0% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }
@keyframes flowSmooth { to { stroke-dashoffset: -200; } }
@keyframes flickerStutter { 0%, 100% { opacity: 1; transform: scaleY(1); } 50% { opacity: 0.4; transform: scaleY(0.6); } }
@keyframes pulseError { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }

/* Dane tekstowe */
.rk-data-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px dashed var(--rk-pellet-border);
}

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

.rk-data-label {
    font-size: 15px;
    color: var(--rk-pellet-gray);
    font-weight: 600;
}

.rk-data-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-pellet-dark);
}

.rk-data-highlight {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 14px;
}

.state-pro .rk-data-highlight { background: var(--rk-pellet-primary); color: white; }
.state-amateur .rk-data-highlight { background: var(--rk-pellet-warn); color: white; }

/* Linki w tekście boxa */
.rk-sim-desc {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}
.rk-sim-desc a {
    color: var(--rk-pellet-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.state-amateur .rk-sim-desc a { color: var(--rk-pellet-warn); }

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

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    background: var(--rk-pellet-dark);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
}

.rk-cta-btn:hover {
    background: var(--rk-pellet-primary);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.4);
}

@media (max-width: 768px) {
    .rk-pellet-header, .rk-pellet-sim, .rk-pellet-cta { padding: 30px 20px; }
    .rk-sim-data-grid { grid-template-columns: 1fr; }
    .rk-svg-container { padding: 30px; }
    .rk-data-item { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-pellet-h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Podsumowanie – Zyskaj 15 lat spokoju z kotłem na pellet",
    "description": "Porównanie parametrów technicznych i kosztów układu ogrzewania podłogowego z kotłem na pellet. Interaktywna analiza wpływu bufora ciepła na stabilność instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-26",
    "dateModified": "2026-05-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-podsumowanie",
    "name": "Bilans energetyczny i eksploatacyjny: Kocioł na pellet z buforem i bez bufora (2026)",
    "description": "Zestawienie inżynierskie obrazujące różnice w zużyciu paliwa, taktowaniu i żywotności kotła stałopalnego w zależności od zastosowania sprzęgła hydraulicznego o dużej pojemności.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sprawność kotła na pellet",
      "taktowanie kotła stałopalnego",
      "zużycie pelletu dom 150m2",
      "żywotność zapalarki ceramicznej",
      "koszty eksploatacyjne ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kalkulacja termodynamiczna oparta na normie PN-EN 303-5 oraz PN-EN 1264, porównująca pracę ciągłą z pracą przerywaną (taktowaniem).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Układ z buforem: Sprawność 94%, zużycie 3.9 t/rok, żywotność zapalarki >5 lat.",
        "Układ bez bufora: Sprawność 74%, zużycie 4.8 t/rok, uszkodzenia grzałki <2 lata."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#webapp-podsumowanie",
    "name": "Symulator Przepływów: Pellet i Podłogówka",
    "description": "Interaktywny interfejs (Toggle Switch) demonstrujący zachowanie płaszczyznowego układu grzewczego zasilanego kotłem na biomasę, wskazujący na konsekwencje braku rozprzężenia hydraulicznego.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, and inline SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pellet-box" id="rk-pellet-summary">
    <div class="rk-pellet-header">
        <h2 class="rk-pellet-h2">Podsumowanie – Zyskaj 15 lat spokoju z kotłem na pellet</h2>
        <p class="rk-pellet-quote">
            "Połączenie kotła pelletowego z wylewką anhydrytową czy betonową to mariaż dwóch żywiołów. Bez inżynierskiego bufora ciepła tworzysz toksyczny związek. Z buforem – budujesz idealny system, który ogrzeje Twój dom za ułamek ceny prądu."
        </p>
        <div class="rk-pellet-author">Robert Kucharski</div>
    </div>

    <div class="rk-pellet-sim">
        <h3 class="rk-pellet-h3">Symulator Instalacji: Wpływ hydrauliki na koszty</h3>
        
        <div class="rk-toggle-wrapper">
            <span class="rk-toggle-label active-pro" id="rk-lbl-pro" onclick="document.getElementById('rk-sim-toggle').click()">Z buforem (Standard Inż.)</span>
            <label class="rk-switch">
                <input type="checkbox" id="rk-sim-toggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="rk-lbl-amateur" onclick="document.getElementById('rk-sim-toggle').click()">Bez bufora (Gra w ruletkę)</span>
        </div>

        <div class="rk-sim-data-grid state-pro" id="rk-data-container">
            <div class="rk-svg-container">
                <svg width="100%" height="100%" viewBox="0 0 200 200" style="max-width: 150px;">
                    <rect x="20" y="50" width="70" height="100" rx="8" fill="#334155"></rect>
                    <path class="anim-flame" d="M55 130 C45 130, 40 110, 55 90 C70 110, 65 130, 55 130 Z"></path>
                    <path class="anim-pipe" d="M90 70 L130 70 L130 150 L180 150" fill="none" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"></path>
                    <path class="anim-pipe" d="M180 150 C190 150, 190 130, 180 130 L140 130 C130 130, 130 110, 140 110 L180 110" fill="none" stroke-width="6" stroke-linecap="round"></path>
                </svg>
            </div>
            
            <div>
                <ul class="rk-data-list" id="rk-dynamic-list">
                    <li class="rk-data-item">
                        <span class="rk-data-label">Sprawność roczna systemu</span>
                        <span class="rk-data-value">&gt; 92% <span class="rk-data-highlight">Optymalnie</span></span>
                    </li>
                    <li class="rk-data-item">
                        <span class="rk-data-label">Średnie załączenia palnika</span>
                        <span class="rk-data-value">2 - 4 razy / dobę</span>
                    </li>
                    <li class="rk-data-item">
                        <span class="rk-data-label">Żywotność grzałki ceramicznej</span>
                        <span class="rk-data-value">5 - 7 lat</span>
                    </li>
                    <li class="rk-data-item">
                        <span class="rk-data-label">Prognoza zużycia paliwa (150 m²)</span>
                        <span class="rk-data-value">~ 3.9 tony / sezon</span>
                    </li>
                </ul>
                <div class="rk-sim-desc" id="rk-dynamic-desc">
                    <strong>Werdykt inżynierski:</strong> Zastosowanie minimalnej pojemności 50 l/kW wymuszonej przez <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> rozprzęga obiegi. Palnik pracuje w optymalnej temperaturze, a ciepło jest płynnie dawkowane przez <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a> i krzywą grzewczą.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pellet-cta">
        <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-cta-btn">
            SPRAWDŹ REALNE KOSZTY OGRZEWANIA W 2026 ROKU
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H w blokadzie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-pellet-summary');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; box-sizing: border-box;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zablokowano komponent algorytmiczny</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.6;">
                        Kontener techniczny i struktura Schema.org stanowią własność intelektualną Projekt-Ogrzewania.pl. Uruchomienie skryptów na tej domenie zostało wstrzymane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle Switch
    const toggle = document.getElementById('rk-sim-toggle');
    const container = document.getElementById('rk-data-container');
    const lblPro = document.getElementById('rk-lbl-pro');
    const lblAmateur = document.getElementById('rk-lbl-amateur');
    const list = document.getElementById('rk-dynamic-list');
    const desc = document.getElementById('rk-dynamic-desc');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // State: Amateur (Bez bufora)
            container.className = 'rk-sim-data-grid state-amateur';
            lblPro.classList.remove('active-pro');
            lblAmateur.classList.add('active-amateur');
            
            list.innerHTML = `
                <li class="rk-data-item">
                    <span class="rk-data-label">Sprawność roczna systemu</span>
                    <span class="rk-data-value">< 75% <span class="rk-data-highlight">Straty</span></span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Średnie załączenia palnika</span>
                    <span class="rk-data-value">Nawet 15-20 razy / dobę</span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Żywotność grzałki ceramicznej</span>
                    <span class="rk-data-value">Często < 12 miesięcy</span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Prognoza zużycia paliwa (150 m²)</span>
                    <span class="rk-data-value">~ 4.8 tony / sezon</span>
                </li>
            `;
            
            desc.innerHTML = `
                <strong>Skutek awaryjny:</strong> Brak odbioru mocy rzędu 10 kW przez rury zamknięte siłownikami powoduje natychmiastowe przegrzanie i wygaszenie kotła. Kondensacja spalin zasmołuje wymiennik, a instalacja staje się tykającą bombą pochłaniającą paliwo.
            `;
        } else {
            // State: Pro (Z buforem)
            container.className = 'rk-sim-data-grid state-pro';
            lblAmateur.classList.remove('active-amateur');
            lblPro.classList.add('active-pro');
            
            list.innerHTML = `
                <li class="rk-data-item">
                    <span class="rk-data-label">Sprawność roczna systemu</span>
                    <span class="rk-data-value">> 92% <span class="rk-data-highlight">Optymalnie</span></span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Średnie załączenia palnika</span>
                    <span class="rk-data-value">2 - 4 razy / dobę</span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Żywotność grzałki ceramicznej</span>
                    <span class="rk-data-value">5 - 7 lat</span>
                </li>
                <li class="rk-data-item">
                    <span class="rk-data-label">Prognoza zużycia paliwa (150 m²)</span>
                    <span class="rk-data-value">~ 3.9 tony / sezon</span>
                </li>
            `;
            
            desc.innerHTML = `
                <strong>Werdykt inżynierski:</strong> Zastosowanie minimalnej pojemności 50 l/kW wymuszonej przez <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> rozprzęga obiegi. Palnik pracuje w optymalnej temperaturze, a ciepło jest płynnie dawkowane przez <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a> i krzywą grzewczą.
            `;
        }
    });
});
</script>



<style>
:root {
    --rk-dl-primary: #0f172a;
    --rk-dl-accent: #ea580c; /* Ogień / Pellet */
    --rk-dl-accent-dark: #c2410c;
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-white: #ffffff;
}

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

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

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

.rk-dl-badge {
    display: inline-block;
    background: rgba(234, 88, 12, 0.2);
    border: 1px solid rgba(234, 88, 12, 0.3);
    color: #fdba74;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

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

.rk-dl-header h2 span { color: var(--rk-dl-accent); }

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

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

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

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

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

.rk-dl-preview {
    flex: 1.2;
    background: var(--rk-dl-bg);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s, box-shadow 0.3s;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
}

.rk-dl-preview:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(234, 88, 12, 0.2);
    border-color: var(--rk-dl-accent);
}

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

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,0.1);
}

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

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

.rk-dl-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-dl-text);
    line-height: 1.4;
}

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

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

.rk-dl-btn:hover {
    background: var(--rk-dl-accent-dark);
    transform: translateY(-4px);
    box-shadow: 0 15px 35px -5px rgba(234, 88, 12, 0.5);
    border-color: #fdba74;
}

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

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

.rk-dl-footer a {
    color: var(--rk-dl-accent-dark);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-dl-accent-dark);
    transition: 0.3s;
}

.rk-dl-footer a:hover {
    border-bottom-style: solid;
    color: var(--rk-dl-primary);
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#infografika-schemat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/"
    },
    "headline": "Kompletny Schemat Hydrauliczny: Kocioł na Pellet i Podłogówka (PDF)",
    "description": "Pobierz profesjonalny schemat inżynierski podłączenia kotła stałopalnego do instalacji podłogowej z wykorzystaniem bufora ciepła i zaworu mieszającego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Kociol-na-pellet.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-27",
    "dateModified": "2026-05-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#dataset-schemat",
    "name": "Schemat hydrauliczny i parametry: Kocioł na pellet z buforem",
    "description": "Zbiór danych wizualnych i normatywnych precyzujący prawidłowe podłączenie hydrauliczne źródła stałopalnego z niskotemperaturowym odbiornikiem płaszczyznowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat instalacji kocioł na pellet z buforem",
      "podłączenie podłogówki do pieca na pellet",
      "optymalizacja pracy kotła stałopalnego",
      "temperatura zasilania ogrzewania podłogowego",
      "zabezpieczenie powrotu kotła na pellet"
    ],
    "measurementTechnique": "Weryfikacja hydrauliczna na zgodność z wymogami PN-EN 303-5 oraz zabezpieczenie jastrychu przed przegrzaniem wg normy PN-EN 1264-4.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Inżynierski schemat hydrauliczny instalacji grzewczej"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kociol-na-pellet/#download-hub",
    "name": "Centrum Pobierania Wiedzy: Kocioł na Pellet",
    "description": "Interaktywny moduł umożliwiający wizualizację (zoom) i bezproblemowe pobranie schematów technicznych w formacie PDF/WEBP do użytku na budowie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-hub-container" id="rk-dl-pellet">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-content">
            <div class="rk-dl-badge">Darmowe Materiały Projektowe</div>
            <h2>Schemat Hydrauliczny: <span>Pellet i Podłogówka</span></h2>
            <p>Zabierz inżynierską wiedzę bezpośrednio do swojej kotłowni. Kompletny schemat podłączenia bufora, zaworu mieszającego i zabezpieczenia powrotu w jednym pliku PDF.</p>
        </div>
        <div class="rk-dl-visual">
            <svg class="rk-dl-pdf-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ea580c" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <path d="M9 13H15M9 17H13" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round"/>
                <text x="7" y="11" fill="white" font-size="4.5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Kociol-na-pellet.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Kociol-na-pellet.webp" alt="Infografika: Schemat instalacji kocioł na pellet z buforem i ogrzewaniem podłogowym" class="rk-dl-img" loading="lazy">
            <div class="rk-dl-zoom-hint">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="rk-dl-info">
            <ul class="rk-dl-features">
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Schemat 1:1 z rozprzężeniem przez bufor ciepła
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Prawidłowe zabezpieczenie powrotu kotła
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Temperatury zasilania wg normy PN-EN 1264
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wysoka rozdzielczość, gotowe do druku (A4/A3)
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Kociol-na-pellet.pdf" class="rk-dl-btn" target="_blank" rel="noopener noreferrer">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ SCHEMAT (PDF)
            </a>
            
        </div>

    </div>

    <div class="rk-dl-footer">
        Masz wątpliwości, czy Twoja maszynownia udźwignie te parametry? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zleć nam profesjonalny projekt podłogówki i kotłowni</a>, zabezpieczając się przed kosztownymi awariami.
        <br><br>
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie dozwolone z zachowaniem linku do źródła.
    </div>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/">Kocioł na pellet.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kotły na paliwa stałe w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 05 Jan 2026 11:35:02 +0000</pubDate>
				<category><![CDATA[Bufory ciepła]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kotły na paliwa stałe]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[kocioł na drewno]]></category>
		<category><![CDATA[kocioł na ekogroszek]]></category>
		<category><![CDATA[kotły na paliwa stałe]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[zawór mieszający]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3058</guid>

					<description><![CDATA[<p>Połączenie, które budzi emocje, ale wciąż cieszy się ogromnym zainteresowaniem inwestorów – kotły na paliwa stałe w ogrzewaniu podłogowym to temat wymagający wiedzy, precyzji i dobrego projektu. W polskich realiach klimatycznych i ekonomicznych takie rozwiązanie potrafi być jednocześnie tanie w eksploatacji i bardzo komfortowe, pod warunkiem spełnienia kilku kluczowych zasad technicznych. W artykule krok po kroku omawiamy, jak pogodzić wysokotemperaturową pracę kotła z niskotemperaturową podłogówką, dlaczego bufor ciepła jest sercem instalacji oraz jak uniknąć kosztownych błędów projektowych i wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">Kotły na paliwa stałe w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Kotły na paliwa stałe w ogrzewaniu podłogowym</strong>&nbsp;to połączenie, które w polskich realiach klimatycznych i ekonomicznych wciąż pozostaje niezwykle popularne. Choć wymaga szczególnego podejścia technicznego, odpowiednio zaprojektowany system gwarantuje efektywne i ekonomiczne ogrzewanie domu, łącząc niskie koszty eksploatacji z komfortem, jaki daje wodne ogrzewanie podłogowe. W tym kompleksowym artykule przeanalizujemy wszystkie aspekty tego połączenia – od fundamentalnych zasad fizyki, przez szczegóły hydrauliki, po konkretne wyliczenia i przykłady instalacji.</p>



<h2 class="wp-block-heading">Podstawowe wyzwanie: godzenie wysokich i niskich temperatur.</h2>



<p class="wp-block-paragraph">Głównym&nbsp;<strong>wyzwaniem technicznym</strong>&nbsp;przy łączeniu kotła stałopalnego z ogrzewaniem podłogowym jest fundamentalna różnica w optymalnych parametrach pracy obu systemów.</p>



<h3 class="wp-block-heading">Charakterystyka pracy kotła na paliwo stałe.</h3>



<p class="wp-block-paragraph">Nowoczesny&nbsp;<strong>kocioł zgazowujący drewno</strong>&nbsp;czy&nbsp;<strong>kocioł na ekogroszek</strong>&nbsp;osiąga najwyższą sprawność i najmniejszą emisję zanieczyszczeń, gdy pracuje na tzw.&nbsp;<strong>nominalnej mocy cieplnej</strong>&nbsp;z temperaturą wody zasilającej w przedziale&nbsp;<strong>70–85°C</strong>. Praca w niższym zakresie (tzw. praca z modulacją mocy) prowadzi do niepełnego spalania, zwiększonej emisji sadzy i smoły oraz spadku sprawności poniżej 70%. Kocioł potrzebuje też odpowiedniego&nbsp;<strong>ciągu kominowego</strong>, który stabilizuje się przy wyższych temperaturach spalin.</p>



<h3 class="wp-block-heading">Specyfika wodnego ogrzewania podłogowego.</h3>



<p class="wp-block-paragraph">Z kolei&nbsp;<strong>wodna pętla grzewcza</strong>&nbsp;wylewana w wylewce betonowej ma zupełnie inne wymagania. Ze względu na komfort użytkownika (brak przegrzania stóp) oraz wytrzymałość materiałów wykończeniowych (np. paneli drewnianych)&nbsp;<strong>temperatura zasilania</strong>&nbsp;pętli podłogowej nie powinna przekraczać&nbsp;<strong>55°C</strong>, a w praktyce często wynosi&nbsp;<strong>35–45°C</strong>. Dodatkowo, system ten ma dużą&nbsp;<strong>bezwładność cieplną</strong>&nbsp;– nagrzewa się i stygnie powoli.</p>



<p class="wp-block-paragraph"><strong>Kluczowe pytanie brzmi: jak zasilić układ niskotemperaturowy (podłogówkę) medium o wysokiej temperaturze z kotła, nie powodując jego nieefektywnej pracy, przegrzania podłogi czy dyskomfortu użytkowników?</strong></p>



<p class="wp-block-paragraph">Odpowiedzią jest zastosowanie odpowiedniego&nbsp;<strong>układu hydraulicznego z buforowaniem ciepła</strong>.</p>



<h2 class="wp-block-heading">Bufor ciepła: serce stabilnej instalacji.</h2>



<p class="wp-block-paragraph"><strong>Zasobnik akumulacyjny</strong>, potocznie zwany&nbsp;<strong>buforem</strong>, jest absolutnie niezbędnym elementem w większości instalacji łączących kocioł stałopalny z ogrzewaniem podłogowym. Jego rola wykracza daleko poza prostą funkcję zbiornika.</p>



<h3 class="wp-block-heading">Zasada działania i korzyści.</h3>



<p class="wp-block-paragraph">Bufor to izolowany termicznie zbiornik wody grzewczej, który działa jako <strong>akumulator energii cieplnej</strong>. Kocioł pracuje cyklicznie – po załadowaniu paliwa i rozpaleniu, oddaje maksymalną moc do momentu wypalenia wsadu. Ciepło to nie jest od razu oddawane do powolnej <a href="https://projekt-ogrzewania.pl">podłogówki</a>, lecz magazynowane w buforze. Po wypaleniu paliwa, kocioł przestaje pracować, a ogrzewanie podłogowe czerpie zgromadzoną energię z bufora. Dzięki temu:</p>



<ul class="wp-block-list">
<li>Kocioł pracuje z&nbsp;<strong>nominalną, wysoką sprawnością</strong>.</li>



<li>Zabezpiecza to instalację podłogową przed&nbsp;<strong>termicznym szokiem</strong>&nbsp;zbyt gorącej wody.</li>



<li>Zwiększa się&nbsp;<strong>czas między dokładaniami</strong>&nbsp;paliwa.</li>



<li>System zyskuje na&nbsp;<strong>stabilności</strong>&nbsp;– wahania temperatury w pomieszczeniach są minimalne.</li>
</ul>



<h3 class="wp-block-heading">Jak dobrać pojemność bufora? Praktyczne wyliczenia.</h3>



<p class="wp-block-paragraph">Pojemność bufora dobiera się w oparciu o moc kotła oraz charakterystykę budynku. Stosuje się kilka praktycznych zasad:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zasada minimalna (uproszczona):</strong>&nbsp;<strong>50 litrów na każdy 1 kW mocy kotła</strong>. Dla kotła o mocy 20 kW oznacza to bufor o pojemności min. 1000 litrów.</li>



<li><strong>Kalkulacja uwzględniająca bezwładność:</strong>&nbsp;Bardziej precyzyjna metoda bierze pod uwagę&nbsp;<strong>zapotrzebowanie na ciepło budynku (Q)</strong>&nbsp;i pożądaną&nbsp;<strong>autonomię (t)</strong>, czyli czas, przez który bufor ma pokrywać potrzeby grzewcze bez pracy kotła.
<ul class="wp-block-list">
<li><strong>Wzór:</strong>&nbsp;<code>Pojemność bufora [litry] = (Autonomia [h] * Zapotrzebowanie mocy budynku Q [kW]) / (Różnica temperatur ΔT [K] * 1,163)</code></li>



<li><strong>Przykład:</strong>&nbsp;Dom o zapotrzebowaniu Q=10 kW, chcemy autonomię 2 godziny przy różnicy temperatur ΔT=40K (np. bufor 85°C, powrót z podłogówki 45°C).</li>



<li><strong>Obliczenie:</strong>&nbsp;<code>Pojemność = (2 * 10) / (40 * 1,163) ≈ 0,43 m³ = 430 litrów</code>. W tym przypadku minimalna pojemność z pierwszego wzoru (50l/kW*20kW=1000l) jest większa i decyduje.</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><strong>Tabela 1: Przykładowe dobory bufora dla różnych mocy kotłów w budynku o dobrej izolacji</strong>.</p>



<style>
/* Responsywna tabela – WordPress */
.tabela-bufor {
  width: 100%;
  border-collapse: collapse;
  margin: 30px 0;
  font-size: 16px;
  overflow: hidden;
  box-shadow: 0 0 20px rgba(0,0,0,0.05);
}

.tabela-bufor thead {
  background-color: #1f2937;
  color: #ffffff;
}

.tabela-bufor th,
.tabela-bufor td {
  padding: 14px 16px;
  text-align: center;
  border-bottom: 1px solid #e5e7eb;
}

.tabela-bufor tbody tr:nth-child(even) {
  background-color: #f9fafb;
}

.tabela-bufor tbody tr:hover {
  background-color: #eef2ff;
  transition: background-color 0.2s ease-in-out;
}

.tabela-bufor th {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 14px;
}

/* RESPONSYWNOŚĆ */
@media (max-width: 768px) {
  .tabela-bufor thead {
    display: none;
  }

  .tabela-bufor,
  .tabela-bufor tbody,
  .tabela-bufor tr,
  .tabela-bufor td {
    display: block;
    width: 100%;
  }

  .tabela-bufor tr {
    margin-bottom: 20px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
  }

  .tabela-bufor td {
    text-align: right;
    padding-left: 50%;
    position: relative;
  }

  .tabela-bufor td::before {
    content: attr(data-label);
    position: absolute;
    left: 16px;
    width: calc(50% - 32px);
    text-align: left;
    font-weight: 600;
    color: #374151;
  }
}
</style>

<table class="tabela-bufor">
  <thead>
    <tr>
      <th>Moc kotła [kW]</th>
      <th>Typowy zakres powierzchni domu [m²]</th>
      <th>Minimalna pojemność bufora (50 l/kW)</th>
      <th>Zalecana pojemność dla komfortu</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td data-label="Moc kotła [kW]">15 kW</td>
      <td data-label="Powierzchnia domu">120 – 150 m²</td>
      <td data-label="Minimalna pojemność">750 l</td>
      <td data-label="Zalecana pojemność">1000 – 1200 l</td>
    </tr>
    <tr>
      <td data-label="Moc kotła [kW]">20 kW</td>
      <td data-label="Powierzchnia domu">150 – 200 m²</td>
      <td data-label="Minimalna pojemność">1000 l</td>
      <td data-label="Zalecana pojemność">1200 – 1500 l</td>
    </tr>
    <tr>
      <td data-label="Moc kotła [kW]">25 kW</td>
      <td data-label="Powierzchnia domu">200 – 250 m²</td>
      <td data-label="Minimalna pojemność">1250 l</td>
      <td data-label="Zalecana pojemność">1500 – 2000 l</td>
    </tr>
    <tr>
      <td data-label="Moc kotła [kW]">30 kW</td>
      <td data-label="Powierzchnia domu">250 – 300 m²</td>
      <td data-label="Minimalna pojemność">1500 l</td>
      <td data-label="Zalecana pojemność">2000 – 2500 l</td>
    </tr>
  </tbody>
</table>



<h2 class="wp-block-heading">Hydraulika i automatyka: zaawansowane układy mieszające.</h2>



<p class="wp-block-paragraph">Sam bufor nie rozwiąże problemu różnicy temperatur. Potrzebny jest&nbsp;<strong>inteligentny układ dystrybucji ciepła</strong>&nbsp;pomiędzy buforem a pętlami podłogowymi.</p>



<h3 class="wp-block-heading">Układ z zaworami mieszającymi i pompą.</h3>



<p class="wp-block-paragraph">To najpopularniejsze rozwiązanie. Na zasilaniu każdej&nbsp;<strong>gałęzi grzewczej</strong>&nbsp;(np. osobna dla parteru, piętra) montuje się&nbsp;<strong>trójdrogowy zawór mieszający</strong>&nbsp;sterowany siłownikiem. Zawór pobiera gorącą wodę z bufora i miesza ją z chłodną wodą powrotną z pętli, uzyskując żądaną, bezpieczną temperaturę dla podłogówki (np. 40°C). Za utrzymaniem stałej temperatury czuwa&nbsp;<strong>czujnik na rurze zasilającej podłogówkę</strong>&nbsp;i sterownik, który reguluje pozycję zaworu.</p>



<p class="wp-block-paragraph"><strong>Przykład techniczny:</strong>&nbsp;Temperatura w buforze: 75°C. Żądana temp. zasilania podłogówki: 40°C. Temp. powrotu z podłogi: 35°C. Zawór mieszający ustawia proporcję: pobiera niewielką ilość wody 75°C i mieszając ją z dużą ilością wody 35°C, uzyskuje na wyjściu 40°C. Gdy temperatura w buforze spadnie do 50°C, zawór otworzy się bardziej, by utrzymać to samo 40°C na zasilaniu.</p>



<h3 class="wp-block-heading">Pompa z głowicą mieszającą (zestaw mieszający).</h3>



<p class="wp-block-paragraph">Alternatywą dla zaworu trójdrogowego jest&nbsp;<strong>zestaw z pompą i zaworem przełączającym</strong>. Pompa obiegowa podłogówki wymusza obieg przez krótkie, zamknięte pętle, a do tego obiegu, poprzez zawór, dołączana jest odpowiednia ilość gorącej wody z bufora. Rozwiązanie szczególnie sprawdza się w mniejszych instalacjach.</p>



<h3 class="wp-block-heading">Rola automatyki pogodowej.</h3>



<p class="wp-block-paragraph">W nowoczesnych instalacjach&nbsp;<strong>regulator pogodowy</strong>&nbsp;jest standardem. Mierzy on temperaturę zewnętrzną i na jej podstawie (z wykorzystaniem tzw.&nbsp;<strong>krzywej grzewczej</strong>) oblicza wymaganą temperaturę wody w obiegu grzewczym. Im zimniej na dworze, tym wyższą temperaturę zasilania ustawia dla zaworów mieszających. Dzięki temu system&nbsp;<strong>reaguje prewencyjnie na zmiany pogody</strong>, a nie z opóźnieniem na spadek temperatury w pokoju.</p>



<h2 class="wp-block-heading">Dobór kotła na paliwo stałe do ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph">Nie każdy kocioł nadaje się równie dobrze. Wybór zależy od priorytetów: wygody, kosztu paliwa, ekologii.</p>



<h3 class="wp-block-heading">Kotły z podajnikiem (pellet, ekogroszek).</h3>



<ul class="wp-block-list">
<li><strong>Zasada działania:</strong>&nbsp;Zasobnik na paliwo połączony jest ślimakowym podajnikiem z paleniskiem. Paliwo jest automatycznie dozowane na podstawie sygnału z termostatu.&nbsp;<strong>Wygoda zbliżona do kotła gazowego.</strong></li>



<li><strong>Dopasowanie do podłogówki:</strong>&nbsp;Doskonałe. Praca jest bardziej stabilna i modulowalna niż w kotłach zasypowych, choć nadal wymaga bufora dla optymalizacji. Automatyka kotła może współpracować z regulatorami pokojowymi.</li>
</ul>



<h3 class="wp-block-heading">Kotły zgazowujące drewno (zasypowe).</h3>



<ul class="wp-block-list">
<li><strong>Zasada działania:</strong>&nbsp;Spalanie dwuetapowe. W pierwszej komorze drewno jest podgrzewane i uwalnia gaz drzewny, który spala się w drugiej komorze przy bardzo wysokiej temperaturze.&nbsp;<strong>Bardzo wysoka sprawność (często powyżej 90%).</strong></li>



<li><strong>Dopasowanie do podłogówki:</strong>&nbsp;Wymagają bardzo starannego doboru mocy i dużego bufora, ponieważ pracują najlepiej przy pełnym obciążeniu. Idealne dla użytkowników ceniących ekologię i mających dostęp do taniego drewna.</li>
</ul>



<h3 class="wp-block-heading">Kotły wielopaliwowe.</h3>



<ul class="wp-block-list">
<li><strong>Zasada działania:</strong>&nbsp;Często konstrukcja komory umożliwia spalanie zarówno węgla (ekogroszku), jak i drewna. Mniej wydajne od specjalistycznych konstrukcji, ale dające elastyczność.</li>



<li><strong>Dopasowanie do podłogówki:</strong>&nbsp;Wymagają standardowych zabezpieczeń (bufor, mieszacze). Ich praca jest mniej stabilna, więc rola bufora jest kluczowa.</li>
</ul>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego z kotłem stałopalnym: kluczowe punkty.</h2>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">Projekt instalacji</a></strong> jest etapem, na którym nie można oszczędzać. Błędy projektowe są trudne i kosztowne w naprawie. W kontekście współpracy z kotłem na paliwo stałe, projekt musi uwzględnić kilka absolutnie krytycznych elementów:</p>



<ol start="1" class="wp-block-list">
<li><strong>Bilans cieplny budynku:</strong>&nbsp;Precyzyjne obliczenie strat ciepła to podstawa do doboru mocy kotła.&nbsp;<strong>Przewymiarowanie kotła</strong>&nbsp;to najczęstszy błąd, prowadzący do pracy z cyklami (tzw. taktowanie), co niszczy kocioł i obniża komfort. Kocioł dobiera się z niewielkim zapasem (10-20%) do obliczonego zapotrzebowania.</li>



<li><strong>Rozplanowanie pętli grzewczych:</strong> Projektant musi tak podzielić powierzchnię na pętle (o długościach rury 80-120m), aby zapewnić równomierny rozkład temperatury. W kontekście kotła stałopalnego istotne jest, aby pętle w pomieszczeniach o największych stratach (np. salon z dużymi oknami) miały możliwość zasilenia nieco wyższą temperaturą (np. 45°C) niż pętle w sypialniach (np. 35°C). Wymaga to zaprojektowania osobnych <strong>gałęzi z własnymi <a href="https://projekt-ogrzewania.pl/kategoria-produktu/grupy-pompowo-mieszajace/">zaworami mieszającymi</a></strong>.</li>



<li><strong>Schemat hydrauliczny z buforem:</strong>&nbsp;Projekt musi dokładnie określić miejsca podłączeń, średnice rur, sposób hydraulicznego rozdzielenia obiegu kotłowego, bufora i obiegów grzewczych. Kluczowe jest uniknięcie&nbsp;<strong>zjawiska short-circuit</strong>&nbsp;(krótkiego spięcia hydraulicznego), gdy gorąca woda z kotła płynie najkrótszą drogą z powrotem do kotła, omijając bufor i instalację.</li>



<li><strong>Dobór elementów zabezpieczających:</strong>&nbsp;Projekt musi zawierać&nbsp;<strong>zawór bezpieczeństwa</strong>&nbsp;na kotle i buforze,&nbsp;<strong>naczynie wzbiorcze</strong>&nbsp;o odpowiedniej pojemności dla całej instalacji oraz&nbsp;<strong>zabezpieczenie przed skroplinami</strong>&nbsp;w kominie (co grozi przy zbyt niskiej temperaturze spalin).</li>



<li><strong>Założenia dla automatyki:</strong>&nbsp;Określenie, jaki regulator będzie zarządzał całym systemem, jak podłączone zostaną czujniki i jak ma przebiegać współpraca pomiędzy sterownikiem kotła a automatyką grzewczą.</li>
</ol>



<h2 class="wp-block-heading">Analiza kosztów i przykład kompletnej instalacji.</h2>



<p class="wp-block-paragraph">Poniżej przedstawiamy&nbsp;<strong>szczegółowy przykład techniczny</strong>&nbsp;dla domu o powierzchni 160 m² z zapotrzebowaniem na ciepło 12 kW.</p>



<h3 class="wp-block-heading">Skład systemu:</h3>



<ol start="1" class="wp-block-list">
<li><strong>Źródło ciepła:</strong>&nbsp;Kocioł zgazowujący drewno, moc 15 kW, z płaszczem wodnym. Sprawność deklarowana: 92%.</li>



<li><strong>Akumulacja:</strong>&nbsp;Bufor ciepła stalowy, pojemność 1200 litrów, izolacja 100 mm wełny mineralnej.</li>



<li><strong>Rozdzielenie podłogówki:</strong>&nbsp;Dwie gałęzie grzewcze (parter + piętro) z indywidualnymi zestawami mieszającymi (zawór 3-drogowy + pompa + sterownik).</li>



<li><strong>Automatyka:</strong>&nbsp;Centralny regulator pogodowy z czujnikami temperatury wewnętrznej w salon i sypialni.</li>



<li><strong>Paliwo:</strong>&nbsp;Drewno opałowe sezonowane (o wilgotności poniżej 20%), wartość opałowa ok. 4 kWh/kg.</li>
</ol>



<h3 class="wp-block-heading">Szacunkowe wyliczenie zużycia paliwa:</h3>



<ul class="wp-block-list">
<li>Sezon grzewczy: 180 dni.</li>



<li>Średnie zapotrzebowanie dobowe przy temperaturze zewnętrznej +5°C: ok. 60 kWh (12 kW * 20h pracy pompy * 0.25 współczynnika obciążenia).</li>



<li>Roczna potrzeba ciepła: ok. 180 dni * 60 kWh/dobę =&nbsp;<strong>10 800 kWh</strong>.</li>



<li>Uwzględniając sprawność systemu (kocioł 92%, straty bufora i instalacji ~10%): potrzebna energia z paliwa = 10 800 kWh / (0,92*0,9) ≈&nbsp;<strong>13 040 kWh</strong>.</li>



<li>Ilość drewna: 13 040 kWh / 4 kWh/kg =&nbsp;<strong>3 260 kg</strong>&nbsp;(ok. 3,3 tony) drewna sezonowanego na sezon.</li>
</ul>



<h3 class="wp-block-heading">Koszty inwestycyjne (przybliżone):</h3>



<ul class="wp-block-list">
<li>Kocioł z instalacją kominową: 12 000 – 18 000 zł</li>



<li>Bufor 1200l z armatura: 5 000 – 7 000 zł</li>



<li>Ogrzewanie podłogowe (<a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rury</a>, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielacze</a>, sterowniki, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/materialy-uzupelniajace/">materiały</a>): 15 000 – 25 000 zł (w zależności od wykonawcy)</li>



<li>Projekt i montaż hydrauliki: 8 000 – 12 000 zł</li>



<li><strong>Łącznie (orientacyjnie): 40 000 – 62 000 zł</strong></li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767610135230"><strong class="schema-faq-question"><strong>Czy kotły na paliwa stałe nadają się do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Tak, ale wyłącznie przy zastosowaniu odpowiedniego układu hydraulicznego z buforem ciepła i zaworami mieszającymi. Bez tego instalacja będzie nieefektywna i niekomfortowa.</p> </div> <div class="schema-faq-section" id="faq-question-1767610151570"><strong class="schema-faq-question"><strong>Dlaczego bufor ciepła jest konieczny przy kotle stałopalnym?</strong></strong> <p class="schema-faq-answer">Bufor stabilizuje pracę kotła, magazynuje nadwyżki energii i chroni ogrzewanie podłogowe przed zbyt wysoką temperaturą zasilania.</p> </div> <div class="schema-faq-section" id="faq-question-1767610162680"><strong class="schema-faq-question"><strong>Jaka temperatura jest bezpieczna dla ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">W praktyce temperatura zasilania podłogówki powinna wynosić 35–45°C, maksymalnie do 55°C w wyjątkowych warunkach.</p> </div> <div class="schema-faq-section" id="faq-question-1767610176310"><strong class="schema-faq-question"><strong>Czy można połączyć kocioł na drewno bezpośrednio z podłogówką?</strong></strong> <p class="schema-faq-answer">Nie. Bezpośrednie połączenie grozi przegrzaniem podłogi, dyskomfortem użytkowników i skróceniem żywotności instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1767610186295"><strong class="schema-faq-question"><strong>Jaki kocioł najlepiej sprawdzi się z ogrzewaniem podłogowym?</strong></strong> <p class="schema-faq-answer">Najlepiej sprawdzają się kotły z podajnikiem oraz kotły zgazowujące drewno, ale tylko w połączeniu z dobrze dobranym buforem i automatyką pogodową.</p> </div> </div>



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



<p class="wp-block-paragraph">Podsumowując, system oparty na&nbsp;<strong>kotle na paliwo stałe z buforem ciepła i wodnym ogrzewaniem podłogowym</strong>&nbsp;to inwestycja wymagająca większego nakładu początkowego i przestrzeni, ale w długiej perspektywie gwarantująca niskie koszty ogrzewania i wysoki komfort cieplny.&nbsp;<strong>Kluczem do sukcesu jest profesjonalny projekt, uwzględniający specyfikę pracy kotła stałopalnego, oraz staranny, świadomy montaż.</strong>&nbsp;Dzięki temu połączenie starej, sprawdzonej technologii spalania paliw stałych z nowoczesnym, niskotemperaturowym systemem dystrybucji ciepła stanie się efektywną i niezawodną centralą cieplną dla każdego domu.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="mWPF6N8zC1"><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=SxbfvlVJj8#?secret=mWPF6N8zC1" data-secret="mWPF6N8zC1" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">Kotły na paliwa stałe w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

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



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



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



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



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



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



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



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



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



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



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



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

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

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

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

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

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

</div>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">System tak zaprojektowany nie tylko gwarantuje najwyższy komfort termiczny, pozbawiony przegrzewania i wychłodzeń, ale też osiąga najniższe możliwe koszty eksploatacji, maksymalnie wykorzystując <strong>bezpłatną energię słońca</strong> i minimalizując pracę konwencjonalnych źródeł ciepła. To inwestycja w inteligentną, przyszłościową i odpowiedzialną technologię grzewczą.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="GhiiEpqj7Y"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=gFK2odfV0b#?secret=GhiiEpqj7Y" data-secret="GhiiEpqj7Y" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale kluczem do jego prawidłowego działania jest odpowiednia temperatura wody. W artykule wyjaśniamy, jaka jest maksymalna temperatura zasilania podłogówki, jakie czynniki na nią wpływają i jak uniknąć typowych błędów. Dowiedz się, jak profesjonalny projekt i odpowiednie ustawienia mogą zapewnić ciepło w Twoim domu, chroniąc jednocześnie posadzkę i obniżając rachunki za ogrzewanie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Maksymalna temperatura zasilania podłogówki - Wytyczne inżynierskie 2026",
    "description": "Profesjonalna analiza maksymalnej temperatury zasilania ogrzewania podłogowego zgodnie z normą PN-EN 1264. Wpływ na COP pompy ciepła, trwałość jastrychu i bezpieczeństwo drewna.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "license": "https://projekt-ogrzewania.pl/",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne temperatur zasilania podłogówki",
    "description": "Zbiór danych technicznych dotyczących limitów temperaturowych dla różnych systemów ogrzewania płaszczyznowego i okładzin podłogowych.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit PN-EN 1264",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura zasilania czynnika grzewczego"
      },
      {
        "@type": "PropertyValue",
        "name": "Limit dla drewna",
        "value": "38°C",
        "description": "Zalecana górna granica zasilania dla ochrony parkietów"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Parametrów Podłogówki",
    "operatingSystem": "All",
    "applicationCategory": "DesignApplication",
    "description": "Narzędzie do symulacji rozkładu temperatur i doboru zasilania na podstawie oporu cieplnego R."
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        <div class="hero-badge">
            <span>🛡️</span> Ekspertyza HVAC 2026
        </div>
        
        <p class="hero-text"><strong>Maksymalna temperatura zasilania podłogówki</strong> to zdefiniowana technicznie najwyższa dopuszczalna temperatura czynnika grzewczego (wody) wprowadzanego do pętli grzewczych, która gwarantuje bezpieczeństwo konstrukcyjne jastrychu, trwałość okładziny wierzchniej oraz zachowanie parametrów fizjologicznych użytkowników zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>. Przekroczenie tych wartości prowadzi do nieodwracalnych uszkodzeń termicznych i drastycznego spadku sprawności źródeł niskotemperaturowych.</p>
        
        <p class="hero-text">Współczesne projektowanie wymaga precyzyjnego balansu – zbyt niska temperatura nie pokryje strat ciepła wyliczonych w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a>, natomiast zbyt wysoka zniszczy strukturę wylewki. Jako inżynier z 15-letnim doświadczeniem, w tym artykule rozbijam na czynniki pierwsze limity temperaturowe, fizykę przepływu i ekonomię eksploatacji.</p>

        <div class="hero-modules-title">Analiza inżynierska obejmuje:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Limity normatywne 55°C</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌳</span>
                <span class="hero-card-title">Bezpieczeństwo drewna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚙️</span>
                <span class="hero-card-title">Algorytm doboru tz</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💰</span>
                <span class="hero-card-title">Wpływ na COP pompy</span>
            </div>
        </div>
    </div>
</div>



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

/* Główny kontener otulający cały moduł (tekst + symulator) */
.integrated-module-wrapper {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* SEKCJA Z ARTYKUŁEM - ZMODYFIKOWANY UKŁAD */
.module-article-section {
    padding: 40px 50px 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.module-article-section h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.module-article-section a:hover {
    color: #0369a1;
}

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

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.text-info-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.text-info-box .icon {
    font-size: 24px;
}

.text-info-box p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

.article-risk-card a {
    color: #b91c1c;
    text-decoration-color: #fca5a5;
}

.article-risk-card a:hover {
    color: #7f1d1d;
}

/* SEKCJA Z SYMULATOREM */
.module-simulator-section {
    padding: 40px 50px;
    background: #ffffff;
}

.simulator-header-box {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.simulator-header-icon {
    font-size: 28px;
}

.simulator-header-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0;
}

.simulator-header-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 5px 0 0 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 30px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 25%, #f59e0b 50%, #ef4444 80%, #991b1b 100%);
    outline: none;
    transition: opacity .2s;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

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

.status-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    transition: all 0.3s ease;
}

.status-icon {
    font-size: 32px;
    margin-bottom: 12px;
}

.status-title {
    font-size: 13px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.status-desc {
    font-size: 15px;
    color: var(--primary);
    line-height: 1.6;
    font-weight: 600;
    margin: 0;
}

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

@media (max-width: 768px) {
    .module-article-section { padding: 30px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .module-simulator-section { padding: 30px 25px; }
    .result-cards { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywna Analiza Tolerancji Termicznej Posadzek",
    "description": "Zintegrowane narzędzie inżynierskie służące do wizualizacji wpływu temperatury zasilania na fizykę jastrychu (naprężenia rozszerzalności liniowej) oraz przyspieszoną degradację żywotności polimerów w rurach wielowarstwowych zgodnie z reżimami normy PN-EN 1264.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Dynamiczna symulacja naprężeń w jastrychu cementowym przy przekroczeniu dopuszczalnych 55°C",
      "Estymacja spadku żywotności rur PEX/PERT dla pracy powyżej 60°C",
      "Ostrzeżenia dotyczące ryzyka pękania gresu ze względu na brak dylatacji"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Krytyczne parametry zasilania i ich wpływ na ogrzewanie płaszczyznowe",
    "description": "Zestawienie twardych danych inżynierskich określających graniczne temperatury pracy dla betonu oraz polimerów stosowanych w instalacjach.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozszerzalność liniowa jastrychu C20/F4",
        "value": "0,012 mm/(m·K)",
        "description": "Współczynnik określający przyrost długości posadzki w odpowiedzi na wzrost temperatury. Przekroczenie limitu 55°C powoduje skrajne naprężenia."
      },
      {
        "@type": "PropertyValue",
        "name": "Temperatura krytycznej degradacji rury PEX (Klasa 4)",
        "value": "> 60°C",
        "description": "Temperatura, powyżej której następuje przyspieszone niszczenie wiązań sieciowanych (PE-Xa), znacząco skracające 50-letnią żywotność systemu."
      },
      {
        "@type": "PropertyValue",
        "name": "Granica bezpieczeństwa jastrychu (PN-EN 1264)",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura dopuszczalna w strefie rur w systemie mokrym."
      }
    ]
  }
]
</script>

<div class="integrated-module-wrapper" id="integrated-app-container">
    
    <div class="module-article-section">
        <h2>Jaka jest maksymalna temperatura zasilania podłogówki według norm?</h2> 
        
        <p class="text-lead">Zgodnie z wymogami, które nakłada <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">norma PN-EN 1264</a>, bezwzględna <strong>maksymalna temperatura zasilania podłogówki wynosi 55°C</strong>. Jest to nieprzekraczalna granica bezpieczeństwa dla instalacji pracujących w tzw. systemie mokrym, gdzie rury są bezpośrednio zalane jastrychu.</p>
        
        <div class="text-info-box">
            <span class="icon">💡</span>
            <p>W praktyce inżynierskiej dąży się do tego, aby temperatura projektowa (t_z) była jak najniższa. W nowoczesnym budownictwie standardem jest projektowanie układu na parametry <strong>35/30°C</strong> lub <strong>40/35°C</strong>.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>Przekroczenie progu <strong>55°C</strong> stwarza ryzyko wystąpienia naprężeń termicznych przekraczających wytrzymałość jastrychu na ściskanie i zginanie. Przykładowo, jastrych cementowy klasy <strong>C20/F4</strong> przy wzroście temperatury powyżej dopuszczalnej normy ulega rozszerzalności liniowej na poziomie ok. <strong>0,012 mm/(m·K)</strong>. Przy braku odpowiedniej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a>, takie rozszerzenie prowadzi do pękania gresu lub nieodwracalnej deformacji paneli.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">🔥</span>
                <p>Wartości graniczne temperatury zasilania wynikają również z klasyfikacji rur. Najczęściej stosowana <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rura PEX do ogrzewania podłogowego</a> ma określony czas życia (min. 50 lat) pod warunkiem pracy w określonych reżimach temperaturowych. Praca ciągła powyżej <strong>60°C</strong> drastycznie przyspiesza procesy starzenia polimeru, co może skrócić żywotność instalacji o połowę.</p>
            </div>
        </div>
    </div>

    <div class="module-simulator-section">
        <div class="simulator-header-box">
            <div class="simulator-header-icon">🌡️</div>
            <div>
                <h3 class="simulator-header-title">Symulator Naprężeń Termicznych</h3>
                <p class="simulator-header-subtitle">Przesuń suwak, aby zweryfikować opisane w tekście procesy destrukcyjne dla jastrychu i rur PEX.</p>
            </div>
        </div>
        
        <div class="slider-container">
            <div class="slider-value-display" id="slider-val-display">35°C</div>
            <input type="range" min="20" max="75" value="35" class="temp-slider" id="temp-input-slider">
        </div>

        <div class="result-cards">
            <div class="status-card state-optimal" id="card-screed">
                <div class="status-icon" id="icon-screed">✅</div>
                <div class="status-title" id="title-screed">Reakcja jastrychu C20/F4</div>
                <p class="status-desc" id="desc-screed">Brak naprężeń. Rozszerzalność liniowa pod pełną kontrolą. Posadzka pracuje stabilnie.</p>
            </div>
            
            <div class="status-card state-optimal" id="card-pex">
                <div class="status-icon" id="icon-pex">🛡️</div>
                <div class="status-title" id="title-pex">Żywotność rur PEX (Klasa 4)</div>
                <p class="status-desc" id="desc-pex">Optymalne parametry. Polietylen sieciowany zachowuje 100% żywotności przewidzianej na ponad 50 lat.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe - Autoryzacja modułu (Chronimy zawartość)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('integrated-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">⚠️</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 20px;">Zintegrowany moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('temp-input-slider');
    const valDisplay = document.getElementById('slider-val-display');
    
    const cardScreed = document.getElementById('card-screed');
    const iconScreed = document.getElementById('icon-screed');
    const titleScreed = document.getElementById('title-screed');
    const descScreed = document.getElementById('desc-screed');
    
    const cardPex = document.getElementById('card-pex');
    const iconPex = document.getElementById('icon-pex');
    const titlePex = document.getElementById('title-pex');
    const descPex = document.getElementById('desc-pex');

    function updateSimulator(temp) {
        valDisplay.textContent = temp + '°C';

        // Logika dla jastrychu
        cardScreed.className = 'status-card'; 
        if (temp <= 45) {
            cardScreed.classList.add('state-optimal');
            iconScreed.textContent = '✅';
            titleScreed.textContent = 'Bezpieczny jastrych';
            descScreed.textContent = 'Brak niebezpiecznych naprężeń. Rozszerzalność zbieżna z projektem i poprawnie przyjmowana przez dylatacje.';
        } else if (temp > 45 && temp <= 55) {
            cardScreed.classList.add('state-warning');
            iconScreed.textContent = '⚠️';
            titleScreed.textContent = 'Granica wg PN-EN 1264';
            descScreed.textContent = 'Zbliżasz się do krawędzi limitu normy. Jastrych silnie pracuje. Wymagana absolutnie bezbłędna izolacja brzegowa.';
        } else {
            cardScreed.classList.add('state-danger');
            iconScreed.textContent = '💥';
            titleScreed.textContent = 'Krytyczne naprężenia!';
            descScreed.textContent = `Przekroczono 55°C. Potężna rozszerzalność [0,012 mm/(m·K)] ścina beton. Gwarantowane pęknięcia i odspojenie posadzek!`;
        }

        // Logika dla Rur PEX/PERT
        cardPex.className = 'status-card'; 
        if (temp <= 40) {
            cardPex.classList.add('state-optimal');
            iconPex.textContent = '🛡️';
            titlePex.textContent = '100% żywotności rury';
            descPex.textContent = 'Idealne środowisko termiczne. Trwałość struktury polimerowej rury jest gwarantowana na minimum 50 lat bezpiecznej pracy.';
        } else if (temp > 40 && temp <= 60) {
            cardPex.classList.add('state-warning');
            iconPex.textContent = '⏱️';
            titlePex.textContent = 'Tolerowane zużycie materiału';
            descPex.textContent = 'System w zakresie Klasy 4. Instalacja działa stabilnie, jednak z perspektywy żywotności nie jest to optymalny reżim dla PE-Xa.';
        } else {
            cardPex.classList.add('state-danger');
            iconPex.textContent = '🔥';
            titlePex.textContent = 'Degradacja struktury PEX';
            descPex.textContent = 'Stała praca powyżej 60°C niszczy sieć wiązań chemicznych! Procesy starzenia przyspieszają gwałtownie. Żywotność skraca się drastycznie.';
        }
        
        const percent = ((temp - slider.min) / (slider.max - slider.min)) * 100;
        valDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    slider.addEventListener('input', function() {
        updateSimulator(this.value);
    });

    updateSimulator(slider.value);
});
</script>



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

.premium-floor-temp-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* Sekcja tekstowa */
.module-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.module-content-section h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--accent);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.module-content-section h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
}

.module-content-section p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

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

/* Sekcja Suwaka (NOWE) */
.module-slider-section {
    padding: 10px 50px 25px 50px;
    background: var(--bg-light);
}

.comfort-slider-container {
    position: relative;
    margin: 50px 0 20px 0;
    padding: 0 10px;
}

.comfort-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

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

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

.comfort-val-display {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.comfort-val-display::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.comfort-status {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

/* Stylizacja Tabeli (Desktop) */
.module-table-section {
    padding: 0 50px 40px 50px;
    background: var(--bg-light);
}

.premium-data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.premium-data-table thead tr {
    background: var(--primary);
    color: #ffffff;
}

.premium-data-table th,
.premium-data-table td {
    padding: 16px 20px;
    text-align: left;
    font-size: 15px;
}

.premium-data-table thead td {
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
    border-bottom: none;
}

.premium-data-table tbody tr {
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--border-color);
}

.premium-data-table tbody tr:last-child {
    border-bottom: none;
}

.premium-data-table tbody tr:hover {
    background: #f0f9ff;
}

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

/* Stylizacja Tabeli i responsywność (Mobile) */
@media (max-width: 768px) {
    .module-content-section { padding: 30px 25px 10px 25px; }
    .module-slider-section { padding: 10px 25px 25px 25px; }
    .module-table-section { padding: 0 25px 30px 25px; }
    
    .premium-data-table {
        background: transparent;
        border: none;
        box-shadow: none;
    }
    
    .premium-data-table thead {
        display: none;
    }
    
    .premium-data-table tbody tr {
        display: block;
        background: #ffffff;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        margin-bottom: 15px;
        padding: 5px 15px;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    }
    
    .premium-data-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 0;
        border-bottom: 1px solid #f1f5f9;
        text-align: right;
    }
    
    .premium-data-table td:last-child {
        border-bottom: none;
    }
    
    .premium-data-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: #64748b;
        font-size: 13px;
        text-align: left;
        padding-right: 15px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
}
</style>

<div class="premium-floor-temp-module" id="app-container-floor-limits">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Zestawienie Standardów Komfortu Cieplnego Posadzek",
        "description": "Interaktywna tabela i wytyczne inżynierskie określające bezpieczne oraz fizjologicznie optymalne temperatury powierzchni podłogi dla różnych typów pomieszczeń (salony, łazienki, strefy brzegowe).",
        "applicationCategory": "ReferenceApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Określenie limitów termicznych zapobiegających syndromowi ciężkich nóg",
          "Zestawienie sugerowanych temperatur zasilania dla specyficznych stref budynku",
          "Optymalizacja mocy cieplnej w odniesieniu do stref brzegowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Normatywne limity temperatur powierzchni podłogi",
        "description": "Zbiór zmiennych projektowych dla ogrzewania płaszczyznowego uwzględniający przeznaczenie pomieszczenia, temperaturę powierzchni oraz maksymalną moc jednostkową.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref stałego przebywania (Pokoje/Sypialnie)",
            "value": "29°C",
            "description": "Maksymalna temperatura powierzchni chroniąca przed negatywnym wpływem na układ krążenia."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla łazienek",
            "value": "35°C",
            "description": "Dopuszczalna wyższa temperatura ze względu na krótkotrwały pobyt i potrzebę odczucia ciepła bosą stopą."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref brzegowych (przeszklenia)",
            "value": "33°C",
            "description": "Podwyższona temperatura kompensująca zwiększone straty cieplne przy oknach i drzwiach tarasowych."
          }
        ]
      }
    ]
    </script>
    
    <div class="module-content-section">
        <div class="module-badge">
            <span>👣</span> Komfort i Zdrowie
        </div>
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi?</h2>
        
        <p>Dopuszczalna temperatura powierzchni podłogi zależy od przeznaczenia pomieszczenia: maksymalna wartość wynosi <strong>29°C</strong> dla stref stałego przebywania ludzi (salony, sypialnie), <strong>33°C</strong> dla stref brzegowych oraz <strong>35°C</strong> dla łazienek. Wartości te są punktem wyjścia do obliczenia, jaka powinna być temperatura wody w rurach.</p>
        
        <h3>Fizjologia a projektowanie instalacji</h3>
        <p>Zjawisko to jest ściśle powiązane z fizjologią człowieka. Przekroczenie <strong>29°C</strong> w miejscach, gdzie przebywamy długo (np. pracując przy biurku), powoduje tzw. "zespół ciężkich nóg" i może negatywnie wpływać na układ krążenia. Aby uzyskać te parametry, inżynier musi uwzględnić <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> przy dużych przeszkleniach, gdzie dopuszcza się wyższą temperaturę, aby zniwelować straty ciepła przez okna. W łazienkach, gdzie bosa stopa ma kontakt z podłogą przez krótki czas, wyższa temperatura (<strong>35°C</strong>) jest wręcz pożądana dla odczucia komfortu.</p>
    </div>

    <div class="module-slider-section">
        <div class="comfort-slider-container">
            <div class="comfort-val-display" id="comfort-val-display">29°C</div>
            <input type="range" min="20" max="40" value="29" class="comfort-slider" id="comfort-temp-slider">
        </div>
        <div class="comfort-status" id="comfort-status-box">Przesuń suwak...</div>
    </div>

    <div class="module-table-section">
        <figure class="wp-block-table">
            <table class="has-fixed-layout premium-data-table">
                <thead>
                    <tr>
                        <td><strong>Rodzaj pomieszczenia</strong></td>
                        <td><strong>Max. temp. powierzchni (tf​)</strong></td>
                        <td><strong>Sugerowana temp. zasilania (tz​)</strong></td>
                        <td><strong>Max. moc cieplna (q)</strong></td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Pokoje dzienne / Sypialnie</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>29°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>32 - 38°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 100 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Łazienki / WC</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>35°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 150 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Strefy brzegowe (okna)</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>33°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 175 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Hale / Magazyny</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>24 - 26°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>30 - 35°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 80 W/m²</strong></td>
                    </tr>
                </tbody>
            </table>
        </figure>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-floor-limits');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Suwaka
    const comfortSlider = document.getElementById('comfort-temp-slider');
    const comfortDisplay = document.getElementById('comfort-val-display');
    const comfortStatus = document.getElementById('comfort-status-box');

    function updateComfort(temp) {
        comfortDisplay.textContent = temp + '°C';
        
        if (temp <= 26) {
            comfortStatus.innerHTML = '❄️ <strong>' + temp + '°C:</strong> Chłodno. Odpowiednia temperatura tylko dla hal i magazynów.';
            comfortStatus.style.borderColor = '#bae6fd';
            comfortStatus.style.color = '#0369a1';
            comfortStatus.style.background = '#f0f9ff';
        } else if (temp <= 29) {
            comfortStatus.innerHTML = '✅ <strong>' + temp + '°C:</strong> Optymalnie. Maksymalny komfort dla salonu i sypialni.';
            comfortStatus.style.borderColor = '#bbf7d0';
            comfortStatus.style.color = '#15803d';
            comfortStatus.style.background = '#f0fdf4';
        } else if (temp <= 33) {
            comfortStatus.innerHTML = '🪟 <strong>' + temp + '°C:</strong> Ciepło. Limit dopuszczalny w strefach brzegowych (przy oknach).';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else if (temp <= 35) {
            comfortStatus.innerHTML = '🛁 <strong>' + temp + '°C:</strong> Bardzo ciepło. Idealna temperatura wyłącznie dla łazienek.';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else {
            comfortStatus.innerHTML = '💥 <strong>' + temp + '°C:</strong> Przegrzanie! Ryzyko wystąpienia "zespołu ciężkich nóg".';
            comfortStatus.style.borderColor = '#fecaca';
            comfortStatus.style.color = '#b91c1c';
            comfortStatus.style.background = '#fef2f2';
        }

        const min = comfortSlider.min;
        const max = comfortSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        comfortDisplay.style.left = `calc(${percent}% + (${16 - percent * 0.32}px))`;
    }

    if (comfortSlider) {
        comfortSlider.addEventListener('input', function() {
            updateComfort(this.value);
        });
        updateComfort(comfortSlider.value);
    }
});
</script>



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

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

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.module-content-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

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

/* Boks o drewnie */
.wood-warning-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.wood-warning-box .icon {
    font-size: 28px;
}

.wood-warning-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

/* Kafelki z zagrożeniami/info */
.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card.neutral {
    background: #f8fafc;
    border: 1px solid var(--border-color);
}

.article-risk-card.neutral p {
    color: #475569;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

/* ===============================
   SEKCJA INTERAKTYWNA
   =============================== */
.module-interactive-section {
    padding: 20px 50px 40px 50px;
    background: var(--bg-light);
}

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

.material-btn {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.material-btn:hover {
    border-color: #bae6fd;
    transform: translateY(-2px);
}

.material-btn.active {
    border-color: var(--accent);
    background: #f0f9ff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.material-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 8px;
}

.material-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
    display: block;
}

.material-visualizer {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.temp-stat {
    text-align: center;
}

.temp-stat-label {
    font-size: 12px;
    color: #64748b;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

.temp-stat-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

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

.visualizer-warning {
    background: #fef2f2;
    border-left: 4px solid var(--danger);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.visualizer-warning.safe {
    background: #f0fdf4;
    border-left-color: var(--success);
    color: #14532d;
}

.visualizer-warning.caution {
    background: #fff7ed;
    border-left-color: var(--warning);
    color: #7c2d12;
}

.warning-icon {
    font-size: 20px;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .module-content-section { padding: 40px 25px 20px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .wood-warning-box { flex-direction: column; text-align: center; }
    .module-interactive-section { padding: 20px 25px 40px 25px; }
    .material-selector { grid-template-columns: 1fr; gap: 10px; }
    .visualizer-top { flex-direction: column; gap: 20px; text-align: center; }
    .temp-stat { width: 100%; border-bottom: 1px solid #f1f5f9; padding-bottom: 15px; }
    .temp-stat:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<div class="premium-material-module" id="app-container-materials">
    
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Limitów Termicznych Okładzin Podłogowych",
        "description": "Narzędzie interaktywne prezentujące maksymalne bezpieczne temperatury zasilania oraz powierzchni dla różnych rodzajów wykończenia podłogi (ceramika, laminat, drewno) w systemach ogrzewania płaszczyznowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Zestawienie limitów temperatury zasilania (tz) dla gresu, paneli i drewna",
          "Ostrzeżenia przed przekroczeniem 27°C dla parkietów warstwowych",
          "Identyfikacja zagrożeń związanych z oporem cieplnym R"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Opór cieplny i tolerancja temperaturowa materiałów wykończeniowych",
        "description": "Zbiór danych inżynierskich klasyfikujących okładziny podłogowe pod kątem współpracy z wodnym ogrzewaniem podłogowym.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Płytki ceramiczne",
            "value": "Max Zasilanie: 50-55°C",
            "description": "Materiał o bardzo niskim oporze cieplnym, idealnie przewodzący ciepło."
          },
          {
            "@type": "PropertyValue",
            "name": "Panele laminowane",
            "value": "Max Zasilanie: 38-40°C",
            "description": "Przegrzanie może prowadzić do uwalniania się lotnych związków organicznych z klejów."
          },
          {
            "@type": "PropertyValue",
            "name": "Drewno (deska warstwowa)",
            "value": "Max Powierzchnia: 27°C",
            "description": "Naturalny izolator (λ ≈ 0,13 - 0,21 W/mK). Przekroczenie limitu grozi rozeschnięciem i utratą gwarancji."
          }
        ]
      }
    ]
    </script>

    <div class="module-content-section">
        <div class="module-badge">
            <span>🧱</span> Właściwości Materiałów
        </div>
        <h2>Jak rodzaj podłogi ogranicza temperaturę zasilania?</h2> 
        
        <p class="text-lead">Każdy materiał wykończeniowy stawia inny opór cieplny, co determinuje górną granicę temperatury wody. O ile dla płytek ceramicznych maksymalna temperatura wody może wynosić nawet <strong>50-55°C</strong>, o tyle dla podłóg drewnianych i laminowanych najczęściej nie może przekroczyć <strong>38-40°C</strong>. Kluczowym parametrem jest tutaj <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R</a>.</p>
        
        <div class="wood-warning-box">
            <span class="icon">🌳</span>
            <p>Drewno jest naturalnym izolatorem (λ ≈ 0,13 - 0,21 W/mK). Jeśli w systemie z drewnem ustawimy zbyt wysoką temperaturę zasilania, dojdzie do gwałtownego przesuszenia materiału. Większość producentów desek warstwowych zastrzega, że temperatura samej powierzchni drewna nie może przekroczyć <strong>27°C</strong>. Przekroczenie tej wartości powoduje pękanie włókien, rozsychanie się spoin i utratę gwarancji.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card neutral">
                <span class="risk-icon">📚</span>
                <p>Dlatego tak ważne jest zrozumienie, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> i bezpieczeństwo całego systemu.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>W przypadku paneli laminowanych, wysoka temperatura może prowadzić do emisji substancji chemicznych zawartych w klejach i żywicach. Optymalnym rozwiązaniem przy "trudnych" okładzinach jest zagęszczenie rozstawu rur, co pozwala na obniżenie temperatury czynnika przy zachowaniu tej samej mocy grzewczej.</p>
            </div>
        </div>
    </div>

    <div class="module-interactive-section">
        
        <div class="material-selector">
            <div class="material-btn active" data-mat="tiles">
                <span class="material-icon">🧊</span>
                <span class="material-name">Płytki / Gres</span>
            </div>
            <div class="material-btn" data-mat="laminate">
                <span class="material-icon">🪵</span>
                <span class="material-name">Panele Laminowane</span>
            </div>
            <div class="material-btn" data-mat="wood">
                <span class="material-icon">🌳</span>
                <span class="material-name">Deska Drewniana</span>
            </div>
        </div>

        <div class="material-visualizer">
            <div class="visualizer-top">
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Zasilanie Wody</span>
                    <span class="temp-stat-value highlight" id="vis-supply-temp">55°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Powierzchnia</span>
                    <span class="temp-stat-value" id="vis-surface-temp">~ 33°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Opór Cieplny (R)</span>
                    <span class="temp-stat-value" id="vis-r-value" style="color: #64748b;">0.02</span>
                </div>
            </div>
            
            <div class="visualizer-warning safe" id="vis-warning-box">
                <span class="warning-icon" id="vis-warning-icon">✅</span>
                <div id="vis-warning-text">
                    <strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Bez problemu znoszą wyższe temperatury zasilania (do 55°C) i optymalnie przekazują energię do pomieszczenia.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-materials');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Baza danych dla materiałów
    const materialData = {
        'tiles': {
            supply: '50-55°C',
            surface: 'Do 35°C',
            rValue: '~ 0.02',
            statusClass: 'safe',
            icon: '✅',
            text: '<strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Znoszą wyższe temperatury zasilania i błyskawicznie przekazują energię do pomieszczenia.'
        },
        'laminate': {
            supply: 'Max 40°C',
            surface: 'Max 28°C',
            rValue: '~ 0.08',
            statusClass: 'caution',
            icon: '⚠️',
            text: '<strong>Zwróć uwagę na temperaturę.</strong> Przekroczenie 40°C na zasilaniu może prowadzić do deformacji paneli i emisji szkodliwych substancji chemicznych zawartych w rdzeniu HDF oraz klejach.'
        },
        'wood': {
            supply: 'Max 38°C',
            surface: 'Max 27°C',
            rValue: '0.13 - 0.20',
            statusClass: 'danger',
            icon: '🔥',
            text: '<strong>Ryzyko uszkodzenia materiału!</strong> Drewno jest naturalnym izolatorem. Wyższa temperatura drastycznie je przesuszy, powodując pękanie włókien, "łódkowanie" desek i bezpowrotną utratę gwarancji producenta.'
        }
    };

    // Logika przełączania
    const buttons = document.querySelectorAll('.material-btn');
    const valSupply = document.getElementById('vis-supply-temp');
    const valSurface = document.getElementById('vis-surface-temp');
    const valR = document.getElementById('vis-r-value');
    const warnBox = document.getElementById('vis-warning-box');
    const warnIcon = document.getElementById('vis-warning-icon');
    const warnText = document.getElementById('vis-warning-text');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana klas aktywnych
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie danych
            const matKey = this.getAttribute('data-mat');
            const data = materialData[matKey];

            // Aktualizacja UI
            valSupply.textContent = data.supply;
            valSurface.textContent = data.surface;
            valR.textContent = data.rValue;
            
            warnBox.className = 'visualizer-warning ' + data.statusClass;
            warnIcon.textContent = data.icon;
            warnText.innerHTML = data.text;
        });
    });
});
</script>



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

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

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.efficiency-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.efficiency-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 25px 0;
}

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

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

/* Wyróżniony boks finansowy */
.cost-impact-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 20px 25px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.cost-impact-icon {
    font-size: 28px;
}

.cost-impact-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

.cost-impact-box strong {
    color: #7c2d12;
    background: rgba(234, 88, 12, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Kafelki urządzeń */
.devices-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.device-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.device-card p {
    margin: 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.7;
}

.device-card a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

.device-card strong {
    color: var(--primary);
}

/* ===============================
   SEKCJA SYMULATORA
   =============================== */
.efficiency-simulator-section {
    padding: 30px 50px 40px 50px;
    background: var(--bg-light);
}

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

.sim-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 40px 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 40px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #10b981 0%, #3b82f6 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

/* Wyniki symulacji */
.sim-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

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

.sim-result-value {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 5px;
}

.sim-result-desc {
    font-size: 13px;
    color: #475569;
    margin: 0;
    font-weight: 600;
}

/* Kolory dynamiczne */
.val-good { color: var(--success); }
.val-warn { color: var(--warning); }
.val-danger { color: var(--danger); }

@media (max-width: 768px) {
    .efficiency-content-section { padding: 30px 25px 10px 25px; }
    .efficiency-simulator-section { padding: 30px 25px 40px 25px; }
    .devices-grid { grid-template-columns: 1fr; }
    .sim-results-grid { grid-template-columns: 1fr; }
    .cost-impact-box { flex-direction: column; text-align: center; }
}
</style>

<div class="premium-efficiency-module" id="app-container-efficiency">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Wpływu Temperatury na Sprawność (COP) i Koszty",
        "description": "Interaktywny symulator inżynierski obliczający spadek współczynnika efektywności (COP) pompy ciepła oraz szacunkowy wzrost kosztów ogrzewania w zależności od wybranej temperatury zasilania podłogówki.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wizualizacja spadku wydajności COP pompy ciepła",
          "Szacowanie rocznych strat finansowych dla domu 150m2",
          "Wskazania trybu kondensacji dla kotłów gazowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Dane kosztowe i efektywnościowe źródeł ciepła",
        "description": "Zestawienie twardych danych określających związek między podniesieniem temperatury zasilania o 5°C a wzrostem kosztów eksploatacji.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Spadek efektywności COP",
            "value": "10-15%",
            "description": "Spadek sprawności pompy ciepła na każde 5°C podniesienia temperatury zasilania."
          },
          {
            "@type": "PropertyValue",
            "name": "Szacunkowy wzrost kosztów (150 m2)",
            "value": "500-800 PLN",
            "description": "Średni roczny wzrost rachunków na każde 5°C przekroczenia optymalnej temperatury (35°C)."
          },
          {
            "@type": "PropertyValue",
            "name": "Granica kondensacji kotła gazowego",
            "value": "< 45°C",
            "description": "Maksymalna temperatura powrotu warunkująca ekonomiczną i sprawną pracę kotła kondensacyjnego."
          }
        ]
      }
    ]
    </script>
    
    <div class="efficiency-content-section">
        <div class="module-badge">
            <span>💰</span> Ekonomia Eksploatacji
        </div>
        <h2>Jak ustawienie temperatury wpływa na sprawność źródła ciepła?</h2>
        
        <p class="efficiency-lead-text">Wybór temperatury zasilania ma bezpośrednie przełożenie na rachunki za ogrzewanie, zwłaszcza gdy sercem układu jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>. Urządzenia te osiągają najwyższy współczynnik COP (efektywność), gdy różnica między temperaturą dolnego źródła a temperaturą zasilania jest jak najmniejsza.</p>
        
        <div class="cost-impact-box">
            <span class="cost-impact-icon">📉</span>
            <p>Podniesienie temperatury zasilania o każde <strong>5°C</strong> (np. z <strong>35°C</strong> na <strong>40°C</strong>) obniża sprawność pompy ciepła o około <strong>10-15%</strong>. W skali roku dla domu 150 m2 może to oznaczać wzrost kosztów eksploatacji o <strong>500-800 PLN</strong>.</p>
        </div>

        <div class="devices-grid">
            <div class="device-card">
                <p>Z kolei <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> pracuje najefektywniej w trybie kondensacji, który zachodzi najpełniej, gdy temperatura powrotu wody z podłogówki jest niska (poniżej <strong>45°C</strong>).</p>
            </div>
            <div class="device-card" style="background: #f8fafc;">
                <p>Aby bezpiecznie połączyć kocioł wysokotemperaturowy z podłogówką, niezbędny jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podlogowym</a>. Pełni on funkcję strażnika – w przypadku awarii automatyki kotła, zawór termostatyczny mechanicznie odcina dopływ zbyt gorącej wody, chroniąc instalację przed zniszczeniem.</p>
            </div>
        </div>
    </div>

    <div class="efficiency-simulator-section">
        <h3 class="sim-title">Symulator Kosztów i Sprawności</h3>
        <p class="sim-subtitle">Zobacz na żywo, ile kosztuje Cię podniesienie temperatury w sterowniku.</p>
        
        <div class="slider-container">
            <div class="slider-value-display" id="eff-val-display">35°C</div>
            <input type="range" min="30" max="55" value="35" step="1" class="temp-slider" id="eff-temp-slider">
        </div>

        <div class="sim-results-grid">
            <div class="sim-result-box" id="eff-box-cost">
                <span class="sim-result-label">Pompa Ciepła: Straty roczne</span>
                <span class="sim-result-value val-good" id="eff-cost-val">+0 PLN</span>
                <p class="sim-result-desc" id="eff-cost-desc">Optymalny COP. Maksymalna oszczędność.</p>
            </div>
            
            <div class="sim-result-box" id="eff-box-gas">
                <span class="sim-result-label">Kocioł Gazowy (Kondensacja)</span>
                <span class="sim-result-value val-good" id="eff-gas-val">100%</span>
                <p class="sim-result-desc" id="eff-gas-desc">Pełne odzyskiwanie ciepła ze spalin.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-efficiency');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const effSlider = document.getElementById('eff-temp-slider');
    const effDisplay = document.getElementById('eff-val-display');
    
    const costVal = document.getElementById('eff-cost-val');
    const costDesc = document.getElementById('eff-cost-desc');
    const boxCost = document.getElementById('eff-box-cost');
    
    const gasVal = document.getElementById('eff-gas-val');
    const gasDesc = document.getElementById('eff-gas-desc');
    const boxGas = document.getElementById('eff-box-gas');

    function updateEfficiencyCalc(temp) {
        effDisplay.textContent = temp + '°C';
        
        // Zmienne bazowe z tekstu: +5C to +650 PLN (średnia z 500-800 PLN), czyli ok. 130 PLN na 1C powyżej 35C.
        // Spadek COP: 12.5% (średnia z 10-15%) na 5C, czyli 2.5% na 1C.
        const baseTemp = 35;
        let excessTemp = Math.max(0, temp - baseTemp);
        
        let extraCost = excessTemp * 130;
        let copDrop = excessTemp * 2.5;

        // Aktualizacja Pompy Ciepła
        if (temp <= 35) {
            costVal.textContent = "+0 PLN";
            costVal.className = "sim-result-value val-good";
            boxCost.style.borderColor = "var(--success)";
            costDesc.innerHTML = "Optymalny COP. Praca najbardziej ekonomiczna.";
        } else if (temp <= 45) {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-warn";
            boxCost.style.borderColor = "var(--warning)";
            costDesc.innerHTML = "Spadek efektywności COP o ok. <strong>" + copDrop.toFixed(1) + "%</strong>.";
        } else {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-danger";
            boxCost.style.borderColor = "var(--danger)";
            costDesc.innerHTML = "Spadek COP o <strong>" + copDrop.toFixed(1) + "%</strong>. Sprężarka przeciążona!";
        }

        // Aktualizacja Kotła Gazowego (Zależność od temperatury zasilania; powrót jest ok 5-7C niższy)
        // Jeśli Zasilanie to 45C, powrót to ~38-40C (Idealnie kondensuje). 
        // Jeśli Zasilanie > 50C, powrót > 45C (Granica kondensacji).
        if (temp <= 45) {
            gasVal.textContent = "IDEALNA";
            gasVal.className = "sim-result-value val-good";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Powrót poniżej 45°C. Kocioł kondensuje z maksymalną sprawnością.";
        } else if (temp <= 50) {
            gasVal.textContent = "CZĘŚCIOWA";
            gasVal.className = "sim-result-value val-warn";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Woda powrotna blisko granicy 45°C. Kondensacja słabnie.";
        } else {
            gasVal.textContent = "BRAK";
            gasVal.className = "sim-result-value val-danger";
            boxGas.style.borderColor = "var(--danger)";
            gasDesc.innerHTML = "Powrót powyżej 45°C! Zwykłe spalanie, kocioł traci najwyższą sprawność.";
        }

        // Pozycjonowanie dymka nad suwakiem
        const min = effSlider.min;
        const max = effSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        effDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    if (effSlider) {
        effSlider.addEventListener('input', function() {
            updateEfficiencyCalc(this.value);
        });
        
        // Timeout dla poprawnego załadowania szerokości w DOM
        setTimeout(() => {
            updateEfficiencyCalc(effSlider.value);
        }, 50);
    }
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! Maksymalna temperatura zasilania podłogówki nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne inżynierskie: Bezpieczne granice temperatur w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie normatywnych i praktycznych limitów temperatury wody grzewczej dla ochrony jastrychu betonowego i okładzin wrażliwych (drewno, winyl).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Bezpiecznej Temperatury Zasilania",
    "description": "Narzędzie online symulujące optymalną temperaturę wody w pętli grzewczej na podstawie oporu cieplnego materiału wykończeniowego oraz obciążenia cieplnego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o fundamentach hydrauliki</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! <strong>Maksymalna temperatura zasilania podłogówki</strong> nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Błędem jest dążenie do ekstremalnie wysokich temperatur w instalacji płaszczyznowej. Maksymalna temperatura zasilania podłogówki nie może przekraczać wytycznych normy (55°C), a z punktu widzenia efektywności pomp ciepła powinna oscylować w rejonie 30-35°C.</p>
        </div>
    </noscript>
</div>

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



<style>
:root {
    --ozc-primary: #0f172a;
    --ozc-blueprint: #1e293b;
    --ozc-accent: #0ea5e9;
    --ozc-accent-glow: rgba(14, 165, 233, 0.4);
    --ozc-danger: #ef4444;
    --ozc-success: #10b981;
    --ozc-text-light: #f8fafc;
    --ozc-text-muted: #94a3b8;
}

.ozc-premium-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15);
    background: #ffffff;
    border: 1px solid #e2e8f0;
}

/* ===============================
   Część Tekstowa (Rozbita Ściana Tekstu)
   =============================== */
.ozc-text-section {
    padding: 45px 50px 35px 50px;
}

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

.ozc-text-section h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--ozc-primary);
    margin: 0 0 25px 0;
    line-height: 1.3;
}

.ozc-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #1e293b;
    background: #f0f9ff;
    padding: 20px 25px;
    border-radius: 16px;
    border-left: 4px solid var(--ozc-accent);
    margin: 0 0 30px 0;
}

.ozc-text-section a {
    color: var(--ozc-accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px solid rgba(14, 165, 233, 0.3);
    transition: all 0.3s ease;
}

.ozc-text-section a:hover {
    background: rgba(14, 165, 233, 0.1);
    border-bottom-color: var(--ozc-accent);
}

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

/* Interaktywne Zakładki (Tabs) */
.ozc-interactive-tabs {
    margin-bottom: 10px;
}

.ozc-tab-nav {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ozc-tab-btn {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ozc-tab-btn:hover {
    border-color: #bae6fd;
    color: var(--ozc-accent);
}

.ozc-tab-btn.active {
    background: var(--ozc-primary);
    border-color: var(--ozc-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.ozc-tab-panel {
    display: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 25px;
    border-radius: 16px;
    animation: ozc-fade-in 0.4s ease;
}

.ozc-tab-panel.active {
    display: block;
}

.ozc-tab-panel p {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

/* ===============================
   Część Inżynierska (Ciemny Blueprint)
   =============================== */
.ozc-engineering-section {
    background-color: var(--ozc-blueprint);
    background-image: 
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 20px 20px;
    padding: 40px 50px;
    color: var(--ozc-text-light);
    position: relative;
    border-top: 4px solid var(--ozc-accent);
}

.ozc-eng-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
}

.ozc-eng-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ozc-eng-subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: var(--ozc-text-muted);
}

.ozc-slider-wrap {
    margin-bottom: 35px;
    background: rgba(0,0,0,0.2);
    padding: 20px 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.05);
}

.ozc-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
}

.ozc-slider-val {
    color: var(--ozc-accent);
    font-size: 16px;
    font-family: monospace;
    font-weight: 900;
}

.ozc-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
    outline: none;
}

.ozc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--ozc-blueprint);
    border: 3px solid var(--ozc-accent);
    cursor: pointer;
    box-shadow: 0 0 15px var(--ozc-accent-glow);
    transition: transform 0.1s;
}

.ozc-slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}

/* Kafelki porównawcze */
.ozc-comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ozc-comp-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

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

.ozc-comp-card.amateur::before { background: var(--ozc-danger); }
.ozc-comp-card.pro::before { background: var(--ozc-success); }

.ozc-comp-header {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ozc-comp-value {
    font-family: 'Courier New', monospace;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
    display: block;
}

.ozc-comp-sub {
    font-size: 13px;
    color: var(--ozc-text-muted);
}

.ozc-roi-box {
    margin-top: 20px;
    background: rgba(16, 185, 129, 0.1);
    border: 1px dashed rgba(16, 185, 129, 0.3);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ozc-roi-text {
    font-size: 14px;
    color: #a7f3d0;
    font-weight: 600;
}

.ozc-roi-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--ozc-success);
}

@media (max-width: 768px) {
    .ozc-text-section { padding: 35px 25px; }
    .ozc-engineering-section { padding: 35px 25px; }
    .ozc-comparison-grid { grid-template-columns: 1fr; }
    .ozc-eng-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ozc-roi-box { flex-direction: column; text-align: center; gap: 10px; }
    .ozc-tab-nav { flex-direction: column; }
    .ozc-tab-btn { width: 100%; text-align: left; }
}
</style>

<div class="ozc-premium-module" id="app-ozc-roi">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Zwrotu z Inwestycji w Projekt OZC",
        "description": "Narzędzie inżynierskie udowadniające finansową zasadność wykonania profesjonalnego projektu OZC i doboru rozstawu rur podłogówki (10 cm vs 15 cm) względem montażu metodą 'na oko'.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Kalkulacja strat cieplnych wynikających z bezwładności i złego rozstawu rur",
          "Porównanie kosztów eksploatacji (Na oko vs Projekt Inżynierski)",
          "Obliczanie czasu zwrotu (ROI) za dokumentację projektową"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry projektowe OZC i bezwładność cieplna",
        "description": "Dane wejściowe do oceny skuteczności sterowania temperaturą zasilania w systemach płaszczyznowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt dokumentacji projektowej",
            "value": "500-1500 PLN",
            "description": "Jednorazowy koszt wykonania profesjonalnego projektu ogrzewania podłogowego."
          },
          {
            "@type": "PropertyValue",
            "name": "Ustawienie temperatury",
            "value": "Stałe vs Zmienne (krzywa grzewcza)",
            "description": "Różnica między ręcznym ustawianiem 45°C na kotle a sterowaniem na podstawie OZC."
          },
          {
            "@type": "PropertyValue",
            "name": "Rozstaw rur",
            "value": "10 cm lub 15 cm",
            "description": "Zagęszczenie ustalane na podstawie strat ciepła wyliczanych indywidualnie dla pomieszczenia."
          }
        ]
      }
    ]
    </script>

    <div class="ozc-text-section">
        <div class="ozc-badge">
            <span>📐</span> Inżynieria w Praktyce
        </div>
        <h2>Dlaczego profesjonalny projekt jest kluczem do optymalnej temperatury?</h2>
        
        <p class="ozc-lead-text">Ustawienie temperatury zasilania "na oko" (np. stałe <strong>45°C</strong> na kotle) jest najczęstszym błędem inwestorów. Poprawne parametry można wyznaczyć jedynie poprzez <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, które precyzyjnie określa straty energii dla każdego pomieszczenia.</p>
        
        <div class="ozc-interactive-tabs">
            <div class="ozc-tab-nav">
                <button class="ozc-tab-btn active" data-target="ozc-tab-1">📏 Rozstaw rur</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-2">🧱 Bezwładność cieplna</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-3">💰 Koszty i zwrot</button>
            </div>
            
            <div class="ozc-tab-content">
                <div class="ozc-tab-panel active" id="ozc-tab-1">
                    <p>Dzięki obliczeniom wiemy, czy w danym pokoju wystarczy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowego/">rozstaw rur co 15 cm</a>, czy może ze względu na duże straty i niską temperaturę zasilania (np. z pompy ciepła), musimy zagęścić rury do <strong>10 cm</strong>.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-2">
                    <p>Projektant bierze pod uwagę również <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> jastrychu. Zbyt wysoka temperatura zasilania w połączeniu z grubą wylewką sprawia, że systemem nie da się sterować – po osiągnięciu temperatury w pokoju, podłoga jeszcze przez wiele godzin oddaje nadmiar ciepła, prowadząc do przegrzania pomieszczeń.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-3">
                    <p>Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>, warto pamiętać, że koszt dokumentacji (ok. <strong>500-1500 PLN</strong>) zwraca się zazwyczaj już po pierwszym sezonie grzewczym dzięki optymalizacji temperatury zasilania.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="ozc-engineering-section">
        <div class="ozc-eng-header">
            <div>
                <h3 class="ozc-eng-title"><span>⚙️</span> Kalkulator Zwrotu z Projektu OZC</h3>
                <p class="ozc-eng-subtitle">Symulacja kosztów eksploatacji w pierwszym sezonie grzewczym.</p>
            </div>
        </div>

        <div class="ozc-slider-wrap">
            <div class="ozc-slider-label">
                <span>Powierzchnia do ogrzania:</span>
                <span class="ozc-slider-val" id="ozc-area-val">150 m²</span>
            </div>
            <input type="range" min="80" max="300" step="10" value="150" class="ozc-slider" id="ozc-area-slider">
        </div>

        <div class="ozc-comparison-grid">
            <div class="ozc-comp-card amateur">
                <div class="ozc-comp-header"><span style="font-size:16px">❌</span> Montaż "Na Oko"</div>
                <span class="ozc-comp-value" id="cost-amateur">4 800 PLN</span>
                <span class="ozc-comp-sub">Przewymiarowane rachunki, przegrzewanie i brak optymalizacji pracy pompy.</span>
            </div>
            
            <div class="ozc-comp-card pro">
                <div class="ozc-comp-header"><span style="font-size:16px">✅</span> Profesjonalny Projekt</div>
                <span class="ozc-comp-value" style="color:var(--ozc-success)" id="cost-pro">3 950 PLN</span>
                <span class="ozc-comp-sub">Właściwy rozstaw rur, bezwładność pod kontrolą i minimalna temp. zasilania.</span>
            </div>
        </div>

        <div class="ozc-roi-box">
            <div class="ozc-roi-text">Szacowane oszczędności po pierwszym sezonie:</div>
            <div class="ozc-roi-result" id="ozc-savings">850 PLN</div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-ozc-roi');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Kalkulator został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek (Tabs)
    const tabBtns = document.querySelectorAll('.ozc-tab-btn');
    const tabPanels = document.querySelectorAll('.ozc-tab-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich
            tabBtns.forEach(b => b.classList.remove('active'));
            tabPanels.forEach(p => p.classList.remove('active'));
            
            // Dodaj do klikniętego
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Logika Kalkulatora ROI
    const slider = document.getElementById('ozc-area-slider');
    const displayArea = document.getElementById('ozc-area-val');
    const displayAmateur = document.getElementById('cost-amateur');
    const displayPro = document.getElementById('cost-pro');
    const displaySavings = document.getElementById('ozc-savings');

    // Założenia ekonomiczne
    const costPerSqmPro = 26.50; // PLN / m2 / rok
    const inefficiencyPenalty = 1.21; // 21% wyższe rachunki na "oko"

    function formatCurrency(num) {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " PLN";
    }

    function calculateROI(area) {
        displayArea.textContent = area + ' m²';

        const proCost = area * costPerSqmPro;
        const amateurCost = proCost * inefficiencyPenalty;
        const savings = amateurCost - proCost;

        displayPro.textContent = formatCurrency(proCost);
        displayAmateur.textContent = formatCurrency(amateurCost);
        
        displaySavings.innerHTML = `+ ${formatCurrency(savings)} <span style="font-size:13px; font-weight:600; color:#6ee7b7">(Projekt zwraca się w 1 rok)</span>`;
    }

    if (slider) {
        slider.addEventListener('input', function() {
            calculateROI(this.value);
        });
        calculateROI(slider.value);
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-wood: #b45309; /* Kolor drewna */
    --cs-tiles: #0891b2; /* Kolor gresu/wody */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

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

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

.cs-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

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

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

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--cs-accent);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.cs-author-box a:hover {
    color: #1e3a8a;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--cs-border);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    background: #ffffff;
}

/* Stan nieaktywny lekko przygaszony */
.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

/* Kolorystyka i aktywacja */
.cs-split-card.wood.active {
    border-color: var(--cs-wood);
    background: #fffbeb;
    box-shadow: 0 10px 25px rgba(180, 83, 9, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.tiles.active {
    border-color: var(--cs-tiles);
    background: #ecfeff;
    box-shadow: 0 10px 25px rgba(8, 145, 178, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.cs-card-icon {
    font-size: 28px;
}

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

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 13px;
    font-weight: 700;
    display: none; /* Ukryte do momentu kliknięcia */
}

.cs-split-card.wood .cs-card-solution { color: #92400e; }
.cs-split-card.tiles .cs-card-solution { color: #155e75; }

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<div class="case-study-module" id="app-case-study">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Panel Studium Przypadku: Optymalizacja Podłogówki",
        "description": "Interaktywny moduł prezentujący proces decyzyjny i wyzwania inżynierskie przy projektowaniu ogrzewania dla różnych rodzajów posadzek w jednym budynku.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "url": "https://projekt-ogrzewania.pl/author/admin3399/",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Analiza parametrów zasilania dla parkietu dębowego",
          "Analiza parametrów zasilania dla gresu",
          "Wizualizacja dylematu projektowego (mieszane wykończenie)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry Projektowe OZC - Dom Zielonki 2026",
        "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji zasilania ogrzewania podłogowego.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Data projektu",
            "value": "Luty 2026"
          },
          {
            "@type": "PropertyValue",
            "name": "Powierzchnia budynku",
            "value": "144 m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (OZC)",
            "value": "40 W/m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Lokalizacja",
            "value": "Zielonki (k. Krakowa)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Projekt w praktyce</div>
        <h2>Optymalizacja dla mieszanego wykończenia</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Termin</span>
                <span class="cs-stat-value">Luty 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Zielonki</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Powierzchnia</span>
                <span class="cs-stat-value">144 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Standard (OZC)</span>
                <span class="cs-stat-value">40 W/m²</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Podczas finalizacji projektu instalacji dla nowo budowanego domu Pana Marka, zderzyliśmy się z klasycznym, ale zawsze wymagającym dylematem. Kluczowym wyzwaniem była optymalizacja parametrów pracy układu dla dwóch skrajnie różnych stref cieplnych w obrębie jednego źródła.</p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p>Założenia hydrauliczne opracował główny projektant <a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>. Wymagało to znalezienia precyzyjnego balansu pomiędzy dwiema okładzinami:</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card wood active" id="cs-btn-wood">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🌳</span>
                    <h3 class="cs-card-title">Salon: Parkiet Dębowy</h3>
                </div>
                <p class="cs-card-desc">Drewno to izolator. Ogranicza oddawanie ciepła do pomieszczenia. Zbyt wysoka temperatura zasilania (>38°C) spowoduje jednak przesuszenie i pękanie drogich desek.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zagęszczenie rozstawu rur do 10 cm, co pozwoliło utrzymać niską temperaturę zasilania przy jednoczesnym dostarczeniu 40 W/m² mocy.
                </div>
            </div>

            <div class="cs-split-card tiles" id="cs-btn-tiles">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🧊</span>
                    <h3 class="cs-card-title">Łazienka: Gres Szkliwiony</h3>
                </div>
                <p class="cs-card-desc">Gres idealnie przewodzi ciepło. Wymaga wyższej temperatury powierzchni (odczucie "ciepłej podłogi" boso), ale łazienka ma najczęściej największe straty cieplne.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zastosowanie osobnej pętli ze standardowym rozstawem, ale dodanie grzejnika drabinkowego, aby nie podnosić temperatury zasilania dla całego domu.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione</h3>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardWood = document.getElementById('cs-btn-wood');
    const cardTiles = document.getElementById('cs-btn-tiles');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardWood && cardTiles) {
        cardWood.addEventListener('click', () => toggleCards(cardWood, cardTiles));
        cardTiles.addEventListener('click', () => toggleCards(cardTiles, cardWood));
    }
});
</script>



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

.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

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

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

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

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

.config-side {
    padding: 40px;
    background: #ffffff;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<div class="calc-intro">
    <h2>Kalkulator wymaganej temperatury zasilania</h2>
    <p>Oto uproszczony schemat obliczeniowy algorytmu, który stosuję w moich projektach, aby wyznaczyć optymalne <strong>t_z</strong>. Wprowadź powierzchnię, realne zapotrzebowanie z OZC oraz rodzaj wykończenia, aby sprawdzić, czy Twój układ zmieści się w normach.</p>
</div>

<div class="screed-calc" id="tz2-calc-app">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Kalkulator wymaganej temperatury zasilania ogrzewania podłogowego",
        "description": "Narzędzie inżynierskie wyliczające niezbędną temperaturę wody (t_z) na podstawie OZC, powierzchni pomieszczenia oraz oporu cieplnego zastosowanej okładziny.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (Q)",
            "value": "Straty ciepła w Watach (OZC)"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc jednostkowa (q)",
            "value": "Q / Powierzchnia [W/m²]"
          },
          {
            "@type": "PropertyValue",
            "name": "Opór okładziny (R)",
            "value": "Gres (0.02), Panele (0.08), Drewno (0.15) [m²K/W]"
          },
          {
            "@type": "PropertyValue",
            "name": "Wyznaczenie zasilania (t_z)",
            "value": "t_powietrza + ΔT_średnie + (0,5 × σ)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Temperatury Zasilania (Algorytm Inżynierski)",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "license": "https://projekt-ogrzewania.pl/",
        "description": "Profesjonalny kalkulator weryfikujący czy przy danym OZC i wybranej okładzinie nie dojdzie do przegrzania jastrychu lub przekroczenia norm komfortu fizjologicznego.",
        "featureList": [
          "Wyliczenie temperatury zasilania (t_z)",
          "Estymacja temperatury powierzchni podłogi (t_f)",
          "Ostrzeżenia przed przekroczeniem normy PN-EN 1264"
        ]
      }
    ]
    </script>

    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Straty cieplne pomieszczenia (OZC)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="tz2-v-area">30</span> m²</span></div>
                <input type="range" id="tz2-area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Zapotrzebowanie na moc (Q)</label><span class="val-badge"><span id="tz2-v-power">1200</span> W</span></div>
                <input type="range" id="tz2-power" min="200" max="6000" step="50" value="1200">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Krok 1 (OZC): Ilość ciepła potrzebna do ogrzania pokoju.</div>
            </div>

            <div class="input-wrap">
                <div class="input-label-row"><label>Oczekiwana temp. w pokoju</label><span class="val-badge"><span id="tz2-v-room">20</span> °C</span></div>
                <input type="range" id="tz2-roomTemp" min="18" max="25" step="1" value="20">
            </div>

            <span class="section-title">2. Opór cieplny okładziny (R)</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="tz2-btn-gres">Płytki / Gres<span style="font-size:10px; font-weight:400">R ≈ 0.02 m²K/W</span></div>
                <div class="type-btn active" id="tz2-btn-panel">Panele laminowane<span style="font-size:10px; font-weight:400">R ≈ 0.08 m²K/W</span></div>
                <div class="type-btn" id="tz2-btn-wood">Deska warstwowa<span style="font-size:10px; font-weight:400">R ≈ 0.15 m²K/W</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="tz2-mainBox" class="main-score-box">
                <span class="score-label">Wymagana temperatura zasilania (t_z)</span>
                <span class="score-num" id="tz2-resTz">--</span>
                <span class="score-label">°C na wejściu do pętli</span>
                <div id="tz2-risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Moc jednostkowa (q):</span><strong id="tz2-resQ">--</strong></div>
                <div class="tech-item"><span>Różnica temp. (ΔT_średnie):</span><strong id="tz2-resDelta">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Estymowana temp. powierzchni podłogi:</span><strong id="tz2-resTf" style="color:#60a5fa">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Algorytm:</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ). Obliczenia zakładają standardowy spadek temperatury czynnika na pętli grzewczej (σ) wynoszący 5 Kelwinów.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Nie ryzykuj błędów obliczeniowych</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator to świetny wstęp do fizyki układu. Kompletny projekt instalacji musi jednak uwzględniać opory hydrauliczne, przepływy masowe i rozstaw rur, by instalacja grzała bez awarii.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                ZAAWANSOWANY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT OZC + PODŁOGÓWKA
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Kalkulator wymaganej temperatury zasilania – Algorytm</h3>
            <p style="font-size: 14px; color: #475569; line-height: 1.6;">
                Oto uproszczony schemat obliczeniowy, który stosuję w moich projektach, aby wyznaczyć optymalne t_z:<br>
                <strong>Krok 1 (OZC):</strong> Wyznaczamy zapotrzebowanie na moc (Q) w Watach. Przykład: Salon 30 m², Q = 1200 W.<br>
                <strong>Krok 2 (Moc jednostkowa q):</strong> Dzielimy moc przez powierzchnię. 1200 W / 30 m² = 40 W/m².<br>
                <strong>Krok 3 (Opór okładziny R):</strong> Przyjmujemy opór dla wybranego materiału (np. gres R = 0,02, panel R = 0,08).<br>
                <strong>Krok 4 (Obliczenie różnicy temperatur ΔT):</strong> Korzystamy z logarytmicznej różnicy temperatur między wodą a powietrzem.<br>
                <strong>Krok 5 (Wyznaczenie zasilania):</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ), gdzie σ to spadek temperatury na pętli (zazwyczaj 5K).<br><br>
                <em>Przykład praktyczny:</em> Dla nowoczesnego domu pasywnego (q = 20 W/m²) przy gresie, temperatura zasilania rzadko przekracza 28-30°C, co czyni system niemal "samoregulującym się".
            </p>
        </div>
    </noscript>
</div>

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

    var floorResistance = 0.08; 
    
    function updateCalc() {
        var areaEl = document.getElementById('tz2-area');
        var powerEl = document.getElementById('tz2-power');
        var roomTempEl = document.getElementById('tz2-roomTemp');
        
        if (!areaEl) return;
        if (!powerEl) return;
        if (!roomTempEl) return;

        var area = parseFloat(areaEl.value);
        var power = parseFloat(powerEl.value);
        var t_i = parseFloat(roomTempEl.value);
        
        document.getElementById('tz2-v-area').innerText = area;
        document.getElementById('tz2-v-power').innerText = power;
        document.getElementById('tz2-v-room').innerText = t_i;

        var q = power / area;
        
        var R_total = 0.093 + 0.03 + floorResistance;
        var delta_T_avg = q * R_total;
        
        var t_m = t_i + delta_T_avg;
        var sigma = 5; 
        var t_z = t_m + (0.5 * sigma);

        var t_f = t_i + (q * 0.093);

        document.getElementById('tz2-resQ').innerText = q.toFixed(1) + ' W/m²';
        document.getElementById('tz2-resDelta').innerText = delta_T_avg.toFixed(1) + ' K';
        document.getElementById('tz2-resTz').innerText = t_z.toFixed(1);
        document.getElementById('tz2-resTf').innerText = t_f.toFixed(1) + ' °C';

        var mBox = document.getElementById('tz2-mainBox');
        var rMsg = document.getElementById('tz2-risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (t_z > 55) { 
            warnings.push('❌ <strong>Krytyczny błąd:</strong> Temperatura zasilania przekracza 55°C. System niezgodny z normą PN-EN 1264. Grozi pęknięciem wylewki!'); 
            boxColor = 'var(--danger)'; 
        } else if (floorResistance === 0.15) {
            if (t_z > 38) {
                warnings.push('⚠️ <strong>Zagrożenie dla drewna:</strong> Temperatura rzędu ' + t_z.toFixed(1) + '°C doprowadzi do rozschnięcia się parkietu. Producent odrzuci gwarancję.'); 
                boxColor = 'var(--warning)';
            }
        }

        if (t_f > 29) {
            if (t_i < 24) {
                warnings.push('🔥 <strong>Przegrzana podłoga:</strong> Temperatura powierzchni przekroczy fizjologiczną granicę 29°C. Dyskomfort gwarantowany.');
                if(boxColor !== 'var(--danger)') {
                    boxColor = 'var(--warning)';
                }
            }
        }

        if (q <= 30) {
            if (t_z <= 32) {
                warnings.push('🌿 <strong>System optymalny:</strong> Parametry typowe dla domu energooszczędnego/pasywnego. Pompa ciepła osiągnie tu maksymalne COP.');
            }
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
            
            if(boxColor === 'var(--success)') {
                rMsg.style.background = '#f0fdf4';
                rMsg.style.color = '#15803d';
                rMsg.style.borderColor = '#bbf7d0';
            } else if(boxColor === 'var(--warning)') {
                rMsg.style.background = '#fff7ed';
                rMsg.style.color = '#c2410c';
                rMsg.style.borderColor = '#fed7aa';
            } else {
                rMsg.style.background = '#fee2e2';
                rMsg.style.color = '#b91c1c';
                rMsg.style.borderColor = '#fecaca';
            }
        } else {
            rMsg.style.display = 'none';
        }
        
        mBox.style.borderColor = boxColor;
    }

    var floorOptions = {
        'tz2-btn-gres': 0.02,
        'tz2-btn-panel': 0.08,
        'tz2-btn-wood': 0.15
    };

    var btnKeys = Object.keys(floorOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    floorResistance = floorOptions[btnId];
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    var sliders = ['tz2-area', 'tz2-power', 'tz2-roomTemp'];
    sliders.forEach(function(id) {
        var el = document.getElementById(id);
        if(el) el.addEventListener('input', updateCalc);
    });

    updateCalc();
});
</script>



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

.screed-thickness-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    overflow: hidden;
    color: var(--st-primary);
}

/* 1. SEKCJA HEADER & LEAD */
.st-header-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(135deg, #ffffff 0%, var(--st-bg-light) 100%);
}

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

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

.st-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

.st-lead a:hover {
    color: #0369a1;
}

/* 2. SEKCJA SYMULATORA (Suwak Mierniczy) */
.st-interactive-section {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.st-ruler-container {
    position: relative;
    padding: 40px 20px 20px 20px;
    background: var(--st-bg-light);
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    margin-top: 10px;
}

.st-ruler-title {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.st-slider-val {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 20px;
    font-weight: 900;
    color: var(--st-accent);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

.st-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #fecaca 0%, #fecaca 25%, #bbf7d0 25%, #bbf7d0 60%, #fed7aa 60%, #fed7aa 100%);
    outline: none;
    margin-top: 25px;
}

.st-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #ffffff;
    border: 4px solid var(--st-primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: transform 0.1s;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 2px, #cbd5e1 2px, #cbd5e1 4px);
    background-size: 8px 100%;
    background-position: center;
}

/* 3. KARTY STANU WYLEWKI */
.st-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

.st-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid #e2e8f0;
    background: #ffffff;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0.6; 
    transform: scale(0.98);
}

.st-card.active {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.1);
}

.st-card[data-type="thin"].active { border-color: var(--st-danger); }
.st-card[data-type="standard"].active { border-color: var(--st-success); }
.st-card[data-type="thick"].active { border-color: var(--st-warning); }

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

.st-cross-section {
    height: 40px;
    background: #f1f5f9;
    border-radius: 8px;
    margin-bottom: 15px;
    position: relative;
    border: 1px solid #cbd5e1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}

.st-pipe {
    width: 16px;
    height: 16px;
    background: #ef4444;
    border-radius: 50%;
    border: 2px solid #ffffff;
    margin-bottom: 4px;
    z-index: 2;
}

.st-concrete-fill {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 5px, #cbd5e1 5px, #cbd5e1 10px);
    z-index: 1;
}

.st-card[data-type="thin"] .st-concrete-fill { height: 50%; }
.st-card[data-type="standard"] .st-concrete-fill { height: 75%; }
.st-card[data-type="thick"] .st-concrete-fill { height: 100%; }

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

.st-card strong {
    color: var(--st-primary);
}

.st-card[data-type="thin"].active p { color: #7f1d1d; }
.st-card[data-type="thin"].active strong { color: #991b1b; }
.st-card[data-type="standard"].active p { color: #14532d; }
.st-card[data-type="standard"].active strong { color: #166534; }
.st-card[data-type="thick"].active p { color: #7c2d12; }
.st-card[data-type="thick"].active strong { color: #9a3412; }

/* 4. SEKCJA OUTRO */
.st-outro-section {
    padding: 0 50px 40px 50px;
}

.st-pro-tip {
    background: #f0f9ff;
    border-left: 4px solid var(--st-accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
}

.st-pro-tip-icon {
    font-size: 28px;
}

.st-pro-tip p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .st-header-section { padding: 30px 25px 15px 25px; }
    .st-interactive-section { padding: 15px 25px; }
    .st-cards-grid { grid-template-columns: 1fr; padding: 25px; gap: 15px; }
    .st-outro-section { padding: 0 25px 30px 25px; }
    .st-pro-tip { flex-direction: column; text-align: center; }
}
</style>

<div class="screed-thickness-module" id="app-screed-thickness">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Wpływu Grubości Jastrychu na Temperaturę Zasilania",
        "description": "Interaktywne narzędzie inżynierskie wizualizujące zależność między grubością wylewki betonowej a oporem cieplnym i wymaganą temperaturą zasilania w systemach ogrzewania podłogowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Obrazowanie ryzyka pęknięć dla wylewek poniżej 3,5 cm",
          "Wyznaczanie optymalnej grubości betonu nad rurą (4,5 - 5 cm)",
          "Estymacja konieczności podniesienia temperatury zasilania o 2-3°C dla grubych wylewek (8 cm)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Właściwości termiczne i mechaniczne wylewki betonowej",
        "description": "Zestawienie twardych danych inżynierskich określających zachowanie jastrychu w zależności od jego grubości oraz temperatury zasilania do 55°C.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Grubość standardowa",
            "value": "4,5 - 5 cm",
            "description": "Optymalna masa termiczna i bezpieczny rozkład naprężeń dla instalacji."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość ryzykowna (zbyt cienka)",
            "value": "< 3,5 cm",
            "description": "Wysokie ryzyko pękania pod wpływem naprężeń termicznych, nawet przy normatywnych 55°C."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość podwyższona",
            "value": "8 cm",
            "description": "Zwiększony opór cieplny wymuszający podniesienie temperatury zasilania o 2-3°C w celu zachowania tej samej temperatury powierzchni."
          }
        ]
      }
    ]
    </script>

    <div class="st-header-section">
        <div class="st-badge"><span>🏗️</span> Konstrukcja a Termodynamika</div>
        <h2>Czy wysokość wylewki wpływa na temperaturę zasilania?</h2>
        <p class="st-lead">Tak, masa termiczna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej na ogrzewanie podłogowe</a> ma kluczowe znaczenie. Im grubsza warstwa betonu nad rurą, tym wyższy opór cieplny samej płyty grzejnej.</p>
    </div>

    <div class="st-interactive-section">
        <div class="st-ruler-container">
            <span class="st-ruler-title">Grubość jastrychu nad rurą</span>
            <span class="st-slider-val" id="st-val-display">5.0 cm</span>
            <input type="range" min="2.0" max="10.0" step="0.5" value="5.0" class="st-slider" id="st-slider">
        </div>
    </div>

    <div class="st-cards-grid">
        <div class="st-card" data-type="thin" id="st-card-thin">
            <span class="st-card-icon">💥</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> (poniżej <strong>3,5 cm</strong>) grozi pękaniem pod wpływem naprężeń termicznych, nawet jeśli nie przekroczymy maksymalnych <strong>55°C</strong> na zasilaniu.</p>
        </div>

        <div class="st-card active" data-type="standard" id="st-card-standard">
            <span class="st-card-icon">✅</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Standardowo przyjmuje się <strong>4,5 - 5 cm</strong> betonu ponad rurą.</p>
        </div>

        <div class="st-card" data-type="thick" id="st-card-thick">
            <span class="st-card-icon">🌡️</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Zwiększenie tej grubości do <strong>8 cm</strong> wymusza podniesienie temperatury zasilania o około <strong>2-3°C</strong>, aby uzyskać tę samą temperaturę na powierzchni w tym samym czasie.</p>
        </div>
    </div>

    <div class="st-outro-section">
        <div class="st-pro-tip">
            <span class="st-pro-tip-icon">💡</span>
            <p>W systemach renowacyjnych, gdzie brakuje miejsca na gruby beton, stosuje się specjalne jastrychy anhydrytowe o wysokim współczynniku przewodzenia ciepła.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-screed-thickness');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('st-slider');
    const displayVal = document.getElementById('st-val-display');
    
    const cardThin = document.getElementById('st-card-thin');
    const cardStandard = document.getElementById('st-card-standard');
    const cardThick = document.getElementById('st-card-thick');

    function updateScreedSimulator(thickness) {
        displayVal.textContent = parseFloat(thickness).toFixed(1) + ' cm';

        cardThin.classList.remove('active');
        cardStandard.classList.remove('active');
        cardThick.classList.remove('active');

        if (thickness < 4.0) {
            cardThin.classList.add('active');
        } else if (thickness >= 4.0 && thickness <= 6.5) {
            cardStandard.classList.add('active');
        } else {
            cardThick.classList.add('active');
        }
    }

    if (slider) {
        slider.addEventListener('input', function() {
            updateScreedSimulator(this.value);
        });
        
        updateScreedSimulator(slider.value);
    }
});
</script>



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



<style>
:root {
    --hazard-primary: #0f172a;
    --hazard-accent: #dc2626; /* Intensywna czerwień ostrzegawcza */
    --hazard-bg: #fff1f2;
    --hazard-border: #fecaca;
    --hazard-text: #475569;
}

.hazard-report-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    border: 2px solid var(--hazard-border);
    overflow: hidden;
    box-shadow: 0 20px 25px -5px rgba(220, 38, 38, 0.05);
}

/* 1. SEKACJA HEADER */
.hazard-header {
    background: var(--hazard-accent);
    padding: 30px 50px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hazard-header h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
}

.hazard-status-label {
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hazard-pulse {
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
    animation: hazard-blink 1s infinite;
}

@keyframes hazard-blink {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

/* 2. SEKACJA TEKSTU PROWADZĄCEGO */
.hazard-intro {
    padding: 35px 50px 20px 50px;
    background: #ffffff;
}

.hazard-intro p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

.hazard-intro a {
    color: var(--hazard-accent);
    text-decoration: underline;
    font-weight: 700;
}

/* 3. INTERAKTYWNA LISTA ZAGROŻEŃ */
.hazard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 20px 50px 40px 50px;
}

.hazard-item {
    background: var(--hazard-bg);
    border: 1px solid var(--hazard-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hazard-item:hover {
    transform: translateY(-5px);
    background: #ffffff;
    box-shadow: 0 10px 20px rgba(220, 38, 38, 0.1);
    border-color: var(--hazard-accent);
}

.hazard-icon {
    font-size: 32px;
    margin-bottom: 15px;
}

.hazard-item h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--hazard-primary);
    text-transform: uppercase;
}

.hazard-details {
    font-size: 13px;
    line-height: 1.6;
    color: var(--hazard-text);
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    opacity: 0;
}

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

.hazard-item.active .hazard-details {
    height: auto;
    opacity: 1;
    margin-top: 10px;
}

.hazard-temp-badge {
    background: var(--hazard-accent);
    color: #ffffff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .hazard-header { padding: 25px; flex-direction: column; gap: 15px; text-align: center; }
    .hazard-intro { padding: 30px 25px 15px 25px; }
    .hazard-grid { grid-template-columns: 1fr; padding: 15px 25px 30px 25px; }
    .hazard-item { padding: 20px; }
}
</style>

<div class="hazard-report-module" id="app-hazard-report">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Analizator Skutków Przegrzania Podłogówki",
        "description": "Narzędzie eksperckie identyfikujące fizyczne i techniczne zagrożenia wynikające z przekroczenia temperatury 55°C w instalacjach ogrzewania płaszczyznowego.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Weryfikacja wytrzymałości termicznej klejów ceramicznych",
          "Analiza prądów konwekcyjnych i emisji pyłów",
          "Ocena degradacji polimerów rur PERT/PEX"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Krytyczne progi degradacji instalacji podłogowej",
        "description": "Zbiór danych technicznych dotyczących niszczącego wpływu wysokich temperatur na materiały budowlane i instalacyjne.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Wytrzymałość klejów do ceramiki",
            "value": "Max 60-70°C",
            "description": "Powyżej tego progu następuje kruszenie spoiwa i odparzenie płytek."
          },
          {
            "@type": "PropertyValue",
            "name": "Próg emisji pyłów (konwekcja)",
            "value": "> 35°C powierzchni",
            "description": "Gwałtowny ruch powietrza unoszący alergeny."
          },
          {
            "@type": "PropertyValue",
            "name": "Degradacja sieciowania PEX",
            "value": "Stała praca > 60°C",
            "description": "Przyspieszone starzenie materiału i kruszenie rur."
          }
        ]
      }
    ]
    </script>

    <div class="hazard-header">
        <h2>Zagrożenia i błędy: Co się dzieje po przekroczeniu 55°C?</h2>
        <div class="hazard-status-label">
            <div class="hazard-pulse"></div>
            Analiza Krytyczna
        </div>
    </div>

    <div class="hazard-intro">
        <p>W mojej karierze widziałem dziesiątki instalacji zniszczonych przez brak kontroli nad temperaturą zasilania. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego</a> często kumulują się właśnie w tym punkcie. <strong>Kliknij w wybrane zagrożenie, aby poznać szczegóły:</strong></p>
    </div>

    <div class="hazard-grid">
        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🧱</span>
            <h4>Odparzenie płytek</h4>
            <div class="hazard-temp-badge">60-70°C</div>
            <div class="hazard-details">
                Kleje do ceramiki mają swoją wytrzymałość termiczną. Praca w temperaturze <strong>60-70°C</strong> powoduje ich kruszenie i utratę przyczepności do jastrychu.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">💨</span>
            <h4>Emisja pyłów</h4>
            <div class="hazard-temp-badge">Konwekcja</div>
            <div class="hazard-details">
                Przegrzana podłoga generuje silne prądy konwekcyjne. Zjawisko to unosi kurz, co jest szczególnie dotkliwe dla alergików. Poprawna podłogówka powinna oddawać ciepło głównie przez promieniowanie.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🚨</span>
            <h4>Niszczenie rur</h4>
            <div class="hazard-temp-badge">Degradacja PEX</div>
            <div class="hazard-details">
                Rury PERT/PEX przy stałym przegrzewaniu stają się kruche (proces sieciowania ulega degradacji), co po kilku latach może prowadzić do awarii i konieczności kucia posadzek.
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-hazard-report');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Treść raportu zagrożeń została skopiowana nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }
});
</script>



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



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii trwa wiele godzin. Skokowe podniesienie temperatury zasilania wywoła szok termiczny, co grozi pęknięciem wylewki, odspojeniem płytek i uszkodzeniem rur PEX. System powinien pracować stabilnie na niskich parametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Problem najprawdopodobniej leży w hydraulice lub wysokim oporze cieplnym okładziny (np. gruby dywan). Jeśli rury są ciepłe przy rozdzielaczu, a podłoga nie grzeje, należy sprawdzić przepływy na rotametrach (brak przepływu oznacza zapowietrzenie lub zablokowane siłowniki)."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna temperatura dla paneli winylowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele winylowe (LVT) świetnie przewodzą ciepło, ale temperatura na ich powierzchni nie może przekraczać 27°C. Aby zachować bezpieczeństwo materiału i nie doprowadzić do jego odkształceń, temperatura zasilania podłogówki nie powinna przekraczać 35°C."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Asystent Diagnostyczny Instalacji Podłogowych",
    "description": "Moduł typu Helpdesk ułatwiający inwestorom diagnozowanie problemów z instalacją grzewczą (np. zimne posadzki) oraz weryfikację bezpieczeństwa parametrów eksploatacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Rozwiązywanie problemów z przepływem i zapowietrzeniem układu",
      "Weryfikacja maksymalnych parametrów dla winylu (LVT)",
      "Analiza skutków przewymiarowania temperatury zasilania"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy i parametry diagnostyczne ogrzewania płaszczyznowego",
    "description": "Zbiór danych określających krytyczne błędy użytkowe i parametry eksploatacyjne systemów HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Prawidłowy przepływ w rotametrze",
        "value": "1.0 - 2.5 l/min",
        "description": "Wartość niezbędna do pokonania oporów hydraulicznych i równomiernego oddawania ciepła."
      },
      {
        "@type": "PropertyValue",
        "name": "Max temp. zasilania dla winylu LVT",
        "value": "35°C",
        "description": "Graniczna temperatura na zasilaniu zapobiegająca uszkodzeniu zamków i odkształcaniu paneli winylowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
    }
  }
]
</script>

<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0284c7;
    --faq-accent-light: #e0f2fe;
    --faq-bg: #f8fafc;
    --faq-border: #e2e8f0;
    --faq-text: #334155;
    --faq-danger: #dc2626;
}

.premium-faq-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--faq-border);
    overflow: hidden;
}

.faq-header-section {
    padding: 40px 50px 30px 50px;
    background: linear-gradient(180deg, #ffffff 0%, var(--faq-bg) 100%);
    border-bottom: 1px solid var(--faq-border);
    text-align: center;
}

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

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

.faq-header-section p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.faq-accordion-container {
    padding: 30px 50px 40px 50px;
    background: #ffffff;
}

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

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

.faq-item:hover {
    border-color: #bae6fd;
}

.faq-item.active {
    border-color: var(--faq-accent);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.faq-question {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 20px;
    user-select: none;
    background: #ffffff;
}

.faq-q-text {
    display: flex;
    align-items: center;
    gap: 15px;
}

.faq-q-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.faq-q-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

.faq-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--faq-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--faq-primary);
    font-weight: bold;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

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

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

.faq-answer-inner {
    padding: 0 25px 25px 65px; /* Offset for icon alignment */
}

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

.faq-answer p:last-child {
    margin-bottom: 0;
}

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

/* Wyróżnienie "Wskazówka Inżyniera" */
.expert-highlight {
    background: #f0fdf4;
    border-left: 4px solid var(--success);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 15px;
}

.expert-highlight strong {
    display: block;
    color: #14532d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.expert-highlight p {
    color: #166534;
    font-size: 14px;
    margin: 0;
}

@media (max-width: 768px) {
    .faq-header-section { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 25px; }
    .faq-question { padding: 15px 20px; gap: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; } /* Usunięty offset dla mobile */
    .faq-q-icon { font-size: 20px; }
    .faq-q-title { font-size: 15px; }
}
</style>

<div class="premium-faq-module" id="app-faq-module">
    
    <div class="faq-header-section">
        <div class="faq-badge">
            <span>💡</span> Baza Wiedzy Inwestora
        </div>
        <h2>Najczęściej zadawane pytania (FAQ)</h2>
        <p>Zebraliśmy najczęstsze wątpliwości inwestorów dotyczące temperatur zasilania. Rozwiń poniższe zagadnienia, aby uniknąć kosztownych błędów eksploatacyjnych.</p>
    </div>

    <div class="faq-accordion-container">
        
        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🔥</span>
                    <h3 class="faq-q-title">Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p><strong>Absolutnie nie.</strong> Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii i tak potrwa od kilku do kilkunastu godzin. Skokowe podniesienie temperatury zasilania nie przyspieszy odczuwalnie nagrzewania pomieszczenia, ale wywoła potężny szok termiczny dla instalacji.</p>
                    <p>Ryzykujesz rażące przekroczenie normy PN-EN 1264 (limit 55°C), co prowadzi do nieodwracalnego pękania jastrychu, odspojenia płytek oraz drastycznego skrócenia żywotności rur PEX. System podłogowy to układ niskotemperaturowy – powinien pracować stabilnie, ciągle i na niskich parametrach.</p>
                    <div class="expert-highlight">
                        <strong>Wskazówka Inżyniera</strong>
                        <p>Jeśli posiadasz pompę ciepła, takie wymuszenie temperatury włączy grzałki elektryczne, co w ciągu kilku dni potrafi wygenerować rachunki równe miesięcznym kosztom standardowej eksploatacji.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">❄️</span>
                    <h3 class="faq-q-title">Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Wysoka temperatura na kotle nie gwarantuje ciepłej podłogi, jeśli energia nie jest w stanie dotrzeć do posadzki i przebić się do pomieszczenia. Najprawdopodobniej problem leży w <strong>błędach hydraulicznych lub złym wykończeniu podłogi</strong>.</p>
                    <p>W pierwszej kolejności sprawdź przepływy na rotametrach na rozdzielaczu – poprawne wartości to zazwyczaj od 1.0 do 2.5 l/min. Zablokowany przepływ może oznaczać zapowietrzenie pętli lub usterkę siłownika termoelektrycznego. Jeśli przepływy są prawidłowe, winny jest zbyt wysoki opór cieplny (R) – np. gruby dywan, zły podkład lub pustka powietrzna pod deską, która blokuje oddawanie ciepła.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🪵</span>
                    <h3 class="faq-q-title">Jaka jest optymalna temperatura dla paneli winylowych (LVT)?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Panele winylowe (LVT/SPC) są bardzo cienkie i rewelacyjnie przewodzą ciepło, co czyni je doskonałym wyborem na ogrzewanie podłogowe. Mają jednak jedną wadę: <strong>bardzo niską odporność na wysoką temperaturę</strong>.</p>
                    <p>Zgodnie z rygorystycznymi wytycznymi większości producentów, temperatura styku paneli z wylewką absolutnie nie może przekroczyć <strong>27°C - 28°C</strong>. Zazwyczaj oznacza to, że temperatura wody na zasilaniu podłogówki powinna być zablokowana na poziomie maksymalnie <strong>30-35°C</strong>.</p>
                    <div class="expert-highlight" style="border-left-color: var(--faq-danger); background: #fef2f2;">
                        <strong style="color: #991b1b;">Zagrożenie</strong>
                        <p style="color: #7f1d1d;">Przegrzanie winylu natychmiast prowadzi do rozmiękczenia materiału, odkształcenia (wyłamania) zamków, efektu "łódkowania" oraz utraty gwarancji na podłogę.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-faq-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Baza wiedzy FAQ została skopiowana z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Zwijanie / Rozwijanie)
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        
        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Opcjonalnie: Zwijanie wszystkich innych zakładek po kliknięciu nowej
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                const otherAnswer = otherItem.querySelector('.faq-answer');
                otherAnswer.style.maxHeight = null;
            });

            // Logika otwierania klikniętego elementu
            if (!isActive) {
                item.classList.add('active');
                const answer = item.querySelector('.faq-answer');
                // Dynamiczne ustawienie max-height pozwala na gładką animację dla zawartości o różnej długości
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz domyślnie pierwsze pytanie, aby użytkownik widział, jak działa element
    if (faqItems.length > 0) {
        faqItems[0].classList.add('active');
        const firstAnswer = faqItems[0].querySelector('.faq-answer');
        firstAnswer.style.maxHeight = firstAnswer.scrollHeight + "px";
    }
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-secondary: #1e293b;
    --dl-accent: #0284c7;
    --dl-pdf: #ef4444; 
    --dl-img: #10b981; 
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
}

.premium-download-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--dl-border);
    overflow: hidden;
    display: flex;
    flex-direction: row;
}

/* LEWA STRONA: Wizualizacja materiału (Podgląd) */
.dl-visual-side {
    flex: 0 0 38%;
    background: linear-gradient(135deg, var(--dl-primary) 0%, var(--dl-secondary) 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    border-right: 1px solid rgba(255,255,255,0.1);
    overflow: hidden;
}

/* Dekoracyjne tło */
.dl-visual-side::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: radial-gradient(circle at top right, rgba(2, 132, 199, 0.4) 0%, transparent 60%);
    pointer-events: none;
}

/* Nowy kontener z podglądem grafiki */
.dl-preview-wrapper {
    width: 170px;
    max-width: 80%;
    margin-bottom: 25px;
    border-radius: 8px;
    box-shadow: -10px 15px 25px rgba(0,0,0,0.4);
    border: 3px solid rgba(255,255,255,0.15);
    transform: rotate(-4deg) translateY(0);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    z-index: 1;
    overflow: hidden;
    background: #fff;
}

.dl-preview-wrapper:hover {
    transform: rotate(0deg) translateY(-5px) scale(1.05);
    box-shadow: 0 20px 35px rgba(0,0,0,0.5);
    border-color: rgba(255,255,255,0.3);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.dl-visual-side p {
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    z-index: 1;
    padding: 0 10px;
}

/* PRAWA STRONA: Treść i przyciski */
.dl-content-side {
    flex: 1;
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-badge {
    align-self: flex-start;
    background: #f0f9ff;
    color: var(--dl-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #bae6fd;
}

.dl-content-side h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--dl-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #475569;
    line-height: 1.5;
}

.dl-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--dl-img);
    font-weight: bold;
}

.dl-features li strong {
    color: var(--dl-primary);
}

/* Przyciski pobierania */
.dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    flex: 1;
    justify-content: center;
    min-width: 180px;
}

.dl-btn-pdf {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.dl-btn-pdf:hover {
    background: var(--dl-pdf);
    color: #ffffff;
    border-color: var(--dl-pdf);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(239, 68, 68, 0.2);
}

.dl-btn-img {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.dl-btn-img:hover {
    background: var(--dl-img);
    color: #ffffff;
    border-color: var(--dl-img);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(16, 185, 129, 0.2);
}

.dl-btn-icon {
    font-size: 18px;
}

@media (max-width: 768px) {
    .premium-download-module {
        flex-direction: column;
    }
    .dl-visual-side {
        padding: 40px 30px;
    }
    .dl-content-side {
        padding: 30px 25px;
    }
    .dl-actions {
        flex-direction: column;
    }
    .dl-btn {
        width: 100%;
    }
}
</style>

<div class="premium-download-module" id="app-download-center">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Centrum Pobierania - Infografiki HVAC",
        "description": "Interaktywny moduł umożliwiający pobranie kompendium wiedzy na temat maksymalnych temperatur zasilania dla ogrzewania podłogowego w formatach PDF i WebP.",
        "applicationCategory": "MultimediaApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Szybkie pobieranie infografiki w bezstratnym formacie PDF do druku",
          "Dostęp do lekkiej wersji graficznej WebP dla urządzeń mobilnych",
          "Zestawienie norm PN-EN 1264 z praktyką inżynierską"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Infografika: Maksymalna temperatura zasilania podłogówki",
        "description": "Wizualne zestawienie parametrów eksploatacyjnych, optymalnych temperatur dla poszczególnych rodzajów posadzek oraz najczęstszych błędów montażowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "distribution": [
          {
            "@type": "DataDownload",
            "encodingFormat": "application/pdf",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf"
          },
          {
            "@type": "DataDownload",
            "encodingFormat": "image/webp",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="dl-visual-side">
        <div class="dl-preview-wrapper">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" alt="Podgląd infografiki - parametry ogrzewania podłogowego" class="dl-preview-img" loading="lazy">
        </div>
        <p>Materiały oparte na twardych danych inżynierskich i normie PN-EN 1264.</p>
    </div>

    <div class="dl-content-side">
        <div class="dl-badge">Darmowe Materiały</div>
        <h2>Pobierz infografikę z parametrami instalacji</h2>
        
        <ul class="dl-features">
            <li><strong>Graficzne podsumowanie wiedzy:</strong> Czytelny schemat pracy układu grzewczego.</li>
            <li><strong>Szybka ściągawka z norm:</strong> Optymalne i graniczne wartości temperatur (25°C - 55°C) zawsze pod ręką.</li>
            <li><strong>Analiza błędów:</strong> Zestawienie 3 najdroższych pomyłek montażowych.</li>
        </ul>

        <div class="dl-actions">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-pdf">
                <span class="dl-btn-icon">📄</span> Pobierz plik PDF
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-img">
                <span class="dl-btn-icon">🖼️</span> Otwórz Obrazek
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-download-center');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; width: 100%;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Moduł pobierania plików został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

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

.summary-header {
    background: var(--primary);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło w nagłówku */
.summary-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.4) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.summary-text {
    padding: 35px 40px 10px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

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

/* Moduł interaktywny - Weryfikator */
.interactive-checklist-module {
    margin: 20px 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.checklist-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 200px;
}

.progress-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
    font-size: 12px;
    font-weight: 900;
    color: var(--primary);
    min-width: 40px;
    text-align: right;
}

.checklist-items {
    padding: 20px 25px;
    display: grid;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #ffffff;
}

.check-item:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.check-item.completed {
    border-color: var(--success);
    background: #f0fdf4;
}

.check-box {
    width: 24px;
    height: 24px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: #fff;
    margin-top: 2px;
}

.check-item.completed .check-box {
    background: var(--success);
    border-color: var(--success);
}

.check-icon {
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transform: scale(0);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.check-item.completed .check-icon {
    opacity: 1;
    transform: scale(1);
}

.check-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

.check-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
}

/* CTA Sukcesu - ROZWIĄZANIE HYBRYDOWE */
.success-cta-box {
    padding: 30px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.4s ease;
}

.success-cta-box.is-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-top-color: #bbf7d0;
}

.success-messages {
    display: none;
    animation: fadeIn 0.5s ease;
}

.success-cta-box.is-success .success-messages {
    display: block;
}

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

.success-messages h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #166534;
    font-weight: 900;
}

.success-messages p {
    font-size: 15px;
    color: #15803d;
    margin: 0 0 20px 0;
}

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534;
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wytyczne zasilania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących maksymalnych limitów temperatury zasilania oraz powierzchni podłogi z uwzględnieniem specyfiki źródła ciepła i okładziny.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura zasilania wg normy",
        "value": "55°C",
        "description": "Graniczna wartość według PN-EN 1264, której przekroczenie grozi uszkodzeniem jastrychu."
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna temperatura zasilania (Pompa ciepła)",
        "value": "30-38°C",
        "description": "Zakres gwarantujący najwyższy współczynnik SCOP i energooszczędność."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura powierzchni podłogi",
        "value": "29°C",
        "description": "Limit dla stref stałego przebywania ludzi (np. salon, sypialnia) ze względów fizjologicznych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Audyt Parametrów Zasilania",
    "description": "Interaktywna aplikacja sprawdzająca, czy założenia projektowe dotyczące temperatur zasilania podłogówki są bezpieczne i zgodne z normami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Weryfikacja parametrów OZC i układu hydraulicznego",
      "Kontrola zabezpieczeń przed przegrzewem dla źródeł wysokotemperaturowych",
      "Ocena spójności między rozstawem rur a planowaną okładziną"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie i rekomendacje eksperta</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Maksymalna temperatura zasilania podłogówki to parametr, którego nie wolno lekceważyć.</p>
    </div>
    
    <div class="summary-text">
        <p>Choć norma dopuszcza graniczną wartość <strong>55°C</strong>, współczesne budownictwo oparte na efektywnych źródłach niskotemperaturowych bezwzględnie dąży do parametrów na poziomie <strong>30-38°C</strong>. Taki zakres to jedyna droga, która gwarantuje najwyższą sprawność pomp ciepła, bezpieczeństwo termiczne dla wszystkich rodzajów okładzin wierzchnich oraz idealny, bezwładnościowy komfort cieplny dla domowników.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🌡️ Audyt Bezpieczeństwa: Weryfikacja parametrów zasilania</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Projekt OZC jako absolutna podstawa</h4>
                    <p>Zawsze wymagam obliczenia projektowego zapotrzebowania na ciepło przed rozpoczęciem instalacji, aby nie dobierać temperatury zasilania "w ciemno".</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Zastosowanie zaworu mieszającego</h4>
                    <p>W przypadku współpracy z kotłem stałopalnym lub gazowym, układ jest zabezpieczony zaworem obniżającym zbyt wysoką temperaturę powrotu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Dopasowanie rozstawu pętli do okładziny</h4>
                    <p>Dobrałem gęstość rur pod rodzaj wykończenia. Zastosuję węższy rozstaw (np. co 10 cm), jeśli nad rurami znajdzie się stawiające opór termiczny drewno.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Monitorowanie temperatury powierzchni</h4>
                    <p>Układ jest tak wyregulowany, by temperatura powierzchni podłogi (np. w salonie i sypialniach) bezwzględnie nie przekraczała normatywnych 29°C.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój układ grzewczy to majstersztyk inżynierski.</h3>
            <p>Inwestycja w poprawnie zaprojektowany i wyregulowany system to nie tylko niższe rachunki za energię, ale przede wszystkim spokój na dziesięciolecia i dom wolny od kosztownych awarii wylewki i posadzek.</p>
        </div>

        <p class="success-cta-promo">Chcesz poznać inne parametry wpływające na efektywność ogrzewania? Sprawdź naszą bazę wiedzy pełną branżowych kalkulatorów i darmowych poradników!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</p>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalacja ogrzewania podłogowego w układzie meandrowym.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 11 May 2025 15:30:59 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje budowlane]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[normy ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[strefy brzegowe]]></category>
		<category><![CDATA[układ meandrowy]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2575</guid>

					<description><![CDATA[<p>Chcesz cieszyć się ciepłem w domu przez cały rok? Poznaj zalety instalacji ogrzewania podłogowego w układzie meandrowym – prostego i efektywnego systemu grzewczego. Dowiedz się, jak zaplanować montaż, dobrać rury i okładziny oraz uniknąć błędów. Sprawdź praktyczne porady, koszty i przykłady zastosowań, aby stworzyć komfortowy i energooszczędny dom. Zainspiruj się i zacznij działać już dziś!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Instalacja ogrzewania podłogowego w układzie meandrowym</strong> to jedno z rozwiązań zapewniających komfort cieplny w domach i mieszkaniach. Dzięki prostocie montażu i możliwości dostosowania do specyficznych potrzeb pomieszczeń, ten system jest idealny dla salonów z dużymi oknami, łazienek czy kuchni. W tym artykule wyjaśnimy, jak prawidłowo zaplanować i zrealizować <strong>montaż ogrzewania podłogowego w układzie meandrowym</strong>, jakie są jego zalety, koszty i jak wybrać odpowiednie materiały. Dowiedz się, dlaczego warto postawić na ten system i jak uniknąć typowych błędów.</p>



<h2 class="wp-block-heading">Dlaczego warto wybrać ogrzewanie podłogowe w układzie meandrowym?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe w układzie meandrowym to sposób na równomierne rozprowadzenie ciepła od podłogi, co zapewnia wyjątkowy komfort, szczególnie w chłodne dni. W porównaniu do tradycyjnych grzejników, ten system jest bardziej energooszczędny i estetyczny, ponieważ eliminuje widoczne elementy grzewcze. Układ meandrowy wyróżnia się prostotą, co czyni go atrakcyjnym wyborem dla osób szukających efektywnego rozwiązania w przystępnej cenie.</p>



<h3 class="wp-block-heading">Zalety układu meandrowego.</h3>



<ul class="wp-block-list">
<li><strong>Łatwość montażu</strong>: Rury układane są równolegle w kształt węża, co przyspiesza instalację i obniża koszty robocizny.</li>



<li><strong>Skuteczność w strefach brzegowych</strong>: Idealny do pomieszczeń z dużymi stratami ciepła, np. przy oknach czy ścianach zewnętrznych.</li>



<li><strong>Elastyczność</strong>: Możliwość zagęszczenia rur w kluczowych miejscach, np. wzdłuż drzwi balkonowych.</li>



<li><strong>Zdrowie i komfort</strong>: Ciepło rozprowadzane od podłogi zmniejsza cyrkulację kurzu, co jest korzystne dla alergików. Więcej o tym w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Czy ogrzewanie podłogowe jest zdrowe?</a>.</li>
</ul>



<h3 class="wp-block-heading">Ograniczenia układu meandrowego.</h3>



<p class="wp-block-paragraph">Główną wadą układu meandrowego jest nierównomierny rozkład temperatury – woda traci ciepło w miarę przepływu, co może sprawić, że podłoga będzie cieplejsza na początku pętli. W większych pomieszczeniach lepszym wyborem może być układ ślimakowy, który zapewnia bardziej jednolite ogrzewanie. Jednak odpowiednie planowanie pętli może zminimalizować ten problem.</p>



<h2 class="wp-block-heading"><strong>Rodzaje układu meandrowego: pojedynczy i podwójny</strong>.</h2>



<p class="wp-block-paragraph">Układ meandrowy w ogrzewaniu podłogowym występuje w dwóch wariantach: <strong>meander pojedynczy</strong> i <strong>meander podwójny</strong>. Oba bazują na tym samym schemacie układania rur w równoległe pasy z zakrętami o 180°, ale różnią się sposobem prowadzenia rur zasilających i powrotnych, co ma istotny wpływ na równomierność ogrzewania.</p>



<h3 class="wp-block-heading"><strong>Meander pojedynczy</strong>.</h3>



<p class="wp-block-paragraph"><strong>Meander pojedynczy</strong> to klasyczny układ, w którym rura biegnie od rozdzielacza wzdłuż jednej strony pomieszczenia i wraca drugą stroną. To proste rozwiązanie, tanie i szybkie w montażu. Jednak jego wadą może być <strong>nierównomierny rozkład temperatury</strong> – początek pętli jest cieplejszy, a koniec – chłodniejszy. Dlatego najlepiej sprawdza się w mniejszych pomieszczeniach lub tam, gdzie różnice temperatur nie mają kluczowego znaczenia.</p>



<h3 class="wp-block-heading"><strong>Meander podwójny</strong>.</h3>



<p class="wp-block-paragraph"><strong>Meander podwójny</strong> to bardziej zaawansowana wersja, w której rury zasilająca i powrotna biegną parami – obok siebie – przez całą długość pętli. Dzięki temu ciepło rozprowadzane jest <strong>bardziej równomiernie</strong>, co znacznie poprawia komfort cieplny w pomieszczeniach o większej powierzchni lub dużych stratach ciepła, np. z dużymi przeszkleniami. Choć ten układ jest nieco trudniejszy w wykonaniu i może wymagać więcej materiału, zapewnia <strong>lepszy balans termiczny</strong> w całej strefie grzewczej.</p>



<p class="wp-block-paragraph"><em>Wybór między meandrem pojedynczym a podwójnym zależy przede wszystkim od <strong>układu pomieszczenia, rodzaju źródła ciepła oraz wymaganej równomierności temperatury</strong>.</em></p>



<h2 class="wp-block-heading"><strong>Gdzie warto zastosować układ meandrowy w ogrzewaniu podłogowym?</strong></h2>



<p class="wp-block-paragraph">Układ meandrowy najlepiej sprawdza się w <strong>pomieszczeniach o mniejszej powierzchni</strong>, gdzie różnice temperatury między początkiem a końcem pętli nie są aż tak odczuwalne. To idealne rozwiązanie do <strong>łazienek, korytarzy, kuchni</strong>, a także <strong>pomieszczeń o regularnym kształcie</strong>, bez dużej liczby wnęk czy przeszkód architektonicznych.</p>



<p class="wp-block-paragraph">Dzięki możliwości lokalnego zagęszczenia rur, meander dobrze radzi sobie także w <strong>strefach brzegowych</strong>, czyli wzdłuż ścian zewnętrznych, przy oknach i drzwiach balkonowych – tam, gdzie występują największe straty ciepła. W tych miejscach można z powodzeniem zmniejszyć rozstaw rur do 10 cm, uzyskując silniejszy strumień cieplny.</p>



<p class="wp-block-paragraph">Układ meandrowy jest również często stosowany w <strong>pomieszczeniach pomocniczych</strong> (spiżarnie, garderoby, pralnie), gdzie nie zależy nam na idealnej równomierności ciepła, ale ważna jest prostota montażu i niskie koszty. W przypadku większych przestrzeni – salonów, pokoi dziennych – <strong>lepszym wyborem może być układ ślimakowy lub podwójny meander</strong>, które zapewniają bardziej jednorodny rozkład temperatury.</p>



<h2 class="wp-block-heading">Jak wygląda ogrzewanie podłogowe ułożone w meander bądź podwójny meander.</h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img data-dominant-color="f3f2f2" data-has-transparency="false" style="--dominant-color: #f3f2f2;" fetchpriority="high" decoding="async" width="945" height="945" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander.webp" alt="Pojedynczy meander" class="wp-image-2583 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander.webp 945w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-100x100.webp 100w" sizes="(max-width: 945px) 100vw, 945px" /><figcaption class="wp-element-caption">Pojedynczy meander</figcaption></figure>



<figure class="wp-block-image size-full"><img data-dominant-color="f3f3f3" data-has-transparency="false" style="--dominant-color: #f3f3f3;" loading="lazy" decoding="async" width="945" height="945" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander.webp" alt="Podwójny meander" class="wp-image-2585 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander.webp 945w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-100x100.webp 100w" sizes="auto, (max-width: 945px) 100vw, 945px" /><figcaption class="wp-element-caption">Podwójny meander</figcaption></figure>
</div>



<h2 class="wp-block-heading">Jak działa instalacja ogrzewania podłogowego w układzie meandrowym?</h2>



<p class="wp-block-paragraph">W układzie meandrowym rury grzewcze są układane równolegle, tworząc pętle przypominające węża z zakrętami o 180 stopni. Gorąca woda przepływa przez rury, oddając ciepło do podłogi, a następnie wraca do rozdzielacza. System działa zgodnie z normą <strong>EN 1264</strong>, która określa wymagania dla wodnego ogrzewania podłogowego, zapewniając bezpieczeństwo i efektywność.</p>



<h3 class="wp-block-heading">Kluczowe komponenty systemu.</h3>



<p class="wp-block-paragraph">Aby <strong>zainstalować ogrzewanie podłogowe w układzie meandrowym</strong>, potrzebne są następujące elementy:</p>



<ol class="wp-block-list">
<li><strong>Rury grzewcze</strong>: Najczęściej stosuje się rury PEX lub PE-RT o średnicy 16 mm, zgodne z normą <strong>EN ISO 15875</strong>. Przykładem jest rura wielowarstwowa KAN-therm BluePERT, która zapewnia trwałość i elastyczność.</li>



<li><strong>Rozdzielacz</strong>: Umożliwia regulację przepływu wody. Polecamy <a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-ze-stali-nierdzewnej-inox-do-ogrzewania-podlogowego-z-rotametrami/">rozdzielacz ze stali nierdzewnej INOX</a> dla precyzyjnej kontroli.</li>



<li><strong>Grupa pompowo-mieszająca</strong>: Kluczowa w systemach z grzejnikami, dostępna jako <a href="https://projekt-ogrzewania.pl/produkt/grupa-pompowo-mieszajaca-trinnity/">grupa pompowo-mieszająca Trinnity</a>.</li>



<li><strong>Izolacja termiczna</strong>: Styropian EPS 100 lub <a href="https://projekt-ogrzewania.pl/produkt/mata-mocujaca-do-ogrzewania-podlogowego/">mata mocująca do ogrzewania podłogowego</a> zapobiega stratom ciepła.</li>



<li><strong>Wylewka</strong>: Betonowa lub anhydrytowa warstwa otaczająca rury, zgodna z normą <strong>DIN 4726</strong> dla rur PEX.</li>
</ol>



<h3 class="wp-block-heading">Planowanie rozmieszczenia pętli.</h3>



<p class="wp-block-paragraph">Kluczowe jest odpowiednie zaprojektowanie trasy rur, aby zapewnić efektywność systemu:</p>



<ul class="wp-block-list">
<li><strong>Strefy brzegowe</strong>: Rozpocznij układanie rur wzdłuż ścian zewnętrznych lub okien, z odstępem 10 cm, aby zwiększyć strumień ciepła.</li>



<li><strong>Unikanie zabudowy</strong>: Nie umieszczaj rur pod szafkami, wannami czy wyspami kuchennymi.</li>



<li><strong>Odstępy</strong>: Standardowy rozstaw to 10-20 cm, ale w newralgicznych miejscach można go zmniejszyć.</li>



<li><strong>Długość pętli</strong>: Maksymalnie 80-100 m, aby uniknąć spadku ciśnienia.</li>
</ul>



<p class="wp-block-paragraph">Sprawdź, jak to zrobić, w poradniku <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym</a>.</p>



<h2 class="wp-block-heading">Profesjonalny projekt ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph">Sukces instalacji zależy od precyzyjnego projektu, który uwzględnia straty ciepła, rodzaj podłogi i potrzeby mieszkańców. Oferujemy kompleksowe projekty, np. <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/">projekt ogrzewania podłogowego do 200 m²</a>, dostosowane do większych domów. Ich projekty <strong>EN 1264</strong>, zapewniając optymalny rozkład pętli i dobór materiałów. Przy zakupie komponentów w <a href="https://projekt-ogrzewania.pl/sklep/">sklepie projekt-ogrzewania.pl</a>, projekt można otrzymać gratis, co obniża koszty inwestycji.</p>



<h2 class="wp-block-heading">Etapy montażu ogrzewania podłogowego w układzie meandrowym.</h2>



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



<p class="wp-block-paragraph">Podłoże musi być równe, czyste i suche. Wszelkie nierówności mogą wpłynąć na jakość wylewki. Następnie układana jest izolacja, np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-200-z-wypustkami/">płyta styropianowa EPS 200 z wypustkami</a>.</p>



<h3 class="wp-block-heading">2. Układanie rur.</h3>



<p class="wp-block-paragraph">Rury mocuje się za pomocą spinek lub mat. W układzie meandrowym kluczowe jest rozpoczęcie od stref brzegowych i zachowanie odpowiedniego rozstawu.</p>



<h3 class="wp-block-heading">3. Montaż rozdzielacza.</h3>



<p class="wp-block-paragraph">Rozdzielacz jest podłączany do rur i montowany w <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafce podtynkowej</a>.</p>



<h3 class="wp-block-heading">4. Próba szczelności.</h3>



<p class="wp-block-paragraph">System wypełnia się wodą pod ciśnieniem i sprawdza przez 24-48 godzin, zgodnie z normą <strong>EN 1264</strong>. Zobacz szczegóły w <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">Próba szczelności ogrzewania podłogowego</a>.</p>



<h3 class="wp-block-heading">5. Wylewka i wykończenie.</h3>



<p class="wp-block-paragraph">Wylewka (21-28 dni schnięcia) otacza rury, a następnie układana jest okładzina podłogowa.</p>



<h2 class="wp-block-heading">Porównanie układu meandrowego z innymi systemami</h2>



<h3 class="wp-block-heading">Układ meandrowy vs ślimakowy.</h3>



<p class="wp-block-paragraph">Układ meandrowy jest tańszy i prostszy w montażu, ale mniej równomiernie rozprowadza ciepło. Ślimakowy, z rurami w spiralnym wzorze, lepiej sprawdza się w dużych pomieszczeniach. Przeczytaj więcej w <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Instalacja ogrzewania podłogowego w układzie ślimakowym</a>.</p>



<h3 class="wp-block-heading">Układ meandrowy vs ogrzewanie elektryczne.</h3>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe w układzie meandrowym jest bardziej ekonomiczne w eksploatacji niż elektryczne, szczególnie z pompą ciepła. Elektryczne systemy są łatwiejsze w instalacji, ale droższe w użytkowaniu.</p>



<h2 class="wp-block-heading">Koszty instalacji ogrzewania podłogowego w układzie meandrowym.</h2>



<p class="wp-block-paragraph">Koszty zależą od materiałów, robocizny i wielkości powierzchni. Oto szacunkowy rozkład:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Element</strong></th><th><strong>Koszt (zł/m²)</strong></th></tr></thead><tbody><tr><td>Materiały (styropian, rury, folia)</td><td>15-25</td></tr><tr><td>Robocizna</td><td>25-35</td></tr><tr><td>Rozdzielacz i automatyka</td><td>10-20</td></tr><tr><td><strong>Całkowity koszt</strong></td><td>80-180 (średnio 110-120)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla domu 100 m² koszt wynosi 8000-18 000 zł. Sprawdź szczegóły w <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">Ile kosztuje 100 m² ogrzewania podłogowego?</a>.</p>



<h2 class="wp-block-heading">Przykłady zastosowania.</h2>



<ol class="wp-block-list">
<li><strong>Salon 30 m²</strong>: Pętle zaczynają się przy oknach (odstęp 10 cm), a w centrum odstęp wynosi 15 cm.</li>



<li><strong>Łazienka 6 m²</strong>: Rury omijają wannę, koncentrując się na otwartych przestrzeniach.</li>



<li><strong>Kuchnia 15 m²</strong>: Pętle omijają wyspę kuchenną, zapewniając ciepło w strefach użytkowych.</li>
</ol>



<h2 class="wp-block-heading">Jak wybrać okładzinę podłogową?</h2>



<ul class="wp-block-list">
<li><strong>Płytki ceramiczne</strong>: Niski opór termiczny, idealne do łazienek.</li>



<li><strong>Kamień naturalny</strong>: Droższy, ale efektywny.</li>



<li><strong>Panele laminowane</strong>: Odpowiednie, jeśli oznaczone do podłogówki.</li>



<li><strong>Drewno</strong>: Cienkie deski (do 10 mm) z odpowiednim klejem.</li>
</ul>



<p class="wp-block-paragraph">Przeczytaj więcej w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego</a>.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1746973842792"><strong class="schema-faq-question">Czym różni się układ meandrowy od ślimakowego?</strong> <p class="schema-faq-answer">Układ meandrowy układa rury w kształt węża, jest prostszy i tańszy, ale mniej równomiernie rozprowadza ciepło. Ślimakowy, z rurami w spirali, lepiej sprawdza się w dużych pomieszczeniach.</p> </div> <div class="schema-faq-section" id="faq-question-1746973851571"><strong class="schema-faq-question">Jakie odstępy między rurami są najlepsze w układzie meandrowym?</strong> <p class="schema-faq-answer">Standardowy rozstaw to 10-20 cm, ale w strefach brzegowych (np. przy oknach) zaleca się nawet 5 cm, aby zwiększyć efektywność ogrzewania.</p> </div> <div class="schema-faq-section" id="faq-question-1746973884709"><strong class="schema-faq-question">Czy mogę samodzielnie zamontować ogrzewanie podłogowe w układzie meander?</strong> <p class="schema-faq-answer">Samodzielny montaż jest możliwy, ale wymaga wiedzy o rozmieszczeniu rur, próbie szczelności i normach (np. EN 1264). Profesjonalny projekt i ekipa minimalizują ryzyko błędów.</p> </div> <div class="schema-faq-section" id="faq-question-1746973925299"><strong class="schema-faq-question">Czy ogrzewanie podłogowe w układzie meandrowym jest energooszczędne?</strong> <p class="schema-faq-answer">Tak, szczególnie w połączeniu z pompą ciepła. Układ meandrowy działa w niskich temperaturach (35-45°C), co obniża zużycie energii w porównaniu do grzejników.</p> </div> <div class="schema-faq-section" id="faq-question-1746973943964"><strong class="schema-faq-question">Jak uniknąć błędów przy montażu podłogówki w układzie meandrowym?</strong> <p class="schema-faq-answer">Kluczowe jest profesjonalne projektowanie, unikanie rur pod zabudową, prawidłowa próba szczelności i zgodność z normami, np. EN 1264. Sprawdź najczęstsze błędy przy montażu ogrzewania podłogowego.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Instalacja ogrzewania podłogowego w układzie meandrowym</strong> to efektywne rozwiązanie, które łączy prostotę, komfort i oszczędności. Kluczowe jest staranne planowanie pętli, wybór materiałów i profesjonalny projekt. Dzięki temu system zapewni ciepło i obniży rachunki za ogrzewanie.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="5pGDJnlkuc"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=NaCy7BiX3w#?secret=5pGDJnlkuc" data-secret="5pGDJnlkuc" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rura PERT do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 04 May 2025 08:20:51 +0000</pubDate>
				<category><![CDATA[Budownictwo]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Rury grzewcze]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogówki]]></category>
		<category><![CDATA[koszt rury pert]]></category>
		<category><![CDATA[montaż rur pert]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pert vs pex]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rura pert]]></category>
		<category><![CDATA[rura pert 16 mm]]></category>
		<category><![CDATA[rura pert do pompy ciepła]]></category>
		<category><![CDATA[rury do podłogówki]]></category>
		<category><![CDATA[systemy niskotemperaturowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2559</guid>

					<description><![CDATA[<p>Szukasz niezawodnych materiałów do ogrzewania podłogowego? Rura PERT do ogrzewania podłogowego to wybór łączący elastyczność, trwałość i oszczędność energii. W naszym artykule poznasz zalety rur PERT, koszty, wskazówki montażowe i sekrety efektywnego projektowania. Dowiedz się, jak rury do podłogówki PERT przewyższają PEX i miedź. Zamów na projekt-ogrzewania.pl i zyskaj darmowy projekt instalacji!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">Rura PERT do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> to kluczowy element nowoczesnych systemów grzewczych, ceniony za elastyczność, trwałość i efektywność energetyczną. W tym artykule omawiamy, dlaczego rury PERT są idealnym wyborem, jak je dobrać, montować i projektować system, aby zapewnić komfort cieplny. Poznaj koszty, porównania z PEX i miedzią oraz praktyczne wskazówki. </p>



<h2 class="wp-block-heading">Czym jest rura PERT i dlaczego warto ją wybrać?</h2>



<h3 class="wp-block-heading">Definicja i właściwości rury PERT.</h3>



<p class="wp-block-paragraph"><strong><em>Rura PERT</em> (polietylen termoplastyczny o podwyższonej odporności termicznej)</strong> to zaawansowany materiał do ogrzewania podłogowego. Jej unikalna struktura molekularna zapewnia elastyczność i odporność na temperatury do 95°C przy ciśnieniu 10 bar. Dzięki warstwie antydyfuzyjnej chroni instalację przed korozją, a higieniczność zapobiega osadzaniu się kamienia.</p>



<p class="wp-block-paragraph">Kluczowe cechy rur PERT:</p>



<ul class="wp-block-list">
<li><strong>Elastyczność</strong>: Idealna do układania pętli w układzie ślimakowym (<a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">instalacja w układzie ślimakowym</a>).</li>



<li><strong>Trwałość</strong>: Zgodność z normą EN ISO 15875 gwarantuje dekady bezawaryjnej pracy.</li>



<li><strong>Lekkość</strong>: Ułatwia transport i montaż w porównaniu do rur miedzianych.</li>
</ul>



<h3 class="wp-block-heading">Rura PERT vs PEX i miedź.</h3>



<p class="wp-block-paragraph">W porównaniu do rur PEX, <strong>rura PERT do ogrzewania podłogowego</strong> oferuje większą elastyczność, ułatwiając montaż. Rury miedziane są trwalsze, ale droższe i cięższe. PERT łączy przystępną cenę z doskonałymi parametrami, co czyni go liderem w systemach niskotemperaturowych, np. z pompami ciepła.</p>



<h2 class="wp-block-heading">Zalety rur PERT w podłogówce.</h2>



<h3 class="wp-block-heading">Efektywność energetyczna.</h3>



<p class="wp-block-paragraph">Rury PERT, zwłaszcza wielowarstwowe (np. PERT/AL/PERT), zapewniają równomierny rozkład ciepła, co zwiększa komfort cieplny i obniża rachunki za ogrzewanie. Są idealne do współpracy z pompami ciepła, oszczędzając energię.</p>



<h3 class="wp-block-heading">Trwałość i odporność.</h3>



<p class="wp-block-paragraph">Dzięki odporności na korozję i warstwie antydyfuzyjnej, rury PERT chronią instalację przed degradacją. Są też odporne na osadzanie się kamienia, co przedłuża żywotność systemu.</p>



<h3 class="wp-block-heading">Łatwy montaż rur PERT.</h3>



<p class="wp-block-paragraph">Elastyczność i długie zwoje (400–600 m) minimalizują łączniki, redukując ryzyko nieszczelności. Akcesoria, jak <a href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">spinka do styropianu</a>, przyspieszają instalację.</p>



<h2 class="wp-block-heading">Jak dobrać rurę PERT do instalacji?</h2>



<h3 class="wp-block-heading">Standardowe wymiary rur PERT.</h3>



<ul class="wp-block-list">
<li><strong>16 mm</strong>: Standard dla domów i mieszkań do 150 m², np. <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowa-kan-therm-bluepert-16x2-0/">rura PERT Kan-Therm BluePERT 16&#215;2</a>.</li>



<li><strong>20 mm</strong>: Dla większych obiektów, gdzie potrzebna jest większa przepustowość.</li>
</ul>



<h3 class="wp-block-heading">Rozstaw i zużycie rur.</h3>



<p class="wp-block-paragraph">Rozstaw rur zależy od strat ciepła:</p>



<ul class="wp-block-list">
<li><strong>5-10 cm</strong>: Przy ścianach zewnętrznych.</li>



<li><strong>10–15 cm</strong>: Standard w izolowanych pomieszczeniach (<a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur w ogrzewaniu podłogowym</a>).</li>



<li><strong>20-25 cm</strong>: W technicznych ( garaż, kotłownia) częściach domów.</li>
</ul>



<p class="wp-block-paragraph">Zużycie wynosi 6–10 m/m². Dla 30 m² z rozstawem 15 cm potrzeba 200–240 m rury. Skorzystaj z <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">kalkulatora zużycia rury</a>.</p>



<h3 class="wp-block-heading">Maksymalna długość pętli.</h3>



<p class="wp-block-paragraph">Pętla rury PERT 16 mm nie powinna przekraczać 100–120 m, aby uniknąć oporów hydraulicznych (<a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli</a>). Większe powierzchnie wymagają rozdzielacza.</p>



<h2 class="wp-block-heading">Dane techniczne rury PERT do ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> charakteryzuje się poniższymi parametrami technicznymi (na przykładzie standardowej rury 16&#215;2 mm):</p>



<ul class="wp-block-list">
<li><strong>Średnica zewnętrzna</strong>: 16 mm</li>



<li><strong>Grubość ścianki</strong>: 2 mm</li>



<li><strong>Średnica wewnętrzna</strong>: 12 mm</li>



<li><strong>Maksymalne ciśnienie robocze</strong>: 6–10 bar (w zależności od producenta)</li>



<li><strong>Maksymalna temperatura pracy</strong>: 95°C (krótkotrwale do 110°C)</li>



<li><strong>Minimalny promień gięcia</strong>: 5 x średnica zewnętrzna (ok. 80 mm)</li>



<li><strong>Współczynnik rozszerzalności liniowej</strong>: 0,18 mm/mK</li>



<li><strong>Warstwa antydyfuzyjna EVOH</strong>: tak (opcjonalnie w rurach PERT/EVOH i PERT/AL/PERT)</li>



<li><strong>Dostępne długości zwojów</strong>: 200 m, 400 m, 600 m</li>
</ul>



<p class="wp-block-paragraph">Rura spełnia wymagania normy <strong>EN ISO 15875</strong> dotyczącej systemów z tworzyw sztucznych do instalacji wodnych i grzewczych.</p>



<h2 class="wp-block-heading">Tabela porównawcza rur do ogrzewania podłogowego.</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Własność</strong></th><th><strong>Rura PERT</strong></th><th><strong>Rura PEX</strong></th><th><strong>Rura miedziana</strong></th></tr></thead><tbody><tr><td><strong>Materiał</strong></td><td>Polietylen termoplastyczny</td><td>Polietylen sieciowany</td><td>Miedź</td></tr><tr><td><strong>Elastyczność</strong></td><td>Wysoka, łatwy montaż</td><td>Średnia (PEX-B mniej elastyczny)</td><td>Niska, trudny montaż</td></tr><tr><td><strong>Waga</strong></td><td>Lekka</td><td>Średnia</td><td>Ciężka</td></tr><tr><td><strong>Odporność na temperaturę</strong></td><td>Do 95°C</td><td>Do 95°C</td><td>Do 200°C</td></tr><tr><td><strong>Koszt</strong></td><td>Średni, przystępny</td><td>Średni do wysokiego</td><td>Wysoki</td></tr><tr><td><strong>Zastosowanie</strong></td><td>Podłogówka, systemy niskotemperaturowe</td><td>Szerokie, w tym wysokie temperatury</td><td>Uniwersalne, droższe</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Koszty rur PERT – ile zapłacisz?</h2>



<p class="wp-block-paragraph">Koszt rury PERT zależy od marki i specyfikacji:</p>



<ul class="wp-block-list">
<li><strong>Rura PERT 16 mm</strong>: Ok. 4 zł/m (np. <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowe-tweetop-pert-ii-al-pert-ii-16x2/">rura Tweetop PERT</a>).</li>



<li><strong>Rura PERT 20 mm</strong>: Ok. 6 zł/m.</li>
</ul>



<p class="wp-block-paragraph">Dla domu 100 m² z rozstawem 15 cm potrzeba ok. 600–800 m rury, czyli koszt 2400–3200 zł. Dodatkowe akcesoria (spinki, rozdzielacze) to ok. 500–1000 zł. Skorzystaj z promocji na <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">darmowy projekt ogrzewania podłogowego</a> przy zakupie materiałów!</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego z rurami PERT.</h2>



<p class="wp-block-paragraph">Profesjonalny projekt to klucz do efektywności. Powinien uwzględniać:</p>



<ul class="wp-block-list">
<li><strong>Układ pętli</strong>: Ślimakowy dla równomiernego rozkładu ciepła.</li>



<li><strong>Straty ciepła</strong>: Zgodne z normą EN 1264.</li>



<li><strong>Rury</strong>: Wielowarstwowe PERT.</li>
</ul>



<p class="wp-block-paragraph">Zamów projekt na <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">projekt-ogrzewania.pl</a> i skorzystaj z darmowej oferty przy zakupie materiałów.</p>



<h2 class="wp-block-heading">Montaż rur PERT – praktyczne wskazówki.</h2>



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



<p class="wp-block-paragraph">Użyj:</p>



<ul class="wp-block-list">
<li><strong>Płyty EPS 100/200</strong>: Izolacja termiczna (<a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">płyta styropianowa EPS 100</a>).</li>



<li><strong>Folia z rastrem</strong>: Precyzyjne układanie pętli.</li>



<li><strong>Taśma przyscienna</strong>: Redukcja strat ciepła.</li>
</ul>



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



<ul class="wp-block-list">
<li>Zachowaj promień gięcia 80 mm dla rury 16 mm.</li>



<li>Użyj spinek do mocowania.</li>



<li>Wykonaj próbę szczelności.</li>
</ul>



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



<p class="wp-block-paragraph">Zalewaj rury wylewką anhydrytową/cementową (6,5–8 cm nad rurą). Szczegóły w <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodniku po wylewkach</a>.</p>



<h2 class="wp-block-heading">Przykłady zastosowań rur PERT.</h2>



<ol class="wp-block-list">
<li><strong>Dom 120 m²</strong>: Rury PERT 16 mm, rozstaw 15 cm, 2 pętle po 90 m na salon (30 m²). Zużycie: 800 m, koszt: 1600–3200 zł.</li>



<li><strong>Podgrzewany podjazd</strong>: Rury PERT 20 mm.</li>



<li><strong>Mieszkanie 60 m²</strong>: Jedna pętla 80 m, rozstaw 20 cm, koszt rur: 400–800 zł.</li>
</ol>



<h2 class="wp-block-heading">Trendy: Rury PERT w domach pasywnych.</h2>



<p class="wp-block-paragraph">Rury PERT są popularne w domach pasywnych dzięki niskotemperaturowym systemom grzewczym. Ich elastyczność i efektywność wspierają minimalizację strat energii.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1746344852167"><strong class="schema-faq-question">Czym różni się rura PERT od rury PEX w ogrzewaniu podłogowym?</strong> <p class="schema-faq-answer">Rura PERT jest bardziej elastyczna, ułatwiając montaż w układzie ślimakowym. Oba materiały są trwałe, ale PERT lepiej sprawdza się w niskotemperaturowych systemach, np. z pompami ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1746344863219"><strong class="schema-faq-question">Ile kosztuje rura PERT do ogrzewania podłogowego?</strong> <p class="schema-faq-answer">Koszt rury PERT 16 mm to ok. 2–4 zł/m, np. rura Kan-Therm BluePERT. Dla 100 m² potrzeba 600–800 m, czyli 2400–3200 zł.</p> </div> <div class="schema-faq-section" id="faq-question-1746344881236"><strong class="schema-faq-question">Jak dobrać średnicę rury PERT do instalacji?</strong> <p class="schema-faq-answer">Rura PERT 16 mm to standard dla domów do 150 m². Dla większych obiektów używa się rur 20 mm, zapewniających większą przepustowość.</p> </div> <div class="schema-faq-section" id="faq-question-1746344896829"><strong class="schema-faq-question">Ile rury PERT potrzeba na metr kwadratowy?</strong> <p class="schema-faq-answer">Zużycie wynosi 6–10 m/m², w zależności od rozstawu (10–25 cm). Dla 30 m² z rozstawem 15 cm potrzeba 200–240 m. Sprawdź <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">kalkulator</a> zużycia rury.</p> </div> <div class="schema-faq-section" id="faq-question-1746344941144"><strong class="schema-faq-question">Czy rura PERT wymaga projektu instalacji?</strong> <p class="schema-faq-answer">Tak, profesjonalny projekt optymalizuje rozmieszczenie pętli i efektywność. Zamów na projekt-ogrzewania.pl i zyskaj darmowy projekt przy zakupie!</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> to idealny wybór dla efektywnych i trwałych systemów grzewczych. Dzięki elastyczności, odporności na korozję i przystępnej cenie zapewnia komfort na lata. Zamów <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a> i projekt na <a href="https://projekt-ogrzewania.pl/">projekt-ogrzewania.pl</a> i skorzystaj z darmowego projektu przy zakupie materiałów!</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="0LjKCohBR1"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=C7AnipsQ9M#?secret=0LjKCohBR1" data-secret="0LjKCohBR1" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">Rura PERT do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej?</title>
		<link>https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/</link>
					<comments>https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 21 Mar 2025 09:38:38 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Rozdzielacze grzewcze]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[Wybór materiałów budowlanych]]></category>
		<category><![CDATA[Wybór materiałów do podłogówki]]></category>
		<category><![CDATA[efektywność grzewcza]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[mosiądz vs stal nierdzewna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz mosiężny]]></category>
		<category><![CDATA[rozdzielacz ze stali nierdzewnej]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<category><![CDATA[trwałość rozdzielacza]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2460</guid>

					<description><![CDATA[<p>Planujesz instalację ogrzewania podłogowego i zastanawiasz się, jaki rozdzielacz wybrać? W naszym artykule porównujemy rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej, analizując ich zalety, wady i zastosowanie. Dowiesz się, który materiał sprawdzi się w Twoim domu, jak wpływa na efektywność systemu i na co zwrócić uwagę przy wyborze. Sprawdź, jak podjąć najlepszą decyzję i zapewnij sobie komfort cieplny na lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">Rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-slate: #334155;
    --rk-intro-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #38bdf8;
    --rk-intro-green: #10b981;
    --rk-intro-green-bg: #dcfce7;
    --rk-intro-orange: #f97316;
}

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

/* Header & Hook */
.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-blue);
}

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

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

.rk-intro-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #e2e8f0;
    margin: 0;
    padding-left: 20px;
    border-left: 4px solid var(--rk-intro-accent);
}

.rk-intro-hook strong {
    color: #ffffff;
}

/* Interactive Navigation */
.rk-intro-nav {
    display: flex;
    background: var(--rk-intro-light);
    padding: 20px 50px 0 50px;
    border-bottom: 1px solid var(--rk-intro-border);
    gap: 15px;
}

.rk-intro-tab {
    padding: 15px 30px;
    background: transparent;
    border: 1px solid transparent;
    border-bottom: none;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-slate);
    cursor: pointer;
    border-radius: 12px 12px 0 0;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
}

.rk-intro-tab.active {
    background: #ffffff;
    color: var(--rk-intro-blue);
    border-color: var(--rk-intro-border);
    border-bottom: 1px solid #ffffff;
    margin-bottom: -1px;
}

.rk-intro-tab-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #e2e8f0;
    color: var(--rk-intro-slate);
    transition: all 0.3s ease;
}

.rk-intro-tab.active .rk-intro-tab-icon {
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
}

/* Panels */
.rk-intro-panels {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-intro-panel.active {
    display: block;
    animation: fadeIn 0.4s ease;
}

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

/* TLDR Layout */
.rk-tldr-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    align-items: center;
}

.rk-tldr-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-tldr-content p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-slate);
    margin: 0 0 15px 0;
}

.rk-tldr-content strong {
    color: var(--rk-intro-dark);
}

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

/* Static Visual Box */
.rk-static-visual {
    background: var(--rk-intro-light);
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
}

.rk-static-visual svg {
    margin-bottom: 15px;
}

.rk-visual-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

/* Tools Grid */
.rk-tools-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-tool-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 25px;
    border-radius: 16px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

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

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

/* Mobile */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-panels { padding: 30px 20px; }
    
    .rk-intro-nav { 
        flex-direction: column; 
        padding: 20px; 
        gap: 10px; 
    }
    .rk-intro-tab { 
        width: 100%; 
        padding: 15px 20px; 
        font-size: 15px; 
        border-radius: 12px; 
        border: 1px solid var(--rk-intro-border); 
        justify-content: flex-start;
    }
    .rk-intro-tab.active {
        border: 2px solid var(--rk-intro-blue);
        margin-bottom: 0;
        box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
    }
    
    .rk-tldr-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-tools-grid { grid-template-columns: 1fr; }
    .rk-intro-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej?",
    "description": "Inżynierski przewodnik z interaktywnymi narzędziami. Poznaj szybką odpowiedź eksperta: dlaczego stal nierdzewna AISI 304 wygrywa z mosiądzem w systemach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-wstep",
    "name": "Wprowadzenie do analizy rozdzielaczy i narzędzi diagnostycznych",
    "description": "Zbiór metadanych organizujących strukturę kompendium o materiałach rozdzielaczy, zawierający podsumowanie (Szybka Odpowiedź) oraz wykaz dostępnych symulatorów inżynierskich.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej",
      "jaki rozdzielacz do podłogówki 2026",
      "wylewka na ogrzewanie podłogowe a rozdzielacz",
      "pompa ciepła a stal nierdzewna",
      "kalkulator ogrzewania podłogowego"
    ],
    "measurementTechnique": "Agregacja wniosków z 1000 zrealizowanych instalacji OZC oraz prezentacja funkcjonalności interaktywnych modułów obliczeniowych w obrębie publikacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Werdykt główny: 90% instalacji z pompą ciepła wymaga stali nierdzewnej AISI 304.",
        "Moduł 1: Interaktywny kalkulator hydrauliki i spadków ciśnienia.",
        "Moduł 2: Symulator chemicznej degradacji glikolu i mosiądzu.",
        "Moduł 3: Baza skanerów 10 najczęstszych błędów montażowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-wstep",
    "name": "Nawigator Kompendium HVAC",
    "description": "Interfejs wprowadzający pozwalający czytelnikowi na natychmiastowe zapoznanie się ze zwięzłym werdyktem eksperta lub przegląd dostępnych w artykule symulatorów inżynierskich.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rozdzielacz-wstep-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Inżynierskie Kompendium
        </div>
        <h2>Rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej?</h2>
        
        <div class="rk-intro-hook">
            <strong>Wylewka betonowa wybacza wiele, ale korodująca belka rozdzielacza nie wybacza niczego.</strong> Błędny wybór materiału zbrojeniowego kotłowni to tykająca bomba zegarowa, która prowadzi do spadku sprawności układu i kosztownych wycieków pod posadzką. Czas poznać fakty oparte na normach PN-EN.
        </div>
    </div>

    <div class="rk-intro-nav" id="introNav">
        <button class="rk-intro-tab active" data-target="panelTools">
            <div class="rk-intro-tab-icon">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"></path></svg>
            </div>
            Co odkryjesz dalej w artykule?
        </button>
        <button class="rk-intro-tab" data-target="panelTldr">
            <div class="rk-intro-tab-icon">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            </div>
            Szybka odpowiedź
        </button>
    </div>

    <div class="rk-intro-panels">
        
        <div class="rk-intro-panel active" id="panelTools">
            <div class="rk-tldr-content">
                <h3>To nie jest zwykły wpis na blogu</h3>
                <p>
                    Ten materiał został zaprojektowany jako <strong>interaktywne środowisko obliczeniowe</strong>. Zanim zalejesz <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a>, musisz mieć 100% pewności co do wybranych komponentów. Przewijając ten artykuł w dół, otrzymasz dostęp do profesjonalnych narzędzi, które pomogą Ci podjąć świadomą decyzję:
                </p>
            </div>
            
            <div class="rk-tools-grid">
                <div class="rk-tool-card">
                    <div class="rk-tool-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    <h4>Kalkulatory Hydrauliczne</h4>
                    <p>Interaktywne modele wyliczające strumień objętościowy i opory belek dla pomp ciepła.</p>
                </div>
                <div class="rk-tool-card">
                    <div class="rk-tool-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <h4>Skaner Błędów</h4>
                    <p>Baza krytycznych pomyłek montażowych z wizualizacjami (odcynkowanie, błędy rotametrów).</p>
                </div>
                <div class="rk-tool-card">
                    <div class="rk-tool-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                    </div>
                    <h4>Symulator Glikolu</h4>
                    <p>Wizualizacja reakcji chemicznych metali na degradujący się w czasie płyn antyzamrożeniowy.</p>
                </div>
            </div>
        </div>

        <div class="rk-intro-panel" id="panelTldr">
            <div class="rk-tldr-grid">
                <div class="rk-tldr-content">
                    <h3>Techniczny werdykt na 2026 rok</h3>
                    <p>
                        Zastanawiasz się <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak prawidłowo zaplanować działanie ogrzewania podłogowego</a>? Zacznij od najważniejszego elementu. W <strong>90% nowoczesnych instalacji</strong> zasilanych przez <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompę ciepła</a>, bezapelacyjnym zwycięzcą jest <strong>rozdzielacz ze stali nierdzewnej</strong> (min. AISI 304).
                    </p>
                    <p>
                        Dlaczego? Stal nierdzewna gwarantuje tłoczony profil (najczęściej DN32), który generuje nawet o 20% mniejsze opory hydrauliczne niż ciasne, odlewane korpusy mosiężne. To bezpośrednio odciąża pompę obiegową. Ponadto stal jest w pełni pasywna chemicznie – całkowicie odporna na żrące właściwości starzejącego się glikolu oraz agresywną wodę demineralizowaną. Mosiądz (nawet z powłoką niklową) to opcja budżetowa, tolerancyjna wyłącznie na idealnie zbuforowaną wodę.
                    </p>
                </div>
                
                <div class="rk-static-visual">
                    <svg width="120" height="120" viewBox="0 0 100 100" fill="none">
                        <circle cx="50" cy="50" r="40" stroke="#0284c7" stroke-width="8" fill="#e0f2fe"></circle>
                        <polyline points="35 50 45 60 65 35" stroke="#0284c7" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"></polyline>
                    </svg>
                    <div class="rk-visual-label">Stal Nierdzewna (AISI 304)<br><span style="color: #10b981;">Wybór Rekomendowany</span></div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
(function() {
    function initIntroTabs() {
        const tabs = document.querySelectorAll('#introNav .rk-intro-tab');
        const panels = document.querySelectorAll('.rk-intro-panels .rk-intro-panel');

        if(tabs.length === 0 || panels.length === 0) return;

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

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

                // Show target panel
                const targetId = this.getAttribute('data-target');
                const targetPanel = document.getElementById(targetId);
                if(targetPanel) {
                    targetPanel.classList.add('active');
                }
            });
        });
    }

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



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-slate: #334155;
    --rk-mat-light: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-blue: #0284c7;
    --rk-mat-blue-bg: #e0f2fe;
    --rk-mat-accent: #38bdf8;
    --rk-mat-steel: #94a3b8;
    --rk-mat-brass: #d97706;
    --rk-mat-brass-bg: #fef3c7;
    --rk-mat-green: #10b981;
}

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

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

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

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

.rk-mat-intro {
    background: rgba(255,255,255,0.05);
    border-left: 4px solid var(--rk-mat-accent);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    font-size: 16px;
    line-height: 1.7;
    color: #e2e8f0;
    margin: 0;
}

.rk-mat-intro strong {
    color: #ffffff;
}

/* Main Dashboard Area */
.rk-mat-dashboard {
    padding: 40px 50px;
    background: var(--rk-mat-light);
}

.rk-mat-subtitle {
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin: 0 0 25px 0;
}

/* Toggles */
.rk-mat-toggles {
    display: flex;
    background: #e2e8f0 !important;
    border-radius: 100px;
    padding: 6px;
    max-width: 500px;
    margin: 0 auto 30px auto;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-mat-btn {
    flex: 1;
    padding: 14px 20px !important;
    border-radius: 100px !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    z-index: 2 !important;
    color: var(--rk-mat-slate) !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.rk-mat-btn.active-steel, .rk-mat-btn.active-brass {
    color: #ffffff !important;
}

.rk-mat-selector {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    height: calc(100% - 12px) !important;
    width: calc(50% - 6px) !important;
    border-radius: 100px !important;
    background: var(--rk-mat-blue) !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15) !important;
    z-index: 1 !important;
}

.rk-mat-selector.pos-brass {
    transform: translateX(100%) !important;
    background: var(--rk-mat-brass) !important;
}

/* Visualization */
.rk-mat-visualizer {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

.rk-svg-wrapper {
    width: 250px;
    height: 250px;
    position: relative;
}

.rk-svg-pipe {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    fill: none;
}

.state-steel .rk-svg-pipe {
    stroke: #94a3b8;
    stroke-width: 8;
}

.state-brass .rk-svg-pipe {
    stroke: #d97706;
    stroke-width: 22; /* Thicker wall = smaller internal diameter */
}

.rk-svg-water {
    fill: #38bdf8;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.state-steel .rk-svg-water { r: 90; }
.state-brass .rk-svg-water { r: 76; }

.rk-zinc-particle {
    fill: #fef08a;
    opacity: 0;
    transition: all 0.5s;
}

.state-brass .rk-zinc-particle {
    opacity: 1;
    animation: floatParticle 3s infinite ease-in-out;
}

@keyframes floatParticle {
    0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
    50% { transform: translate(10px, -15px) scale(1.5); opacity: 0.2; }
    100% { transform: translate(20px, -30px) scale(0.5); opacity: 0; }
}

/* Comparison Cards */
.rk-mat-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-mat-card {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.3s;
}

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

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

.rk-mat-card h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-mat-card p {
    font-size: 14px;
    color: var(--rk-mat-slate);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

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

.rk-mat-dynamic-val {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    transition: all 0.3s;
}

.state-steel .val-diam { background: var(--rk-mat-blue-bg); color: var(--rk-mat-blue); }
.state-brass .val-diam { background: var(--rk-mat-brass-bg); color: var(--rk-mat-brass); }

.state-steel .val-cor { background: #dcfce7; color: #065f46; }
.state-brass .val-cor { background: #fef2f2; color: #991b1b; }

.state-steel .val-auto { background: #dcfce7; color: #065f46; }
.state-brass .val-auto { background: var(--rk-mat-brass-bg); color: var(--rk-mat-brass); }

/* Mobile */
@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-dashboard { padding: 30px 20px; }
    .rk-mat-cards { grid-template-columns: 1fr; }
    .rk-mat-toggles { flex-direction: column; border-radius: 16px; }
    .rk-mat-selector { width: calc(100% - 12px) !important; height: calc(50% - 6px) !important; border-radius: 12px !important; }
    .rk-mat-selector.pos-brass { transform: translateY(100%) !important; left: 6px !important; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-wybor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Jaki rozdzielacz do ogrzewania podłogowego wybrać – mosiężny czy ze stali nierdzewnej?",
    "description": "Bezpośrednia odpowiedź inżynierska: dlaczego w 90% instalacji z pompą ciepła wygrywa stal nierdzewna AISI 304. Analiza średnicy DN25 vs DN32 i zjawiska odcynkowania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-wybor",
    "name": "Analiza Materiałowa Rozdzielaczy HVAC: Stal vs Mosiądz",
    "description": "Porównanie parametrów hydraulicznych i chemicznych wpływających na wybór komponentu głównego dla instalacji płaszczyznowych zgodnych z PN-EN 1264-4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozdzielacz ze stali nierdzewnej czy mosiężny",
      "współczynnik przepływu Kv rozdzielacza",
      "odcynkowanie mosiądzu podłogówka",
      "średnica wewnętrzna belki rozdzielacza",
      "siłowniki termoelektryczne na rozdzielaczach"
    ],
    "measurementTechnique": "Analiza przekrojów wewnętrznych belek odlewanych (1 cal) względem tłoczonych z profilu (1 1/4 cala) oraz pasywności chemicznej stopów w wodzie instalacyjnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stal AISI 304: Współczynnik przepływu Kv o 20% wyższy, pełna kompatybilność z glikolem.",
        "Mosiądz CW617N: Niższa cena zakupu, ale mniejszy przekrój wewnętrzny (1\") zwiększający opory.",
        "Zjawisko odcynkowania: Degradacja mosiądzu w nieodpowiednim pH wody."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-wybor",
    "name": "Eksplorator Parametrów Rozdzielacza",
    "description": "Interaktywny panel zestawiający średnice wewnętrzne, stabilność wymiarową oraz odporność na odcynkowanie w rozdzielaczach mosiężnych i stalowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rozdzielacz-wybor-app">
    <div class="rk-mat-header">
        <div class="rk-mat-badge">Wybór Eksperta</div>
        <h2>Jaki rozdzielacz do ogrzewania podłogowego wybrać – mosiężny czy ze stali nierdzewnej?</h2>
        
        <div class="rk-mat-intro">
            <strong>Bezpośrednia odpowiedź brzmi:</strong> W 90% nowoczesnych instalacji z pompą ciepła lepszym wyborem jest <strong>rozdzielacz ze stali nierdzewnej</strong> o gatunku minimum AISI 304 (X5CrNi18-10). Zapewnia on o 20% wyższy współczynnik przepływu (Kv) w stosunku do mosiądzu i jest w pełni kompatybilny z glikolem oraz wodą demineralizowaną zgodnie z normą PN-EN 1264-4.
            <br><br>
            Rozdzielacz mosiężny (stop CW617N/CW614N) to dopuszczalna, tańsza alternatywa, która jednak ustępuje stali pod względem średnicy wewnętrznej oraz odporności na degradację chemiczną.
        </div>
    </div>

    <div class="rk-mat-dashboard">
        <h3 class="rk-mat-subtitle">Skutki hydrauliczne i eksploatacyjne (Wizualizacja)</h3>
        
        <div class="rk-mat-toggles">
            <div class="rk-mat-selector" id="matSelector"></div>
            <button class="rk-mat-btn active-steel" data-mat="steel" id="btnWybSteel">Stal Nierdzewna (AISI 304)</button>
            <button class="rk-mat-btn" data-mat="brass" id="btnWybBrass">Mosiądz (Odlew CW617N)</button>
        </div>

        <div class="rk-mat-visualizer">
            <div class="rk-svg-wrapper state-steel" id="matVisualWrapper">
                <svg width="250" height="250" viewBox="0 0 200 200">
                    <circle cx="100" cy="100" r="90" class="rk-svg-water" id="animWater" />
                    <circle cx="100" cy="100" r="95" class="rk-svg-pipe" id="animPipe" />
                    
                    <circle cx="90" cy="50" r="3" class="rk-zinc-particle" style="animation-delay: 0.1s" />
                    <circle cx="150" cy="80" r="2.5" class="rk-zinc-particle" style="animation-delay: 0.7s" />
                    <circle cx="110" cy="160" r="4" class="rk-zinc-particle" style="animation-delay: 1.2s" />
                    <circle cx="50" cy="120" r="3" class="rk-zinc-particle" style="animation-delay: 0.4s" />
                    <circle cx="130" cy="110" r="2" class="rk-zinc-particle" style="animation-delay: 1.5s" />
                </svg>
            </div>
        </div>

        <div class="rk-mat-cards state-steel" id="matCardsWrapper">
            <div class="rk-mat-card">
                <div class="rk-mat-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle></svg>
                </div>
                <h3>Średnica wewnętrzna i opory</h3>
                <p>Belka stalowa tłoczona z profilu posiada większą przestrzeń wewnętrzną niż odlewana belka mosiężna. Oznacza to mniejszą prędkość liniową i mniejsze opory.</p>
                <div class="rk-mat-dynamic-val val-diam" id="dynDiam">Profil: 1 1/4&#8243; (DN32)</div>
            </div>

            <div class="rk-mat-card">
                <div class="rk-mat-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3>Zjawisko odcynkowania</h3>
                <p>Tani materiał w kontakcie z wodą o niedostosowanym pH podlega wymywaniu cynku, co prowadzi do pęknięć korpusu i degradacji wrażliwych gwintów.</p>
                <div class="rk-mat-dynamic-val val-cor" id="dynCor">Pełna pasywność chemiczna</div>
            </div>

            <div class="rk-mat-card">
                <div class="rk-mat-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <h3>Współpraca z automatyką</h3>
                <p>Stabilność wymiarowa przy cyklicznych zmianach temperatur ma kluczowe znaczenie dla precyzji pracy iglic, na których montuje się <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach">siłowniki termoelektryczne na rozdzielaczach</a>.</p>
                <div class="rk-mat-dynamic-val val-auto" id="dynAuto">Wysoka stabilność (Brak odkształceń)</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSteel = document.getElementById('btnWybSteel');
    const btnBrass = document.getElementById('btnWybBrass');
    const selector = document.getElementById('matSelector');
    const visualWrapper = document.getElementById('matVisualWrapper');
    const cardsWrapper = document.getElementById('matCardsWrapper');
    
    // Dynamic text elements
    const dynDiam = document.getElementById('dynDiam');
    const dynCor = document.getElementById('dynCor');
    const dynAuto = document.getElementById('dynAuto');

    function selectSteel() {
        // Classes
        btnSteel.classList.add('active-steel');
        btnBrass.classList.remove('active-brass');
        selector.classList.remove('pos-brass');
        visualWrapper.className = 'rk-svg-wrapper state-steel';
        cardsWrapper.className = 'rk-mat-cards state-steel';
        
        // Data
        dynDiam.textContent = 'Profil: 1 1/4" (DN32) -> Niskie opory';
        dynCor.textContent = 'Pełna pasywność chemiczna';
        dynAuto.textContent = 'Wysoka stabilność (Brak odkształceń)';
    }

    function selectBrass() {
        // Classes
        btnBrass.classList.add('active-brass');
        btnSteel.classList.remove('active-steel');
        selector.classList.add('pos-brass');
        visualWrapper.className = 'rk-svg-wrapper state-brass';
        cardsWrapper.className = 'rk-mat-cards state-brass';
        
        // Data
        dynDiam.textContent = 'Profil: 1" (DN25) -> Większe opory';
        dynCor.textContent = 'Ryzyko odcynkowania przy złym pH';
        dynAuto.textContent = 'Większa rozszerzalność cieplna';
    }

    btnSteel.addEventListener('click', selectSteel);
    btnBrass.addEventListener('click', selectBrass);
});
</script>



<style>
:root {
    --rk-glycol-dark: #0f172a;
    --rk-glycol-slate: #334155;
    --rk-glycol-light: #f8fafc;
    --rk-glycol-border: #e2e8f0;
    --rk-glycol-blue: #0284c7;
    --rk-glycol-blue-bg: #e0f2fe;
    --rk-glycol-green: #10b981;
    --rk-glycol-green-bg: #dcfce7;
    --rk-glycol-red: #ef4444;
    --rk-glycol-red-bg: #fef2f2;
    --rk-glycol-brass: #d97706;
    --rk-glycol-steel: #94a3b8;
    --rk-glycol-accent: #38bdf8;
}

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

/* Header */
.rk-glycol-header {
    background: linear-gradient(135deg, var(--rk-glycol-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

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

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

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

/* Simulator Section */
.rk-glycol-app {
    display: grid;
    grid-template-columns: 350px 1fr;
    border-bottom: 1px solid var(--rk-glycol-border);
}

/* Left Panel - Controls */
.rk-glycol-controls {
    background: var(--rk-glycol-light);
    padding: 30px;
    border-right: 1px solid var(--rk-glycol-border);
}

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

.rk-glycol-label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-glycol-dark);
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Toggles */
.rk-glycol-toggles {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-mat-btn {
    padding: 14px 20px;
    border-radius: 12px;
    border: 2px solid var(--rk-glycol-border);
    background: #ffffff;
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-glycol-slate);
    cursor: pointer;
    transition: all 0.3s;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-mat-btn:hover {
    border-color: #cbd5e1;
}

.rk-mat-btn.active[data-mat="steel"] {
    border-color: var(--rk-glycol-blue);
    background: var(--rk-glycol-blue-bg);
    color: #0369a1;
}

.rk-mat-btn.active[data-mat="brass"] {
    border-color: var(--rk-glycol-brass);
    background: #fef3c7;
    color: #92400e;
}

.rk-mat-icon {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 3px solid currentColor;
    opacity: 0.5;
}
.rk-mat-btn.active .rk-mat-icon { opacity: 1; background: currentColor; }

/* Slider */
.rk-slider-wrap {
    margin-top: 10px;
}

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

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

.rk-val-display {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-glycol-border);
    padding: 12px 15px;
    border-radius: 12px;
}

.rk-val-num {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-glycol-blue);
}

/* Right Panel - Display */
.rk-glycol-display {
    padding: 30px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

.rk-gl-visual {
    height: 200px;
    background: var(--rk-glycol-light);
    border-radius: 16px;
    border: 1px solid var(--rk-glycol-border);
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* SVG Pipes & Fluids */
.rk-pipe-top, .rk-pipe-bottom {
    transition: all 0.5s;
    fill: #cbd5e1;
}

.rk-fluid {
    stroke-dasharray: 20 40;
    animation: flowLiquid 1s linear infinite;
    stroke-linecap: round;
    transition: all 0.5s;
}

@keyframes flowLiquid {
    to { stroke-dashoffset: -60; }
}

.rk-corrosion-spot {
    fill: #ef4444;
    opacity: 0;
    transition: opacity 0.5s;
}

/* Data Cards */
.rk-gl-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-gl-card {
    border: 1px solid var(--rk-glycol-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s;
}

.rk-gl-card-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-glycol-slate);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-gl-card-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-glycol-dark);
}

.rk-gl-card-sub {
    font-size: 13px;
    font-weight: 600;
    margin-top: 5px;
}

/* Content Article */
.rk-glycol-content {
    padding: 40px 50px;
}

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

.rk-glycol-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-glycol-slate);
    margin: 0 0 20px 0;
}

.rk-glycol-content strong {
    color: var(--rk-glycol-dark);
}

.rk-glycol-content a {
    color: var(--rk-glycol-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-glycol-content a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
    background: var(--rk-glycol-blue-bg);
}

.rk-gl-math {
    background: #f1f5f9;
    padding: 20px 25px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-glycol-blue);
    margin: 25px 0;
    font-family: monospace;
    font-size: 14px;
    color: #0f172a;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-glycol-header, .rk-glycol-content { padding: 30px 20px; }
    .rk-glycol-app { grid-template-columns: 1fr; }
    .rk-glycol-controls, .rk-glycol-display { padding: 25px 20px; border-right: none; }
    .rk-gl-stats { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-glikol",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Dlaczego stal nierdzewna AISI 304 jest standardem w instalacjach z glikolem?",
    "description": "Zobacz, jak spadek pH glikolu niszczy mosiądz i dlaczego niższa pojemność cieplna glikolu wymusza stosowanie belek o większym przepływie ze stali nierdzewnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-glikol",
    "name": "Parametry degradacji glikolu i oporów hydraulicznych",
    "description": "Wpływ starzenia glikolu na mosiądz i stal AISI 304, spadek pH w czasie oraz różnice w pojemności cieplnej wymuszające wyższe przepływy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "stal nierdzewna a glikol",
      "pojemność cieplna glikolu propylenowego",
      "degradacja mosiądzu spadek pH",
      "podgrzewane podjazdy glikol",
      "norma PN-EN 1264-4 armatura"
    ],
    "measurementTechnique": "Analiza zmian pH roztworu glikolu w 15-letnim cyklu pracy oraz kompensacja hydrauliczna ze względu na ciepło właściwe czynnika.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność cieplna glikolu: cp = 2,5 kJ/(kg·K).",
        "Pojemność cieplna wody: cp = 4,19 kJ/(kg·K).",
        "Konieczny wzrost przepływu dla glikolu: +15-20%.",
        "Granica degradacji mosiądzu: pH < 7.0 (zakwaszenie)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-glikol",
    "name": "Symulator Degradacji Glikolowej",
    "description": "Interaktywne narzędzie obrazujące wpływ spadku pH glikolu (starzenie czynnika) na mosiądz oraz wymuszone wyższe opory przepływu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-glycol-container" id="rozdzielacz-glikol-app">
    <div class="rk-glycol-header">
        <div class="rk-glycol-badge">Symulator Glikolowy</div>
        <h2>Dlaczego stal nierdzewna AISI 304 jest standardem w instalacjach z glikolem?</h2>
        <p>Zabójcze środowisko dla armatury. Zobacz, jak czas i proces degradacji termicznej glikolu niszczą mosiądz od środka.</p>
    </div>

    <div class="rk-glycol-app">
        <div class="rk-glycol-controls">
            <div class="rk-glycol-ctrl-group">
                <label class="rk-glycol-label">1. Materiał Rozdzielacza</label>
                <div class="rk-glycol-toggles">
                    <button class="rk-mat-btn active" data-mat="steel" id="btnGlikolSteel">
                        <div class="rk-mat-icon"></div>
                        Stal Nierdzewna (AISI 304)
                    </button>
                    <button class="rk-mat-btn" data-mat="brass" id="btnGlikolBrass">
                        <div class="rk-mat-icon"></div>
                        Mosiądz Odlew (CW617N)
                    </button>
                </div>
            </div>

            <div class="rk-glycol-ctrl-group">
                <label class="rk-glycol-label">2. Czas pracy instalacji (Lata)</label>
                <div class="rk-slider-wrap">
                    <input type="range" min="0" max="15" step="1" value="0" class="rk-gl-slider" id="sliderYears">
                    <div class="rk-val-display">
                        <span style="font-size:14px; color:var(--rk-glycol-slate); font-weight:700;">Wiek zładu:</span>
                        <span class="rk-val-num" id="valYears">0 lat</span>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-glycol-display">
            <div class="rk-gl-visual">
                <svg width="100%" height="150" viewBox="0 0 400 150" fill="none">
                    <rect id="svgPipeTop" x="20" y="20" width="360" height="20" class="rk-pipe-top"/>
                    <rect id="svgPipeBot" x="20" y="110" width="360" height="20" class="rk-pipe-bottom"/>
                    
                    <circle cx="100" cy="115" r="8" class="rk-corrosion-spot" />
                    <circle cx="180" cy="35" r="10" class="rk-corrosion-spot" />
                    <circle cx="260" cy="110" r="12" class="rk-corrosion-spot" />
                    <circle cx="320" cy="38" r="7" class="rk-corrosion-spot" />

                    <path id="svgFluid1" class="rk-fluid" stroke="#0ea5e9" stroke-width="6" d="M 0,60 L 400,60" />
                    <path id="svgFluid2" class="rk-fluid" stroke="#38bdf8" stroke-width="12" d="M 0,85 L 400,85" />
                </svg>
            </div>

            <div class="rk-gl-stats">
                <div class="rk-gl-card" id="cardPh">
                    <div class="rk-gl-card-title">Poziom pH Glikolu</div>
                    <div class="rk-gl-card-val" id="valPh">8.5</div>
                    <div class="rk-gl-card-sub" id="subPh" style="color: var(--rk-glycol-green);">Lekko zasadowy (Norma)</div>
                </div>
                <div class="rk-gl-card" id="cardStatus">
                    <div class="rk-gl-card-title">Stan Armatury</div>
                    <div class="rk-gl-card-val" id="valStatus" style="color: var(--rk-glycol-blue);">Pasywna</div>
                    <div class="rk-gl-card-sub" id="subStatus">Brak reakcji chemicznej</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-glycol-content">
        <h3>Degradacja chemiczna a pasywność materiału</h3>
        <p>
            Stal nierdzewna gatunku <strong>AISI 304 (1.4301)</strong> wykazuje absolutną odporność na kwas glikolowy – naturalny produkt degradacji termicznej glikolu – co bezpośrednio potwierdzają wytyczne normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264-4</a> w zakresie minimalnej odporności chemicznej armatury. 
        </p>
        <p>
            Roztwory glikolu propylenowego stosowane w układach antyzamrożeniowych wykazują silną tendencję do obniżania pH wraz z upływem lat (tzw. zakwaszanie). Gdy pH spada poniżej 7.0, kwas niszczy warstwę cynkową w mosiądzu (proces odcynkowania), osłabiając korpus. Podczas tych samych procesów, stal nierdzewna pozostaje <strong>w pełni pasywna</strong>.
        </p>

        <h3>Większy strumień to większa erozja</h3>
        <p>
            Drugim potężnym wyzwaniem jest termodynamika czynnika. Glikol posiada znacznie niższą pojemność cieplną właściwą (c<sub>p</sub>) niż czysta woda, co jest kluczowe podczas projektowania instalacji opartych o <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">glikol w ogrzewaniu podłogowym</a>.
        </p>

        <div class="rk-gl-math">
            <strong>Pojemność cieplna właściwa (c<sub>p</sub>):</strong><br>
            Woda: c<sub>p</sub> = 4,19 kJ/(kg·K)<br>
            Glikol: c<sub>p</sub> = 2,50 kJ/(kg·K)
        </div>

        <p>
            Ta fizyczna różnica wymusza <strong>zwiększenie strumienia masy cieczy o około 15-20%</strong> w celu przeniesienia tej samej mocy termicznej do pętli. Wyższy strumień objętościowy generuje wyższe prędkości liniowe wewnątrz belki rozdzielacza. Stal nierdzewna AISI 304 wykazuje wielokrotnie wyższą odporność na <strong>erozję kawitacyjną i ścieranie</strong> wywołane mikrozanieczyszczeniami poruszającymi się z dużą prędkością niż miękki mosiądz.
        </p>

        <h3>Zastosowania specjalne – werdykt</h3>
        <p>
            Jeśli realizujesz systemy specjalne, takie jak <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/">podgrzewane podjazdy, chodniki, parkingi i tarasy</a>, gdzie medium roboczym jest wyłącznie roztwór glikolu, zastosowanie rozdzielacza mosiężnego drastycznie skraca czas bezawaryjnej pracy całego układu.
        </p>
        <p>
            Agresywne środowisko zewnętrznej szafki rozdzielaczowej (zmienna wilgoć, sól drogowa nanoszona na obuwiu) również przemawia za absolutną dominacją stali szlachetnej, która w przeciwieństwie do mosiądzu nie pokrywa się patyną ani korozyjną śniedzią, zachowując estetykę i szczelność na pokolenia.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSteel = document.getElementById('btnGlikolSteel');
    const btnBrass = document.getElementById('btnGlikolBrass');
    const slider = document.getElementById('sliderYears');
    const valYears = document.getElementById('valYears');
    
    // SVG Elements
    const pipeTop = document.getElementById('svgPipeTop');
    const pipeBot = document.getElementById('svgPipeBot');
    const corrosionSpots = document.querySelectorAll('.rk-corrosion-spot');
    const fluid1 = document.getElementById('svgFluid1');
    const fluid2 = document.getElementById('svgFluid2');
    
    // Stats Elements
    const valPh = document.getElementById('valPh');
    const subPh = document.getElementById('subPh');
    const valStatus = document.getElementById('valStatus');
    const subStatus = document.getElementById('subStatus');
    const cardPh = document.getElementById('cardPh');
    const cardStatus = document.getElementById('cardStatus');

    let currentMaterial = 'steel';
    let currentYears = 0;

    function updateSim() {
        currentYears = parseInt(slider.value);
        valYears.textContent = currentYears + (currentYears === 1 ? " rok" : (currentYears >= 2 && currentYears <= 4 ? " lata" : " lat"));

        // pH drops over time (8.5 -> ~6.25 at 15 years)
        const ph = (8.5 - (currentYears * 0.15)).toFixed(1);
        valPh.textContent = ph;

        if(ph > 7.5) {
            subPh.textContent = "Zasadowy (Optymalny)";
            subPh.style.color = "var(--rk-glycol-green)";
            cardPh.style.borderColor = "var(--rk-glycol-border)";
            cardPh.style.backgroundColor = "transparent";
            
            // Fluid is clean blue
            fluid1.setAttribute('stroke', '#0ea5e9');
            fluid2.setAttribute('stroke', '#38bdf8');
        } else if (ph >= 7.0) {
            subPh.textContent = "Obojętny (Ostrzeżenie)";
            subPh.style.color = "#d97706";
            cardPh.style.borderColor = "#fcd34d";
            cardPh.style.backgroundColor = "#fef3c7";
            
            // Fluid gets slightly dirty
            fluid1.setAttribute('stroke', '#0284c7');
            fluid2.setAttribute('stroke', '#0ea5e9');
        } else {
            subPh.textContent = "Kwaśny (Degradacja)";
            subPh.style.color = "var(--rk-glycol-red)";
            cardPh.style.borderColor = "#fca5a5";
            cardPh.style.backgroundColor = "#fef2f2";
            
            // Fluid gets dark/acidic
            fluid1.setAttribute('stroke', '#1e293b');
            fluid2.setAttribute('stroke', '#475569');
        }

        // Material specific updates
        if(currentMaterial === 'steel') {
            pipeTop.style.fill = '#cbd5e1';
            pipeBot.style.fill = '#cbd5e1';
            
            valStatus.textContent = "Pasywna";
            valStatus.style.color = "var(--rk-glycol-blue)";
            subStatus.textContent = "Stal odporna na spadek pH";
            cardStatus.style.borderColor = "var(--rk-glycol-border)";
            cardStatus.style.backgroundColor = "transparent";

            corrosionSpots.forEach(spot => spot.style.opacity = '0');

        } else {
            // Brass
            pipeTop.style.fill = '#fde68a'; // Base brass
            pipeBot.style.fill = '#fde68a';
            
            if(ph < 7.0) {
                // Corrosion kicks in
                valStatus.textContent = "Odcynkowanie!";
                valStatus.style.color = "var(--rk-glycol-red)";
                subStatus.textContent = "Mikropęknięcia korpusu";
                cardStatus.style.borderColor = "#fca5a5";
                cardStatus.style.backgroundColor = "#fef2f2";
                
                // Show corrosion
                const opacityLevel = (7.0 - ph) / 1.0; // scale 0 to 1
                corrosionSpots.forEach(spot => spot.style.opacity = Math.min(opacityLevel, 1).toString());
                
                // Darken brass
                pipeTop.style.fill = '#d97706';
                pipeBot.style.fill = '#d97706';
            } else {
                valStatus.textContent = "Narażona";
                valStatus.style.color = "#d97706";
                subStatus.textContent = "Mosiądz reaguje z kwasem";
                cardStatus.style.borderColor = "var(--rk-glycol-border)";
                cardStatus.style.backgroundColor = "transparent";
                
                corrosionSpots.forEach(spot => spot.style.opacity = '0');
            }
        }
    }

    btnSteel.addEventListener('click', function() {
        btnSteel.classList.add('active');
        btnBrass.classList.remove('active');
        currentMaterial = 'steel';
        updateSim();
    });

    btnBrass.addEventListener('click', function() {
        btnBrass.classList.add('active');
        btnSteel.classList.remove('active');
        currentMaterial = 'brass';
        updateSim();
    });

    slider.addEventListener('input', updateSim);

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



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-slate: #334155;
    --rk-flow-light: #f8fafc;
    --rk-flow-border: #e2e8f0;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #e0f2fe;
    --rk-flow-green: #10b981;
    --rk-flow-green-bg: #dcfce7;
    --rk-flow-brass: #d97706;
    --rk-flow-brass-bg: #fef3c7;
    --rk-flow-accent: #38bdf8;
    --rk-flow-red: #ef4444;
}

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

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

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

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

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

/* Interactive Dashboard */
.rk-flow-dashboard {
    padding: 40px 50px;
    background: var(--rk-flow-light);
    border-bottom: 1px solid var(--rk-flow-border);
}

/* Toggles */
.rk-flow-toggles {
    display: flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-flow-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    color: var(--rk-flow-slate);
    border: none;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.rk-flow-toggle-sub {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.8;
}

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

.rk-flow-selector {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    border-radius: 12px;
    background: var(--rk-flow-blue);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    z-index: 1;
}

.rk-flow-selector.pos-brass {
    transform: translateX(100%);
    background: var(--rk-flow-brass);
}

/* Visualization Panel */
.rk-flow-visual-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-flow-border);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-flow-svg-container {
    width: 100%;
    max-width: 500px;
    height: 180px;
    position: relative;
    margin-bottom: 30px;
}

/* SVG Elements & Animations */
.pipe-wall {
    transition: all 0.5s ease;
    stroke-width: 8;
    fill: none;
}
.state-steel .pipe-wall { stroke: #cbd5e1; d: path('M 0,20 L 500,20 M 0,160 L 500,160'); }
.state-brass .pipe-wall { stroke: #d97706; d: path('M 0,30 Q 50,40 100,30 T 200,30 T 300,40 T 400,25 T 500,35 M 0,150 Q 50,140 100,150 T 200,150 T 300,140 T 400,155 T 500,145'); }

.water-flow {
    stroke: var(--rk-flow-accent);
    stroke-width: 4;
    stroke-linecap: round;
    fill: none;
    stroke-dasharray: 20 40;
    animation: flowAnim 1s linear infinite;
}

@keyframes flowAnim {
    from { stroke-dashoffset: 60; }
    to { stroke-dashoffset: 0; }
}

.state-steel .flow-line-1 { d: path('M 0,55 L 500,55'); }
.state-steel .flow-line-2 { d: path('M 0,90 L 500,90'); stroke-width: 6; }
.state-steel .flow-line-3 { d: path('M 0,125 L 500,125'); }

.state-brass .water-flow { animation: flowAnimTurbulent 0.8s linear infinite; stroke: #fcd34d; }
.state-brass .flow-line-1 { d: path('M 0,55 Q 125,75 250,55 T 500,60'); }
.state-brass .flow-line-2 { d: path('M 0,90 Q 150,110 300,80 T 500,95'); stroke-width: 6; }
.state-brass .flow-line-3 { d: path('M 0,125 Q 100,105 200,130 T 500,115'); }

@keyframes flowAnimTurbulent {
    from { stroke-dashoffset: 60; }
    to { stroke-dashoffset: -20; }
}

/* Stats Grid inside Visual */
.rk-flow-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    gap: 15px;
}

.rk-flow-stat {
    background: var(--rk-flow-light);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--rk-flow-border);
    transition: all 0.3s;
}

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

.rk-flow-stat-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-flow-dark);
}

.state-steel #stat-opory { color: var(--rk-flow-green); }
.state-brass #stat-opory { color: var(--rk-flow-red); }

/* Content Section */
.rk-flow-content {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-flow-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-flow-slate);
    margin: 0 0 20px 0;
}

.rk-flow-content strong {
    color: var(--rk-flow-dark);
}

.rk-flow-content a {
    color: var(--rk-flow-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-flow-content a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
    background: var(--rk-flow-blue-bg);
}

/* Math Block plain HTML */
.rk-math-block {
    background: var(--rk-flow-dark);
    color: #e2e8f0;
    padding: 25px;
    border-radius: 16px;
    margin: 30px 0;
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    line-height: 1.7;
    box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.2);
    border-left: 5px solid var(--rk-flow-accent);
}

.rk-math-block strong {
    color: #38bdf8;
    font-weight: bold;
}

.rk-math-block span.calc-res {
    color: var(--rk-flow-green);
    font-weight: 900;
    font-size: 18px;
    display: inline-block;
    margin-top: 10px;
    padding: 5px 10px;
    background: rgba(16, 185, 129, 0.1);
    border-radius: 6px;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-dashboard, .rk-flow-content { padding: 30px 20px; }
    .rk-flow-stats-grid { grid-template-columns: 1fr; }
    .rk-flow-toggles { flex-direction: column; border-radius: 16px; }
    .rk-flow-selector { width: calc(100% - 12px); height: calc(50% - 6px); border-radius: 12px; }
    .rk-flow-selector.pos-brass { transform: translateY(100%); left: 6px; }
    .rk-flow-toggle-btn { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-efektywnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Jak przepływ wody w belce rozdzielacza wpływa na efektywność pompy ciepła?",
    "description": "Zobacz różnice w oporach hydraulicznych i chropowatości. Jak średnica 1 1/4 cala ze stali nierdzewnej podnosi COP pompy ciepła i obniża pobór prądu zgodnie z dyrektywą ErP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-efektywnosc",
    "name": "Analiza oporów hydraulicznych: Mosiądz vs Stal (2026)",
    "description": "Dane dotyczące chropowatości wewnętrznej rur i belek rozdzielaczy i ich wpływu na prędkość przepływu oraz zużycie energii przez pompy obiegowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "efektywność pompy ciepła podłogówka",
      "współczynnik chropowatości rozdzielacza mosiężnego",
      "straty ciśnienia pompa obiegowa",
      "zapotrzebowanie na moc 7.5 kw podłogówka",
      "zwiększenie COP pompy ciepła",
      "przepływ wody 1.29 m3/h"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne na podstawie chropowatości bezwzględnej (k) materiałów oraz równania ciągłości strugi dla ΔT = 5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Chropowatość bezwzględna stali nierdzewnej: k = 0,0015 mm.",
        "Chropowatość bezwzględna mosiądzu (odlew): k = 0,015 mm.",
        "Redukcja oporów miejscowych: do 25% na korzyść stali DN32.",
        "Wpływ na COP: Wzrost efektywności o 2-3% na każdy stopień obniżenia temperatury zasilania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-efektywnosc",
    "name": "Symulator Przepływu i COP Pompy Ciepła",
    "description": "Wizualizacja turbulencji przepływu wody i wpływu oporów wewnętrznych belki rozdzielacza na pobór prądu pompy obiegowej ErP.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rozdzielacz-efektywnosc-app">
    <div class="rk-flow-header">
        <div class="rk-flow-badge">Hydraulika i COP</div>
        <h2>Jak przepływ wody w belce rozdzielacza wpływa na efektywność pompy ciepła?</h2>
        <p>Pompa ciepła nienawidzi dławienia przepływów. Zobacz na żywo, jak struktura wewnętrzna materiału generuje turbulencje i zmusza pompę obiegową do wytężonej, kosztownej pracy.</p>
    </div>

    <div class="rk-flow-dashboard">
        <div class="rk-flow-toggles" id="flowToggleWrapper">
            <div class="rk-flow-selector" id="flowSelector"></div>
            <button class="rk-flow-toggle-btn active-steel" data-mat="steel" id="btnMatSteel">
                Rozdzielacz ze Stali Nierdzewnej
                <span class="rk-flow-toggle-sub">Profil 1 1/4" (DN32)</span>
            </button>
            <button class="rk-flow-toggle-btn" data-mat="brass" id="btnMatBrass">
                Rozdzielacz z Mosiądzu (Odlew)
                <span class="rk-flow-toggle-sub">Profil 1" (DN25)</span>
            </button>
        </div>

        <div class="rk-flow-visual-wrapper state-steel" id="flowVisualizer">
            <div class="rk-flow-svg-container">
                <svg width="100%" height="100%" viewBox="0 0 500 180" preserveAspectRatio="none">
                    <path class="pipe-wall" />
                    <path class="water-flow flow-line-1" />
                    <path class="water-flow flow-line-2" />
                    <path class="water-flow flow-line-3" />
                </svg>
            </div>

            <div class="rk-flow-stats-grid">
                <div class="rk-flow-stat">
                    <div class="rk-flow-stat-title">Chropowatość bezwzględna (k)</div>
                    <div class="rk-flow-stat-val" id="stat-k">0,0015 mm</div>
                </div>
                <div class="rk-flow-stat">
                    <div class="rk-flow-stat-title">Opory miejscowe (Δp)</div>
                    <div class="rk-flow-stat-val" id="stat-opory">Referencyjne</div>
                </div>
                <div class="rk-flow-stat">
                    <div class="rk-flow-stat-title">Zużycie prądu pompy</div>
                    <div class="rk-flow-stat-val" id="stat-pompa" style="color: var(--rk-flow-green);">ErP Eco Mode</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-flow-content">
        <h3>Fizyka przepływu a rachunki za prąd</h3>
        <p>
            Zwiększenie średnicy wewnętrznej belki rozdzielacza ze stali nierdzewnej do <strong>1 1/4" (DN32)</strong> redukuje opory miejscowe urządzenia o <strong>do 25%</strong> w stosunku do standardowych, ciasnych belek mosiężnych 1" (DN25). Z inżynierskiego punktu widzenia oznacza to jedno: mniejszy opór tłoczenia. 
        </p>
        <p>
            Dzięki temu dedykowana <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa w instalacji ogrzewania podłogowego</a> może pracować na niższym biegu, drastycznie zmniejszając zużycie energii elektrycznej zgodnie z wymogami europejskiej dyrektywy ErP (Ecodesign).
        </p>
        <p>
            Co ważniejsze, wyższy przepływ pozwala na osiągnięcie ultra-niskiego parametru różnicy temperatur (Delta T) wynoszącego zaledwie <strong>5K</strong> (różnica między zasilaniem a powrotem). Każdy stopień, o który możemy obniżyć temperaturę zasilania na źródle (dzięki szybkiemu i sprawnemu obiegowi), podnosi <strong>współczynnik COP pompy ciepła o około 2-3%</strong>.
        </p>

        <div class="rk-math-block">
            <strong>Obliczenie wymaganego przepływu (Dom 150 m²):</strong><br><br>
            Zapotrzebowanie na moc (Q) = 7,5 kW<br>
            Parametr pracy podłogówki = 35/30°C (ΔT = 5K)<br>
            Ciepło właściwe wody (c) = 4,19 kJ/(kg·K)<br><br>
            Strumień objętościowy (V) = Q / (c * ρ * ΔT)<br>
            V = 7,5 / (4,19 * 1 * 5)<br>
            V ≈ 0,36 dm³/s<br>
            <span class="calc-res">Wymagany ciągły przepływ V = 1,29 m³/h</span>
        </div>

        <p>
            Przy tak potężnym przepływie (1,29 m³/h), <strong>każda przewężka</strong> czy niedoskonałość odlewu na belce rozdzielacza generuje niepożądane straty ciśnienia. Rozdzielacze stalowe walcowane z profilu posiadają idealnie gładką powierzchnię wewnętrzną (niska chropowatość bezwzględna k ≈ 0,0015 mm). 
        </p>
        <p>
            Tymczasem odlewy mosiężne mogą posiadać wewnętrzne nadlewki produkcyjne i porowatości (k ≈ 0,015 mm), które drastycznie zwiększają burzliwość przepływu (turbulencje widoczne na symulacji) i opór hydrauliczny całego węzła. Przekłada się to bezpośrednio na wyższe koszty prądu generowane przez układ pompowy.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSteel = document.getElementById('btnMatSteel');
    const btnBrass = document.getElementById('btnMatBrass');
    const selector = document.getElementById('flowSelector');
    const visualizer = document.getElementById('flowVisualizer');
    
    // Stats elements
    const statK = document.getElementById('stat-k');
    const statOpory = document.getElementById('stat-opory');
    const statPompa = document.getElementById('stat-pompa');

    function setSteel() {
        // UI Classes
        btnSteel.classList.add('active-steel');
        btnBrass.classList.remove('active-brass');
        selector.classList.remove('pos-brass');
        
        // Animation State
        visualizer.className = 'rk-flow-visual-wrapper state-steel';
        
        // Data Update
        statK.textContent = '0,0015 mm (Gładko)';
        
        statOpory.textContent = 'Referencyjne (Niskie)';
        statOpory.style.color = 'var(--rk-flow-green)';
        
        statPompa.textContent = 'Bieg 1 / ErP Eco';
        statPompa.style.color = 'var(--rk-flow-green)';
    }

    function setBrass() {
        // UI Classes
        btnBrass.classList.add('active-brass');
        btnSteel.classList.remove('active-steel');
        selector.classList.add('pos-brass');
        
        // Animation State
        visualizer.className = 'rk-flow-visual-wrapper state-brass';
        
        // Data Update
        statK.textContent = '0,015 mm (Szorstko)';
        
        statOpory.textContent = '+25% Wyższe (Dławienie)';
        statOpory.style.color = 'var(--rk-flow-red)';
        
        statPompa.textContent = 'Bieg 3 / Max Pobór';
        statPompa.style.color = 'var(--rk-flow-red)';
    }

    btnSteel.addEventListener('click', setSteel);
    btnBrass.addEventListener('click', setBrass);
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-slate: #475569;
    --rk-tbl-light: #f8fafc;
    --rk-tbl-border: #e2e8f0;
    --rk-tbl-blue: #0284c7;
    --rk-tbl-blue-bg: #e0f2fe;
    --rk-tbl-steel: #94a3b8;
    --rk-tbl-brass: #d97706;
    --rk-tbl-brass-bg: #fef3c7;
    --rk-tbl-steel-accent: #38bdf8;
}

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

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

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

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

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

/* Controls */
.rk-tbl-controls {
    background: var(--rk-tbl-light);
    padding: 20px 50px;
    border-bottom: 1px solid var(--rk-tbl-border);
    display: flex;
    justify-content: center;
    gap: 15px;
}

.rk-tbl-filter {
    padding: 10px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-tbl-slate);
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-tbl-filter:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-tbl-filter.active {
    background: var(--rk-tbl-blue);
    color: #ffffff;
    border-color: var(--rk-tbl-blue);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

/* Table Structure */
.rk-tbl-body {
    padding: 30px 50px;
    background: #ffffff;
}

.rk-tbl-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 2fr;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid var(--rk-tbl-border);
    align-items: center;
    transition: opacity 0.3s;
}

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

.rk-tbl-row[data-visible="false"] {
    display: none;
}

/* Column Headers */
.rk-tbl-head {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-tbl-slate);
    text-transform: uppercase;
    letter-spacing: 1px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--rk-tbl-dark);
}

/* Cells */
.rk-cell-param {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
    line-height: 1.4;
}

.rk-cell-val {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-val-number {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-tbl-dark);
}

/* Visual Bars */
.rk-val-bar-wrapper {
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    overflow: hidden;
}

.rk-val-bar {
    height: 100%;
    border-radius: 3px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-bar-brass { background: var(--rk-tbl-brass); }
.rk-bar-steel { background: var(--rk-tbl-blue); }

.rk-cell-impact {
    font-size: 14px;
    color: var(--rk-tbl-slate);
    line-height: 1.6;
}

.rk-cell-impact a {
    color: var(--rk-tbl-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-cell-impact a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

/* Mobile Layout */
@media (max-width: 900px) {
    .rk-tbl-header { padding: 30px 20px; }
    .rk-tbl-controls { padding: 20px; flex-wrap: wrap; }
    .rk-tbl-body { padding: 20px; background: var(--rk-tbl-light); }
    
    .rk-tbl-head { display: none; } /* Hide desktop headers */
    
    .rk-tbl-row {
        display: flex;
        flex-direction: column;
        gap: 15px;
        background: #ffffff;
        padding: 20px;
        border: 1px solid var(--rk-tbl-border);
        border-radius: 16px;
        margin-bottom: 15px;
        box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    }

    .rk-cell-param {
        font-size: 18px;
        border-bottom: 1px solid var(--rk-tbl-border);
        padding-bottom: 10px;
    }

    .rk-cell-val {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
    
    .rk-cell-val::before {
        font-size: 12px;
        font-weight: 800;
        color: var(--rk-tbl-slate);
        text-transform: uppercase;
    }

    .rk-cell-brass::before { content: 'Mosiądz:'; color: var(--rk-tbl-brass); }
    .rk-cell-steel::before { content: 'Stal:'; color: var(--rk-tbl-blue); }

    .rk-val-bar-wrapper { display: none; } /* Hide bars on mobile for cleaner look */
    
    .rk-cell-impact {
        background: var(--rk-tbl-light);
        padding: 15px;
        border-radius: 8px;
        margin-top: 5px;
        font-size: 13px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-tabela",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Tabela porównawcza parametrów technicznych: Rozdzielacz mosiężny vs stal nierdzewna",
    "description": "Szczegółowe zestawienie właściwości fizykochemicznych: wytrzymałość mechaniczna, współczynnik przepływu Kv pompy ciepła, odporność na odcynkowanie i koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-tabela",
    "name": "Macierz Właściwości Technicznych Rozdzielaczy HVAC 2026",
    "description": "Zestawienie analityczne porównujące parametry mosiądzu CW617N oraz stali szlachetnej AISI 304 w kontekście oporów hydraulicznych instalacji CO.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela parametrów technicznych rozdzielaczy",
      "średnica wewnętrzna belki rozdzielacza dn25 dn32",
      "współczynnik przepływu kv pompy ciepła",
      "odcynkowanie mosiądzu w instalacji CO",
      "awaria układu mieszającego podłogówki"
    ],
    "measurementTechnique": "Kompilacja danych laboratoryjnych producentów (próby ciśnieniowe, badania na zrywanie) oraz uśrednionych kosztów rynkowych dla 8 sekcji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik przepływu Kv: Mosiądz 3.8 m³/h vs Stal 4.5 m³/h.",
        "Wytrzymałość mechaniczna: Mosiądz 430 N/mm² vs Stal 520 N/mm².",
        "Odporność na jony chlorkowe: Ryzyko odcynkowania vs Pełna pasywność."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-tabela",
    "name": "Interaktywny Filtr Parametrów Rozdzielacza",
    "description": "Aplikacja pozwalająca na dynamiczne sortowanie i analizę parametrów technicznych armatury z podziałem na kryteria hydrauliczne, wytrzymałościowe i ekonomiczne.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="rozdzielacz-tabela-app">
    <div class="rk-tbl-header">
        <div class="rk-tbl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line><line x1="9" y1="3" x2="9" y2="21"></line><line x1="15" y1="3" x2="15" y2="21"></line></svg>
            Macierz Danych Inżynierskich
        </div>
        <h2>Zestawienie i tabela parametrów technicznych rozdzielaczy do podłogówki</h2>
        <p>Porównanie właściwości fizykochemicznych i hydraulicznych (dla belki 8-obwodowej). Dane te decydują o bezawaryjnej pracy kotłowni przez dekady.</p>
    </div>

    <div class="rk-tbl-controls">
        <button class="rk-tbl-filter active" data-filter="all">Wszystkie parametry</button>
        <button class="rk-tbl-filter" data-filter="hydro">Tylko Hydrauliczne</button>
        <button class="rk-tbl-filter" data-filter="mech">Tylko Wytrzymałościowe</button>
        <button class="rk-tbl-filter" data-filter="eco">Ekonomia & Gwarancja</button>
    </div>

    <div class="rk-tbl-body">
        <div class="rk-tbl-row rk-tbl-head">
            <div>Parametr techniczny / Cecha</div>
            <div>Mosiądz (CW617N)</div>
            <div>Stal Nierdzewna (AISI 304)</div>
            <div>Wpływ na instalację grzewczą</div>
        </div>

        <div class="rk-tbl-row" data-category="mech">
            <div class="rk-cell-param">Wytrzymałość mechaniczna</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number">430 N/mm²</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-brass" style="width: 82%;"></div></div>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number">520 N/mm²</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-steel" style="width: 100%;"></div></div>
            </div>
            <div class="rk-cell-impact">Większa tolerancja na uderzenia hydrauliczne i zbyt mocne dokręcanie złączek PEX (ryzyko pęknięcia korpusu).</div>
        </div>

        <div class="rk-tbl-row" data-category="hydro">
            <div class="rk-cell-param">Standardowy profil belki (Średnica wewnętrzna)</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number">1" (DN25)</span>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number">1 1/4" (DN32)</span>
            </div>
            <div class="rk-cell-impact">Znacząco mniejsze opory miejscowe przy dużych zładach wody (kluczowe przy podłączaniu <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">układu mieszającego</a>).</div>
        </div>

        <div class="rk-tbl-row" data-category="hydro">
            <div class="rk-cell-param">Współczynnik przepływu (Kv belki przy spadku 1 bar)</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number">~3,8 m³/h</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-brass" style="width: 84%;"></div></div>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number">~4,5 m³/h</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-steel" style="width: 100%;"></div></div>
            </div>
            <div class="rk-cell-impact">Określa maksymalną zdolność przepustową czynnika. Wyższe Kv obniża zużycie prądu przez pompę obiegową.</div>
        </div>

        <div class="rk-tbl-row" data-category="mech">
            <div class="rk-cell-param">Maksymalna dopuszczalna temperatura pracy</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number">60°C</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-brass" style="width: 66%;"></div></div>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number">70°C - 90°C</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-steel" style="width: 100%;"></div></div>
            </div>
            <div class="rk-cell-impact">Zapas bezpieczeństwa. W przypadku gdy wystąpi awaria <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperatury zasilania podłogówki</a>, stal zapobiega stopieniu uszczelnień.</div>
        </div>

        <div class="rk-tbl-row" data-category="mech">
            <div class="rk-cell-param">Odporność chemiczna (Jony chlorkowe / Niskie pH)</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number" style="color: #ea580c;">Ryzyko odcynkowania</span>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number" style="color: #16a34a;">Całkowita pasywność</span>
            </div>
            <div class="rk-cell-impact">Wysoka zawartość minerałów w wodzie wodociągowej niszczy mosiądz. Zalecana jest w obu przypadkach <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">woda z inhibitorem korozji</a>.</div>
        </div>

        <div class="rk-tbl-row" data-category="eco">
            <div class="rk-cell-param">Okres fabrycznej gwarancji szczelności</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number">2 - 5 lat</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-brass" style="width: 33%;"></div></div>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number">10 - 15 lat</span>
                <div class="rk-val-bar-wrapper"><div class="rk-val-bar rk-bar-steel" style="width: 100%;"></div></div>
            </div>
            <div class="rk-cell-impact">Ochrona inwestora przed wadami ukrytymi korpusu i połączeń fabrycznych na czas zwrotu z inwestycji.</div>
        </div>

        <div class="rk-tbl-row" data-category="eco">
            <div class="rk-cell-param">Średni koszt zakupu (komplet 8 obwodów)</div>
            <div class="rk-cell-val rk-cell-brass">
                <span class="rk-val-number" style="color: #16a34a;">380 - 650 PLN</span>
            </div>
            <div class="rk-cell-val rk-cell-steel">
                <span class="rk-val-number" style="color: #ea580c;">550 - 1100 PLN</span>
            </div>
            <div class="rk-cell-impact">Nakłady początkowe mające wpływ na to, na co trzeba <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">przygotować budżet przy kompleksowej wycenie</a> uzbrojenia kotłowni.</div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const filters = document.querySelectorAll('.rk-tbl-filter');
    const rows = document.querySelectorAll('.rk-tbl-row[data-category]');

    filters.forEach(btn => {
        btn.addEventListener('click', function() {
            // Update active button
            filters.forEach(f => f.classList.remove('active'));
            this.classList.add('active');

            const filterValue = this.getAttribute('data-filter');

            // Filter rows
            rows.forEach(row => {
                if (filterValue === 'all') {
                    row.setAttribute('data-visible', 'true');
                } else {
                    if (row.getAttribute('data-category') === filterValue) {
                        row.setAttribute('data-visible', 'true');
                    } else {
                        row.setAttribute('data-visible', 'false');
                    }
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-slate: #475569;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-bg: #e0f2fe;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-orange: #f59e0b;
}

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

/* Header */
.rk-calc-header {
    background: var(--rk-calc-dark);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

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

/* App Body */
.rk-calc-body {
    display: grid;
    grid-template-columns: 350px 1fr;
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Left Panel - Inputs */
.rk-calc-inputs {
    background: var(--rk-calc-light);
    padding: 30px;
    border-right: 1px solid var(--rk-calc-border);
}

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

.rk-calc-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    margin-bottom: 8px;
}

.rk-calc-desc {
    font-size: 12px;
    color: var(--rk-calc-slate);
    margin-bottom: 10px;
    line-height: 1.4;
}

/* Range Slider Styling */
.rk-range-wrapper {
    position: relative;
    padding-top: 10px;
}

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

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

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

.rk-range-val-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    padding: 10px 15px;
    border-radius: 12px;
}

.rk-range-num {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-blue);
}

.rk-range-unit {
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-calc-slate);
}

/* Radio Toggle for Delta T */
.rk-toggle-group {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-slate);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
}

.rk-toggle-btn.active {
    background: #ffffff;
    color: var(--rk-calc-blue);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* Right Panel - Results */
.rk-calc-results {
    padding: 30px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-res-box {
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-res-box-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

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

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

/* Comparison Grid */
.rk-comp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-comp-card {
    background: var(--rk-calc-light);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    border: 1px solid transparent;
    transition: all 0.3s;
}

.rk-comp-card.warning {
    background: #fef2f2;
    border-color: #fca5a5;
}

.rk-comp-card.success {
    background: #f0fdf4;
    border-color: #86efac;
}

.rk-comp-mat {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-calc-slate);
    text-transform: uppercase;
    margin-bottom: 5px;
}

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

.rk-comp-card.warning .rk-comp-val { color: var(--rk-calc-red); }
.rk-comp-card.success .rk-comp-val { color: var(--rk-calc-green); }

.rk-comp-status {
    font-size: 12px;
    font-weight: 700;
}

.rk-comp-card.warning .rk-comp-status { color: var(--rk-calc-red); }
.rk-comp-card.success .rk-comp-status { color: var(--rk-calc-green); }

/* Main Flow Result */
.rk-main-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--rk-calc-blue-bg);
    border: 1px solid #bae6fd;
    padding: 20px;
    border-radius: 16px;
}

.rk-mf-label {
    font-size: 14px;
    font-weight: 700;
    color: #0369a1;
}

.rk-mf-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-calc-blue);
}

/* Theory Section */
.rk-calc-theory {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-theory-step {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.01);
}

.rk-step-num {
    display: inline-block;
    background: var(--rk-calc-dark);
    color: #ffffff;
    width: 24px;
    height: 24px;
    text-align: center;
    line-height: 24px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 900;
    margin-right: 10px;
}

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

.rk-step-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-calc-slate);
    margin: 0 0 15px 0;
}

.rk-step-text a {
    color: var(--rk-calc-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-formula-box {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    color: #0f172a;
    border-left: 4px solid var(--rk-calc-blue);
    overflow-x: auto;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-theory { padding: 30px 20px; }
    .rk-calc-body { grid-template-columns: 1fr; }
    .rk-calc-inputs, .rk-calc-results { padding: 25px 20px; border-right: none; }
    .rk-comp-grid { grid-template-columns: 1fr; }
    .rk-main-flow { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Kalkulator hydrauliki rozdzielacza: Obliczanie strumienia objętościowego pompy ciepła",
    "description": "Interaktywny kalkulator inżynierski wyliczający prędkość przepływu w belce oraz straty ciśnienia dla rozdzielaczy mosiężnych i stalowych na podstawie OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-kalkulator",
    "name": "Parametry hydrauliczne belek rozdzielaczowych",
    "description": "Zestawienie stałych wartości fizycznych używanych w obliczeniach hydraulicznych: pojemność cieplna wody, przekroje rur DN25 i DN32 oraz współczynniki Kv.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczanie strumienia objętościowego wody",
      "prędkość przepływu w belce rozdzielacza",
      "strata ciśnienia Kv rozdzielacz",
      "zapotrzebowanie na moc cieplną strefy",
      "dobór pompy obiegowej podłogówka"
    ],
    "measurementTechnique": "Algorytmy oparte na równaniu bilansu cieplnego, prawie ciągłości strugi oraz wyznaczaniu oporów miejscowych przez współczynnik przepływu Kv.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przekrój A dla mosiądzu 1 cal = 0,00049 m².",
        "Przekrój A dla stali nierdzewnej 1 1/4 cala = 0,00101 m².",
        "Zalecana maksymalna prędkość liniowa w belce w = 0,5 m/s."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-kalkulator",
    "name": "Kalkulator Hydrauliki Rozdzielacza Podłogowego",
    "description": "Interaktywna aplikacja inżynierska do wyznaczania strumienia przepływu (m³/h), prędkości (m/s) oraz spadków ciśnienia (kPa) na rozdzielaczach w czasie rzeczywistym.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rozdzielacz-calc-app">
    <div class="rk-calc-header">
        <div class="rk-calc-badge">Narzędzie Inżynierskie</div>
        <h2>Kalkulator doboru i hydrauliki rozdzielacza</h2>
        <p>Sprawdź na żywych danych z projektu OZC, czy belka mosiężna nie udławi Twojej pompy ciepła, generując szumy i koszty.</p>
    </div>

    <div class="rk-calc-body">
        <div class="rk-calc-inputs">
            <div class="rk-calc-input-group">
                <label class="rk-calc-label">Obciążenie cieplne strefy (Q)</label>
                <p class="rk-calc-desc">Wpisz zapotrzebowanie z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: var(--rk-calc-blue);">wyników OZC</a> dla obsługiwanej kondygnacji.</p>
                <div class="rk-range-wrapper">
                    <input type="range" min="3.0" max="15.0" step="0.5" value="8.5" class="rk-slider" id="inpPower">
                    <div class="rk-range-val-box">
                        <span class="rk-range-num" id="valPower">8.5</span>
                        <span class="rk-range-unit">kW</span>
                    </div>
                </div>
            </div>

            <div class="rk-calc-input-group">
                <label class="rk-calc-label">Projektowy spadek temperatury (ΔT)</label>
                <p class="rk-calc-desc">Różnica między zasilaniem a powrotem. 5K to standard dla nowoczesnej pompy ciepła.</p>
                <div class="rk-toggle-group" id="toggleDelta">
                    <div class="rk-toggle-btn active" data-val="5">5 K (Pompa)</div>
                    <div class="rk-toggle-btn" data-val="7">7 K (Kocioł)</div>
                </div>
            </div>
        </div>

        <div class="rk-calc-results">
            <div class="rk-main-flow">
                <div class="rk-mf-label">Wymagany strumień objętościowy (V̇):</div>
                <div class="rk-mf-val" id="resFlow">1.68 m³/h</div>
            </div>

            <div class="rk-res-box">
                <div class="rk-res-box-header">
                    <div class="rk-res-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    </div>
                    <div class="rk-res-title">Prędkość w belce (Max zalecana: 0,5 m/s)</div>
                </div>
                <div class="rk-comp-grid">
                    <div class="rk-comp-card" id="cardVelBrass">
                        <div class="rk-comp-mat">Mosiądz (DN25)</div>
                        <div class="rk-comp-val" id="resVelBrass">0.95</div>
                        <div class="rk-comp-status" id="statVelBrass">ZBYT SZYBKO (SZUM!)</div>
                    </div>
                    <div class="rk-comp-card" id="cardVelSteel">
                        <div class="rk-comp-mat">Stal Nierdz. (DN32)</div>
                        <div class="rk-comp-val" id="resVelSteel">0.46</div>
                        <div class="rk-comp-status" id="statVelSteel">OPTYMALNIE</div>
                    </div>
                </div>
            </div>

            <div class="rk-res-box">
                <div class="rk-res-box-header">
                    <div class="rk-res-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    <div class="rk-res-title">Strata ciśnienia na rozdzielaczu (Opór pompy)</div>
                </div>
                <div class="rk-comp-grid">
                    <div class="rk-comp-card" id="cardDropBrass">
                        <div class="rk-comp-mat">Mosiądz (Kv ~3.8)</div>
                        <div class="rk-comp-val" id="resDropBrass">19.5 kPa</div>
                        <div class="rk-comp-status" id="statDropBrass">WYSOKI OPÓR</div>
                    </div>
                    <div class="rk-comp-card success" id="cardDropSteel">
                        <div class="rk-comp-mat">Stal Nierdz. (Kv ~4.5)</div>
                        <div class="rk-comp-val" id="resDropSteel">13.9 kPa</div>
                        <div class="rk-comp-status" id="statDropSteel">NISKI OPÓR</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-calc-theory">
        <h3>Algorytm obliczeniowy krok po kroku</h3>
        
        <div class="rk-theory-step">
            <h4 class="rk-step-title"><span class="rk-step-num">1</span>Obliczenie strumienia objętościowego rozdzielacza (V)</h4>
            <p class="rk-step-text">Wyznaczamy całkowite zapotrzebowanie na przepływ wody dla rozdzielacza obsługującego daną strefę budynku. Wzór uwzględnia zjawiska opisane w normie <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>.</p>
            <div class="rk-formula-box">
                V [m³/h] = (Q [kW] * 1.15) / (c * ΔT) * 3600<br><br>
                Gdzie:<br>
                1.15 - współczynnik strat przesyłowych (+15%)<br>
                c - ciepło właściwe wody (4.19 kJ/kg·K)
            </div>
        </div>

        <div class="rk-theory-step">
            <h4 class="rk-step-title"><span class="rk-step-num">2</span>Wyznaczenie prędkości przepływu w belce (w)</h4>
            <p class="rk-step-text">Prędkość liniowa czynnika w rozdzielaczu <strong>nie powinna przekraczać 0,5 m/s</strong>, aby uniknąć erozji, kawitacji na rotametrach oraz przenoszenia hałasu (szumienia rur) na stropy.</p>
            <div class="rk-formula-box">
                w [m/s] = V / (3600 * A)<br><br>
                Gdzie:<br>
                A (Mosiądz DN25) ≈ 0.00049 m²<br>
                A (Stal Nierdz. DN32) ≈ 0.00101 m²
            </div>
        </div>

        <div class="rk-theory-step">
            <h4 class="rk-step-title"><span class="rk-step-num">3</span>Obliczenie całkowitej straty ciśnienia (Δp)</h4>
            <p class="rk-step-text">Strata ciśnienia determinuje bieg, na którym musi pracować <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompa obiegowa podłogówki</a>. Niższy opór = niższe rachunki za prąd w perspektywie lat.</p>
            <div class="rk-formula-box">
                Δp [kPa] = (V / Kv)² * 100<br><br>
                Gdzie średnie wartości fabryczne wynoszą:<br>
                Kv (Mosiądz z osprzętem) ≈ 3.8 m³/h<br>
                Kv (Stal nierdzewna) ≈ 4.5 m³/h
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const inpPower = document.getElementById('inpPower');
    const valPowerDisplay = document.getElementById('valPower');
    const deltaBtns = document.querySelectorAll('.rk-toggle-btn');
    
    // Outputs
    const resFlow = document.getElementById('resFlow');
    const resVelBrass = document.getElementById('resVelBrass');
    const resVelSteel = document.getElementById('resVelSteel');
    const resDropBrass = document.getElementById('resDropBrass');
    const resDropSteel = document.getElementById('resDropSteel');
    
    // Cards & Status
    const cardVelBrass = document.getElementById('cardVelBrass');
    const cardVelSteel = document.getElementById('cardVelSteel');
    const cardDropBrass = document.getElementById('cardDropBrass');
    const cardDropSteel = document.getElementById('cardDropSteel');
    
    const statVelBrass = document.getElementById('statVelBrass');
    const statVelSteel = document.getElementById('statVelSteel');

    // Constants
    const c = 4.19; // cieplo wlasciwe wody
    const safety = 1.15; // wspolczynnik bezpieczenstwa
    const A_brass = 0.00049; // pole przekroju mosiadz DN25
    const A_steel = 0.00101; // pole przekroju stal DN32
    const Kv_brass = 3.8;
    const Kv_steel = 4.5;

    let currentDeltaT = 5;

    function calculate() {
        const Q = parseFloat(inpPower.value);
        valPowerDisplay.textContent = Q.toFixed(1);

        // 1. Flow Calculation
        // kg/s = (kW * 1.15) / (c * dT)
        // m3/h = kg/s * 3.6 (przyjmujac gestosc wody ~1kg/l)
        const flowKgS = (Q * safety) / (c * currentDeltaT);
        const flowM3H = flowKgS * 3.6;
        resFlow.textContent = flowM3H.toFixed(2) + " m³/h";

        // 2. Velocity Calculation (m/s)
        const velBrass = flowM3H / (3600 * A_brass);
        const velSteel = flowM3H / (3600 * A_steel);
        
        resVelBrass.textContent = velBrass.toFixed(2) + " m/s";
        resVelSteel.textContent = velSteel.toFixed(2) + " m/s";

        // Update Velocity Status UI (Threshold 0.5 m/s)
        if(velBrass > 0.5) {
            cardVelBrass.className = "rk-comp-card warning";
            statVelBrass.textContent = "ZBYT SZYBKO (SZUM!)";
        } else {
            cardVelBrass.className = "rk-comp-card success";
            statVelBrass.textContent = "AKCEPTOWALNIE";
        }

        if(velSteel > 0.5) {
            cardVelSteel.className = "rk-comp-card warning";
            statVelSteel.textContent = "ZBYT SZYBKO (SZUM!)";
        } else {
            cardVelSteel.className = "rk-comp-card success";
            statVelSteel.textContent = "OPTYMALNIE";
        }

        // 3. Pressure Drop Calculation (kPa)
        const dropBrass = Math.pow((flowM3H / Kv_brass), 2) * 100;
        const dropSteel = Math.pow((flowM3H / Kv_steel), 2) * 100;

        resDropBrass.textContent = dropBrass.toFixed(1) + " kPa";
        resDropSteel.textContent = dropSteel.toFixed(1) + " kPa";

        // Update Drop UI
        if(dropBrass > 15) {
            cardDropBrass.className = "rk-comp-card warning";
        } else {
            cardDropBrass.className = "rk-comp-card";
        }
    }

    // Event Listeners
    inpPower.addEventListener('input', calculate);

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

    // Initial calculation
    calculate();
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-slate: #475569;
    --rk-proj-light: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #38bdf8;
    --rk-proj-green: #10b981;
    --rk-proj-green-bg: #dcfce7;
    --rk-proj-orange: #f97316;
    --rk-proj-orange-bg: #ffedd5;
}

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

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

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

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

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

/* Simulator Section */
.rk-proj-sim {
    padding: 40px 50px;
    background: var(--rk-proj-light);
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-proj-sim-title {
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 30px 0;
}

/* Controls */
.rk-proj-controls {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-proj-btn {
    padding: 16px 24px;
    border-radius: 16px;
    border: 2px solid var(--rk-proj-border);
    background: #ffffff;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-proj-slate);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.rk-proj-btn.active[data-state="optimal"] {
    border-color: var(--rk-proj-green);
    background: var(--rk-proj-green-bg);
    color: #065f46;
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.2);
}

.rk-proj-btn.active[data-state="downgrade"] {
    border-color: var(--rk-proj-orange);
    background: var(--rk-proj-orange-bg);
    color: #9a3412;
    box-shadow: 0 10px 15px -3px rgba(249, 115, 22, 0.2);
}

.rk-proj-btn-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Layout for Display */
.rk-proj-display-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

/* SVG Visualizer */
.rk-proj-visual {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-proj-pipe {
    stroke: #ef4444;
    stroke-width: 6;
    stroke-linecap: round;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-proj-pipe.secondary {
    opacity: 0;
    transform: translateY(-20px);
}

.state-downgrade .rk-proj-pipe.secondary {
    opacity: 1;
    transform: translateY(0);
}

.rk-proj-visual-label {
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    text-align: center;
    font-weight: 800;
    font-size: 16px;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}

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

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

.rk-proj-stat-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-proj-slate);
}

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

/* Text Content */
.rk-proj-content {
    padding: 50px;
    background: #ffffff;
}

.rk-proj-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-proj-slate);
    margin: 0 0 20px 0;
}

.rk-proj-content strong {
    color: var(--rk-proj-dark);
}

.rk-proj-content a {
    color: var(--rk-proj-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-proj-content a:hover {
    color: #0369a1;
}

.rk-proj-extreme-case {
    background: var(--rk-proj-orange-bg);
    border-left: 4px solid var(--rk-proj-orange);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-proj-extreme-case-title {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 900;
    color: #c2410c;
    margin-bottom: 8px;
    letter-spacing: 1px;
}

.rk-proj-extreme-case p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

/* Massive CTA */
.rk-proj-cta-box {
    background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
    padding: 50px;
    text-align: center;
    color: #ffffff;
}

.rk-proj-cta-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: #ffffff;
    color: #0284c7;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none !important;
    box-shadow: 0 15px 30px -5px rgba(0,0,0,0.2);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -5px rgba(0,0,0,0.3);
    background: #f8fafc;
}

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

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

/* Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-sim, .rk-proj-content, .rk-proj-cta-box { padding: 30px 20px; }
    .rk-proj-controls { flex-direction: column; gap: 10px; }
    .rk-proj-display-grid { grid-template-columns: 1fr; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Jak wybór rozdzielacza wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zobacz, jak samowolna zmiana rozdzielacza ze stalowego na mosiężny modyfikuje parametry wejściowe w programach inżynierskich, wymuszając zagęszczenie rur.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-projekt",
    "name": "Wpływ parametrów rozdzielacza na hydraulikę instalacji płaszczyznowej",
    "description": "Zestawienie analityczne pokazujące korelację między modelem rozdzielacza (przepływem Kv) a wymaganym rozstawem rur i autorytetem zaworów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zmiana rozdzielacza z projektu",
      "zagęszczenie rur podłogówki mosiądz",
      "opory hydrauliczne pętli OZC",
      "sprzęgło hydrauliczne konieczność",
      "projekt ogrzewania salonu przeszklenia"
    ],
    "measurementTechnique": "Symulacja inżynierska zapotrzebowania na moc cieplną przy zredukowanym przepływie (DN32 vs DN25) z kompensacją układu rur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek przepływu wymusza zmianę rozstawu rur z 15 cm na 10 cm.",
        "Mniejsza średnica DN25 zaburza autorytet zaworów regulacyjnych.",
        "Wysokie obciążenie cieplne wymaga dodania sprzęgła hydraulicznego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-projekt",
    "name": "Symulator Skutków Zmiany Rozdzielacza",
    "description": "Interaktywny panel obliczeniowy wizualizujący wpływ obniżenia parametrów rozdzielacza na układ rur grzewczych i elementy dodatkowe kotłowni.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rozdzielacz-projekt-app">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">Inżynieria OZC</div>
        <h2>Jak wybór rozdzielacza wpływa na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Decyzja o zmianie komponentu na tańszy na placu budowy to najczęstsza przyczyna katastrofy hydraulicznej. Zobacz, jak jeden element burzy wszystkie wyliczenia inżynierskie.</p>
    </div>

    <div class="rk-proj-sim">
        <h3 class="rk-proj-sim-title">Symulator Zmiany Komponentu (Salon 40m²)</h3>
        
        <div class="rk-proj-controls">
            <button class="rk-proj-btn active" data-state="optimal" id="btnOpt">
                <div class="rk-proj-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                Założenia Projektowe (Stal Nierdzewna)
            </button>
            <button class="rk-proj-btn" data-state="downgrade" id="btnDown">
                <div class="rk-proj-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                Zmiana na budowie (Mosiądz DN25)
            </button>
        </div>

        <div class="rk-proj-display-grid" id="simDisplayGrid">
            <div class="rk-proj-visual">
                <svg width="100%" height="150" viewBox="0 0 300 150" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path class="rk-proj-pipe" d="M20 20 L280 20" />
                    <path class="rk-proj-pipe secondary" d="M20 45 L280 45" />
                    <path class="rk-proj-pipe" d="M20 70 L280 70" />
                    <path class="rk-proj-pipe secondary" d="M20 95 L280 95" />
                    <path class="rk-proj-pipe" d="M20 120 L280 120" />
                </svg>
                <div class="rk-proj-visual-label" id="simLabel">Rozstaw rur: 15 cm</div>
            </div>

            <div class="rk-proj-stats">
                <div class="rk-proj-stat-card" id="statFlow">
                    <div class="rk-proj-stat-label">Autorytet zaworów regulacyjnych</div>
                    <div class="rk-proj-stat-val" style="color: var(--rk-proj-green);">Optymalny</div>
                </div>
                <div class="rk-proj-stat-card" id="statPipe">
                    <div class="rk-proj-stat-label">Długość pętli grzewczej</div>
                    <div class="rk-proj-stat-val">100 mb</div>
                </div>
                <div class="rk-proj-stat-card" id="statSep">
                    <div class="rk-proj-stat-label">Sprzęgło hydrauliczne</div>
                    <div class="rk-proj-stat-val" style="color: var(--rk-proj-green);">Brak konieczności</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-proj-content">
        <p>
            Wybór konkretnego typu rozdzielacza modyfikuje <strong>parametry wejściowe w programach inżynierskich</strong> realizujących profesjonalny projekt ogrzewania podłogowego. Jeśli projektant założy w obliczeniach rozdzielacz stalowy o wysokim współczynniku przepływu, opory hydrauliczne pętli mogą zostać zrównoważone przy wyższych nastawach na rotametrach.
        </p>
        <p>
            W przypadku samowolnej zmiany rozdzielacza na mosiężny o mniejszej średnicy przelotowej (DN25), konieczne jest ponowne przeliczenie <strong>autorytetu zaworów regulacyjnych</strong> oraz rygorystyczna weryfikacja maksymalnej długości pętli ze względu na ucięty przepływ.
        </p>
        <p>
            Zmiana na model o gorszych parametrach przepływowych wymusza drastyczne zagęszczenie rur, zmieniając <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego przy pompie ciepła</a> (np. z komfortowych 15 cm do gęstych 10 cm, tylko po to, by skompensować niższą temperaturę średnią wynikającą ze zdławienia strumienia wody).
        </p>

        <div class="rk-proj-extreme-case">
            <span class="rk-proj-extreme-case-title">Zagrożenie: Salony i duże przeszklenia</span>
            <p>
                W skrajnych przypadkach, mała przepustowość belki mosiężnej całkowicie uniemożliwi prawidłowe zasilenie stref o dużym obciążeniu cieplnym (takich jak nowoczesny salon z dużymi przeszkleniami). Wymusi to na inwestorze montaż dodatkowego elementu, jakim jest <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne w instalacji ogrzewania podłogowego</a> wraz z dodatkową pompą – co generuje potężne, niepotrzebne koszty inwestycyjne.
            </p>
        </div>
    </div>

    <div class="rk-proj-cta-box">
        <h3 class="rk-proj-cta-title">Nie zgaduj. Zleć to inżynierom.</h3>
        <p class="rk-proj-cta-text">
            Dobór rozdzielacza, wyliczenie rozstawu rur i autorytet zaworów to czysta matematyka. Przestań polegać na opiniach z forów budowlanych i zamów profesjonalną dokumentację, która zagwarantuje Ci sprawny system na dekady.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnOpt = document.getElementById('btnOpt');
    const btnDown = document.getElementById('btnDown');
    const displayGrid = document.getElementById('simDisplayGrid');
    const simLabel = document.getElementById('simLabel');
    
    const valFlow = document.querySelector('#statFlow .rk-proj-stat-val');
    const valPipe = document.querySelector('#statPipe .rk-proj-stat-val');
    const valSep = document.querySelector('#statSep .rk-proj-stat-val');

    function setOptimal() {
        // UI
        btnOpt.classList.add('active');
        btnDown.classList.remove('active');
        displayGrid.className = 'rk-proj-display-grid state-optimal';
        
        // Data Update
        simLabel.textContent = 'Rozstaw rur: 15 cm (Prawidłowy)';
        simLabel.style.color = 'var(--rk-proj-dark)';
        
        valFlow.textContent = 'Optymalny';
        valFlow.style.color = 'var(--rk-proj-green)';
        
        valPipe.textContent = 'do 100 mb';
        
        valSep.textContent = 'Brak konieczności';
        valSep.style.color = 'var(--rk-proj-green)';
    }

    function setDowngrade() {
        // UI
        btnDown.classList.add('active');
        btnOpt.classList.remove('active');
        displayGrid.className = 'rk-proj-display-grid state-downgrade';
        
        // Data Update
        simLabel.textContent = 'Zagęszczony rozstaw: 10 cm!';
        simLabel.style.color = '#c2410c';
        
        valFlow.textContent = 'Zaburzony (Dławienie)';
        valFlow.style.color = 'var(--rk-proj-orange)';
        
        valPipe.textContent = 'Ograniczona do 70-80 mb';
        
        valSep.textContent = 'Wymagane z dod. pompą!';
        valSep.style.color = 'var(--rk-proj-red)';
    }

    btnOpt.addEventListener('click', setOptimal);
    btnDown.addEventListener('click', setDowngrade);
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-slate: #334155;
    --rk-err-light: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-blue: #0284c7;
    --rk-err-blue-bg: #f0f9ff;
    --rk-err-accent: #38bdf8;
}

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

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-red) 0%, #991b1b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
}

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

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

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

/* Dashboard Layout */
.rk-err-dashboard {
    display: flex;
    min-height: 650px; /* Zwiększona wysokość na 10 elementów */
}

/* Navigation List (Left) */
.rk-err-nav {
    width: 400px;
    background: var(--rk-err-light);
    border-right: 1px solid var(--rk-err-border);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 10px 15px; /* Delikatnie zmniejszony padding */
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

.rk-err-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.rk-err-btn.active {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
    border-left: 5px solid var(--rk-err-red);
}

.rk-err-btn-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f1f5f9;
    color: var(--rk-err-slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 700;
    font-size: 14px;
}

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

.rk-err-btn-text {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-err-dark);
    line-height: 1.3;
}

/* Display Panel (Right) */
.rk-err-display {
    flex: 1;
    padding: 50px 40px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Content Area */
.rk-err-content {
    animation: fadeIn 0.4s ease-in-out;
}

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

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

.rk-err-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-err-slate);
    margin: 0 0 30px 0;
}

.rk-err-content strong {
    color: var(--rk-err-dark);
}

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

.rk-err-content a:hover {
    color: #0369a1;
}

.rk-err-solution {
    background: var(--rk-err-blue-bg);
    border-left: 5px solid var(--rk-err-blue);
    padding: 25px;
    border-radius: 0 16px 16px 0;
}

.rk-err-solution-title {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-err-blue);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-err-solution-text {
    font-size: 15px;
    color: #0c4a6e;
    font-weight: 600;
    margin: 0;
    line-height: 1.6;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-err-header { padding: 30px 20px; }
    .rk-err-dashboard { flex-direction: column; }
    .rk-err-nav { width: 100%; padding: 20px; border-right: none; border-bottom: 1px solid var(--rk-err-border); }
    .rk-err-btn { padding: 10px 12px; }
    .rk-err-display { padding: 30px 20px; }
    .rk-err-content h3 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "10 Krytycznych błędów przy montażu rozdzielaczy do podłogówki",
    "description": "Techniczne zestawienie krytycznych błędów: dowiedz się dlaczego rotametry 1/2 cala dławią przepływ, jak unikać korozji galwanicznej, zamarzania belek i dlaczego brak sprzęgła psuje układ.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-bledy",
    "name": "Rejestr Błędów Instalacyjnych HVAC (2026)",
    "description": "Baza danych parametrów granicznych prowadzących do awarii rozdzielaczy, uwzględniająca dławienie przepływów, korozję, błędną lokalizację, mieszanie średnic rur oraz braki w układach mieszających.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "korozja galwaniczna rozdzielacza mosiężnego",
      "dławienie przepływu rotametru 1/2 cala",
      "zapowietrzenie podłogówki brak odpowietrznika",
      "zamarzanie rozdzielacza w garażu",
      "mieszanie rur o różnych średnicach PEX",
      "brak sprzęgła hydraulicznego podłogówka z grzejnikami",
      "brak układu mieszającego przy kotle na pelet"
    ],
    "measurementTechnique": "Analiza oporów hydraulicznych, detekcja reakcji elektrochemicznych oraz ocena ryzyka błędów układów pompowych i mieszających.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Korozja galwaniczna w rozdzielaczu mosiężnym.",
        "Błąd 2: Dławienie przepływu przez tanie rotametry 1/2 cala.",
        "Błąd 3: Zjawisko zapowietrzenia z powodu braku zaworów spustowych.",
        "Błąd 4: Dezinformacja wymiarowa – cienka ścianka wewnętrzna.",
        "Błąd 5: Złe umiejscowienie odpowietrzników (poniżej szczytu belki).",
        "Błąd 6: Błędy zrównoważenia hydraulicznego przy różnych średnicach rur na jednej belce.",
        "Błąd 7: Montaż w strefie przemarzania prowadzący do pęknięcia odlewu.",
        "Błąd 8: Zasilanie podłogówki z kotła stałopalnego bez obniżenia temperatury zasilania.",
        "Błąd 9: Przegrzewanie posadzki pod szafką przez brak peszli na dobiegach.",
        "Błąd 10: Podłączanie podłogówki i grzejników na jednej pompie bez sprzęgła hydraulicznego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-bledy",
    "name": "Interaktywny Skaner Awarii Rozdzielaczy Ogrzewania",
    "description": "Narzędzie edukacyjne demonstrujące 10 krytycznych zjawisk hydraulicznych oraz elektrochemicznych powstających w wyniku nieprawidłowego montażu układów dystrybucyjnych CO.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="bledy-rozdzielaczy-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Błędów Instalacyjnych (Top 10)
        </div>
        <h2>Najczęstsze błędy instalatorów przy doborze rozdzielaczy</h2>
        <p>Ignorancja techniczna przy zakupie uzbrojenia kotłowni mści się latami. Kliknij w poniższe strefy ryzyka, aby poznać przyczyny awarii i natychmiastowe rozwiązania inżynierskie.</p>
    </div>

    <div class="rk-err-dashboard">
        <div class="rk-err-nav">
            <button class="rk-err-btn active" data-err="galvanic">
                <div class="rk-err-btn-icon">1</div>
                <div class="rk-err-btn-text">Korozja galwaniczna styków (mosiądz/stal)</div>
            </button>
            
            <button class="rk-err-btn" data-err="rotameter">
                <div class="rk-err-btn-icon">2</div>
                <div class="rk-err-btn-text">Dławienie przepływu przez rotametry 1/2"</div>
            </button>

            <button class="rk-err-btn" data-err="airblock">
                <div class="rk-err-btn-icon">3</div>
                <div class="rk-err-btn-text">Zapowietrzenie (brak zaworów spustowych)</div>
            </button>

            <button class="rk-err-btn" data-err="thickness">
                <div class="rk-err-btn-icon">4</div>
                <div class="rk-err-btn-text">Dezinformacja grubości ścianki odlewu</div>
            </button>

            <button class="rk-err-btn" data-err="venting">
                <div class="rk-err-btn-icon">5</div>
                <div class="rk-err-btn-text">Źle umiejscowiony odpowietrznik na belce</div>
            </button>

            <button class="rk-err-btn" data-err="diameters">
                <div class="rk-err-btn-icon">6</div>
                <div class="rk-err-btn-text">Mieszanie średnic rur bez kompensacji Kv</div>
            </button>

            <button class="rk-err-btn" data-err="freezing">
                <div class="rk-err-btn-icon">7</div>
                <div class="rk-err-btn-text">Zamarzanie rozdzielacza w garażu</div>
            </button>
            
            <button class="rk-err-btn" data-err="mixing">
                <div class="rk-err-btn-icon">8</div>
                <div class="rk-err-btn-text">Zasilanie z kotła bez układu mieszającego</div>
            </button>

            <button class="rk-err-btn" data-err="insulation">
                <div class="rk-err-btn-icon">9</div>
                <div class="rk-err-btn-text">Brak izolacji rur dobiegowych pod szafką</div>
            </button>

            <button class="rk-err-btn" data-err="radiators">
                <div class="rk-err-btn-icon">10</div>
                <div class="rk-err-btn-text">Łączenie z grzejnikami bez sprzęgła</div>
            </button>
        </div>

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

<script>
(function() {
    function initErrorDashboard() {
        const errorData = {
            galvanic: {
                title: "Korozja galwaniczna na stykach rozdzielacza mosiężnego z elementami stalowymi",
                text: "Montaż stalowych belek i mosiężnych śrubunków bez uszczelek płaskich wywołuje <strong>korozję galwaniczną</strong> na stykach metali. Różnica potencjałów sprawia, że anoda (zazwyczaj mniej szlachetny mosiądz ze stopu zanieczyszczonego) ulega gwałtownej destrukcji. To bezpośrednia przyczyna zatarcia gwintów, przecieków w szafce instalacyjnej i kosztownych awarii, o których wielokrotnie wspominałem w bazie wiedzy inwestora.",
                solution: "Zawsze stosuj dedykowane uszczelnienia o-ring lub uszczelki płaskie EPDM, całkowicie separujące styk różnych metali w kotłowni. Nie dopuszczaj do styku gwint na gwint z pakułami między stalą a mosiądzem."
            },
            rotameter: {
                title: "Dławienie przepływu pompy ciepła przez tanie rotametry 1/2 cala",
                text: "Najtańsze produkty na rynku posiadają przyłącza rotametrów <strong>1/2 cala</strong> z potężnym zwężeniem wewnętrznym w korpusie z tworzywa. Ten błąd dławi przepływ czynnika grzewczego do wartości poniżej <strong>1,5 l/min</strong>, niezależnie od tego, jak mocna jest pompa obiegowa. Ogranicza to oddawanie ciepła przez posadzkę. Zawsze weryfikuj jak pracuje profesjonalny <a href='https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/'>rotametr (wskaźnik przepływu) w rozdzielaczu</a>.",
                solution: "Minimalny akceptowalny przepływ nominalny wskaźnika to 2,5 - 5,0 l/min bez efektu dławienia (przewężenia przekroju) na samej belce powrotnej."
            },
            airblock: {
                title: "Zapowietrzenie pętli podłogówki z powodu braku zaworów spustowo-odpowietrzających",
                text: "Zastosowanie gołej belki rozdzielacza (bez grupy odpowietrzającej na końcu) uniemożliwia prawidłowe napełnienie układu z wodociągu. Próba zalania wszystkich pętli na raz kończy się zjawiskiem uwięzienia korków powietrznych w wężownicach – podłoga miejscami pozostaje permanentnie zimna. Dokładne skutki tego błędu zdiagnozowaliśmy w artykule: <a href='https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/'>objawy zapowietrzenia ogrzewania podłogowego</a>.",
                solution: "Każda belka (zarówno zasilanie, jak i powrót) musi obligatoryjnie kończyć się automatycznym lub ręcznym zaworem odpowietrzającym z kurkiem spustowym dla węża."
            },
            thickness: {
                title: "Dezinformacja wymiarowa: Zbyt mała średnica wewnętrzna w stosunku do grubości odlewu",
                text: "Wielu instalatorów amatorów ocenia jakość rozdzielacza mosiężnego po jego zewnętrznej \"masywności\". Niestety, budżetowe odlewy posiadają często bardzo grube ścianki zewnętrzne, kryjąc wewnątrz ekstremalnie małą średnicę otworu wodnego. Drastycznie ogranicza to ich przepustowość hydrauliczną (współczynnik Kv) i sztucznie wymusza przyspieszenie prędkości przepływu czynnika, co objawia się uporczywymi szumami w instalacji.",
                solution: "Miarodajnym parametrem doboru nie jest waga czy grubość zewnętrzna, lecz rzeczywista średnica wewnętrzna przekroju (np. pełne DN25) oraz udokumentowany przez producenta współczynnik Kv (najlepiej > 3,8 m³/h)."
            },
            venting: {
                title: "Błędne umiejscowienie zaworu odpowietrzającego poniżej osi zasilania",
                text: "Powietrze w układach wodnych zawsze wędruje do najwyższego punktu. Jeśli korpus odpowietrznika wkręcony jest z boku belki (poniżej jej górnej osi) lub – co gorsza – szafka z rozdzielaczem umieszczona jest w piwnicy, a pętle biegną po suficie na parterze, układ samoczynnie nigdy się nie odpowietrzy. Permanentne bąble powietrza drastycznie zakłócają <a href='https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/'>prawidłowy obieg w rozstawach rur</a>, zmniejszając moc grzewczą.",
                solution: "Odpowietrznik automatyczny musi znajdować się w najwyższym geometrycznym punkcie belki (skierowany idealnie pionowo w górę). Jeśli pętle są wyżej niż rozdzielacz, odpowietrzniki muszą znaleźć się na końcówkach pętli."
            },
            diameters: {
                title: "Mieszanie rur PEX o różnych średnicach na jednym rozdzielaczu bez przeprojektowania",
                text: "Podłączanie obwodu na rurze 16x2.0 zaraz obok obwodu na rurze 17x2.0 lub 20x2.0 na tej samej belce – bez rygorystycznego przeprojektowania przepływów na rotametrach – to najszybsza droga do rozregulowania hydraulicznego. Woda płynie najmniejszą linią oporu. Rura o większej średnicy \"ukradnie\" cały przepływ, pozostawiając pętle z cieńszą rurką niedogrzanymi.",
                solution: "Na jednym rozdzielaczu stosuj rury o tej samej średnicy. W przypadku konieczności ich mieszania, absolutnie wymagane jest profesjonalne zrównoważenie hydrauliczne oparte na dokładnych wyliczeniach projektu OZC."
            },
            freezing: {
                title: "Montaż rozdzielacza z wodą w strefie przemarzania (np. nieocieplony garaż)",
                text: "Umieszczenie rozdzielacza mosiężnego lub stalowego w nieogrzewanej strefie budynku (np. wiatrołap, garaż przed ociepleniem bramy) na etapie robót mokrych kończy się katastrofą. Gdy układ zostanie napełniony zwykłą wodą i pozostawiony na zimę bez pracującej pompy ciepła, lód (zwiększający objętość wody o ok. 9%) po prostu rozerwie belkę i zawory.",
                solution: "W strefach ryzyka przemarzania podczas budowy zastosuj <a href='https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/'>glikol jako czynnik antyzamrożeniowy</a> (w połączeniu ze stalą nierdzewną) lub całkowicie, pod ciśnieniem z kompresora, wydmuchaj wodę z pętli po przeprowadzeniu prób szczelności."
            },
            mixing: {
                title: "Zasilanie rozdzielacza z kotła wysokotemperaturowego bez zaworu mieszającego",
                text: "Podłączenie podłogówki bezpośrednio pod kocioł na pelet, ekogroszek lub węgiel bez odpowiedniej grupy pompowej z zaworem termostatycznym to wyrok dla posadzki. Puszczenie na belki rozdzielacza temperatury rzędu 70°C błyskawicznie niszczy jastrych, prowadzi do pękania płytek i degradacji rur PEX. Takie <a href='https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/'>przekroczenie maksymalnej temperatury zasilania podłogówki</a> jest niedopuszczalne.",
                solution: "Przy każdym źródle wysokotemperaturowym (kocioł zasypowy, peletowy) bezwzględnie stosuj <a href='https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/'>zawór mieszający z siłownikiem</a> lub dedykowaną grupę pompową obniżającą i stabilizującą parametr wody na wejściu do rozdzielacza."
            },
            insulation: {
                title: "Przegrzewanie posadzki pod szafką: brak izolacji rur dobiegowych",
                text: "Koncentracja kilkunastu lub kilkudziesięciu niezaizolowanych rur zasilających (tzw. dobiegów) w jednym miejscu, tuż pod szafką rozdzielacza, powoduje drastyczne przegrzewanie tego fragmentu podłogi. Brak otuliny (peszla ochronnego) prowadzi do kumulacji ciepła, pękania wykończenia w korytarzu i braku kontroli nad <a href='https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/'>strefami brzegowymi w ogrzewaniu podłogowym</a>.",
                solution: "Wszystkie odcinki rur biegnące od rozdzielacza przez strefy, których docelowo nie mają ogrzewać, muszą być bezwzględnie poprowadzone w ciągłej otulinie izolacyjnej lub dedykowanym, grubym peszlu ochronnym nałożonym pod wylewką."
            },
            radiators: {
                title: "Łączenie rozdzielacza podłogówki z grzejnikami bez sprzęgła hydraulicznego",
                text: "Równoległe podłączenie rozdzielacza ogrzewania podłogowego i obwodu grzejnikowego do jednej pompy kotłowej bez fizycznego rozdzielenia obiegów prowadzi do \"kradzieży\" przepływu. Podłogówka, stawiająca z racji gęstych pętli dużo większy opór hydrauliczny niż proste grzejniki, przestaje efektywnie grzać. Dogłębnie omawialiśmy to w analizie <a href='https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/'>czy ogrzewanie podłogowe można podłączyć do grzejników</a>.",
                solution: "W układach mieszanych (podłogówka + grzejniki) obligatoryjnie zastosuj <a href='https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/'>sprzęgło hydrauliczne</a> oddzielające obieg główny źródła ciepła od obiegów odbiorczych. Każdy układ odbiorczy musi posiadać autonomiczną pompę obiegową."
            }
        };

        const buttons = document.querySelectorAll('.rk-err-btn');
        const contentContainer = document.getElementById('errContentContainer');

        if (!contentContainer || buttons.length === 0) return;

        function loadContent(key) {
            const data = errorData[key];
            if(!data) return;
            
            // Usunięcie starej i dodanie nowej klasy by wywołać animację CSS
            contentContainer.classList.remove('rk-err-content');
            void contentContainer.offsetWidth; // trigger reflow
            contentContainer.classList.add('rk-err-content');

            contentContainer.innerHTML = `
                <h3>${data.title}</h3>
                <p>${data.text}</p>
                <div class="rk-err-solution">
                    <span class="rk-err-solution-title">Inżynierskie Rozwiązanie</span>
                    <p class="rk-err-solution-text">${data.solution}</p>
                </div>
            `;
        }

        buttons.forEach(btn => {
            btn.onclick = function() {
                buttons.forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                const key = this.getAttribute('data-err');
                loadContent(key);
            };
        });

        // Ładowanie pierwszej zakładki
        loadContent('galvanic');
    }

    // Niezawodne uruchamianie skryptu (szczególnie dla WordPress)
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initErrorDashboard);
    } else {
        initErrorDashboard();
    }
})();
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-slate: #475569;
    --rk-case-light: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-blue: #0284c7;
    --rk-case-blue-bg: #e0f2fe;
    --rk-case-accent: #38bdf8;
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #dcfce7;
    --rk-case-brass: #d97706;
}

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

/* Header */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-accent);
}

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

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

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

/* Dashboard Interactive Area */
.rk-case-dashboard {
    padding: 40px 50px;
    background: var(--rk-case-light);
}

/* Toggles */
.rk-case-toggles {
    display: flex;
    background: #e2e8f0 !important;
    border-radius: 100px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 30px auto;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-case-btn {
    flex: 1;
    padding: 16px 20px !important;
    border-radius: 100px !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    z-index: 2 !important;
    color: var(--rk-case-slate) !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-case-btn.active-bad, .rk-case-btn.active-good {
    color: #ffffff !important;
}

.rk-case-selector {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    height: calc(100% - 12px) !important;
    width: calc(50% - 6px) !important;
    border-radius: 100px !important;
    background: var(--rk-case-red) !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15) !important;
    z-index: 1 !important;
}

.rk-case-selector.pos-good {
    transform: translateX(100%) !important;
    background: var(--rk-case-green) !important;
}

/* Container for Stats (Replaced Visualizer) */
.rk-case-stats-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

/* Stats Cards */
.rk-case-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    width: 100%;
}

.rk-case-stat-card {
    padding: 25px 15px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--rk-case-border);
    transition: all 0.4s ease;
}

/* Explicit body wrapper to control state styles more safely */
.rk-case-state-container.state-bad .rk-case-stat-card { 
    background: var(--rk-case-red-bg); 
    border-color: #fca5a5; 
}

.rk-case-state-container.state-good .rk-case-stat-card { 
    background: var(--rk-case-green-bg); 
    border-color: #86efac; 
}

.rk-stat-label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-case-slate);
    margin-bottom: 8px;
}

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    transition: color 0.4s;
}

.rk-case-state-container.state-bad .rk-stat-val { color: var(--rk-case-red); }
.rk-case-state-container.state-good .rk-stat-val { color: var(--rk-case-green); }

/* Content Narrative */
.rk-case-content {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-case-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-case-slate);
    margin: 0 0 20px 0;
}

.rk-case-content strong {
    color: var(--rk-case-dark);
}

.rk-case-content a {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-case-content a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
    background: var(--rk-case-blue-bg);
}

/* Callout Box */
.rk-case-callout {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-case-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-callout-title {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-case-blue);
    margin-bottom: 8px;
    letter-spacing: 1px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-dashboard, .rk-case-content { padding: 30px 20px; }
    .rk-case-toggles { flex-direction: column; border-radius: 16px !important; }
    .rk-case-btn { padding: 12px 15px !important; }
    .rk-case-selector { width: calc(100% - 12px) !important; height: calc(50% - 6px) !important; border-radius: 12px !important; }
    .rk-case-selector.pos-good { transform: translateY(100%) !important; left: 6px !important; }
    .rk-case-stats { grid-template-columns: 1fr; gap: 10px; }
    .rk-case-stats-wrapper { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Studium Przypadku: Optymalizacja projektu ogrzewania podłogowego. Dlaczego zmieniliśmy rozdzielacz z mosiądzu na stal?",
    "description": "Case study z Płocka. Zobacz, jak błędny projekt konkurencji wymusił zbyt długie pętle i zagęszczenie rur, oraz jak zastosowanie stali nierdzewnej uratowało portfel inwestora.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-casestudy",
    "name": "Porównanie Metryk Projektu OZC: Przed i Po Optymalizacji",
    "description": "Zestawienie parametrów układu płaszczyznowego dla domu 150m2 obrazujące spadek oporów i ilości rur PEX po zastosowaniu belki ze stali szlachetnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalizacja projektu ogrzewania podłogowego",
      "błędy w projekcie podłogówki konkurencji",
      "rozdzielacz stalowy a opory hydrauliczne",
      "za długa pętla podłogówki",
      "ile rury na m2 ogrzewania podłogowego"
    ],
    "measurementTechnique": "Redukcja dławienia na rozdzielaczu (Kv) pozwalająca na przeliczenie autorytetu zaworów i bezpieczne zwiększenie rozstawu rur z 10 cm na 15 cm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt Konkurencji: Mosiądz DN25, opór 24 kPa, rozstaw 10 cm, pętle 120 mb.",
        "Optymalizacja Inżynierska: Stal DN32, opór 14 kPa, rozstaw 15 cm, pętle max 85 mb."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-casestudy",
    "name": "Interaktywny Symulator Optymalizacji Projektu",
    "description": "Narzędzie demonstrujące wpływ zmiany komponentu uzbrojenia kotłowni na parametry układu, długość pętli i zrównoważenie hydrauliczne całego domu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rozdzielacz-case-app">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Studium Przypadku (Case Study)
        </div>
        <h2>Pan Jerzy z Płocka i "tani" projekt od konkurencji. Dlaczego musieliśmy wszystko przeprojektować?</h2>
        <p>Decyzja o tańszym rozdzielaczu podjęta przy biurku kosztuje inwestora tysiące złotych na placu budowy. Zobacz, jak uratowaliśmy instalację przed katastrofą hydrauliczną.</p>
    </div>

    <div class="rk-case-dashboard">
        <div class="rk-case-toggles">
            <div class="rk-case-selector" id="caseSelector"></div>
            <button class="rk-case-btn active-bad" data-state="bad" id="btnCaseBad">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Projekt Konkurencji (Mosiądz)
            </button>
            <button class="rk-case-btn" data-state="good" id="btnCaseGood">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Nasza Optymalizacja (Stal)
            </button>
        </div>

        <div class="rk-case-state-container state-bad" id="caseStateContainer">
            <div class="rk-case-stats-wrapper">
                <div class="rk-case-stats">
                    <div class="rk-case-stat-card">
                        <div class="rk-stat-label">Max. długość pętli</div>
                        <div class="rk-stat-val" id="statLoop">110 mb (Przekroczona!)</div>
                    </div>
                    <div class="rk-case-stat-card">
                        <div class="rk-stat-label">Rozstaw rur (Salon)</div>
                        <div class="rk-stat-val" id="statSpace">Co 10 cm (Gęsto)</div>
                    </div>
                    <div class="rk-case-stat-card">
                        <div class="rk-stat-label">Opory / Dławienie</div>
                        <div class="rk-stat-val" id="statResist">24 kPa (Krytyczne)</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-content">
        <h3>Pozorny zysk na materiałach kotłowni</h3>
        <p>
            Gdy Pan Jerzy zgłosił się do nas z gotowym projektem wykonanym przez lokalną hurtownię "za darmo", od razu zapaliła nam się czerwona lampka. Projektant założył zastosowanie taniego rozdzielacza mosiężnego (profil 1", mały parametr Kv). Z pozoru oszczędność na rozdzielaczu wynosiła około 300 zł. Jednak w inżynierii nic nie ginie.
        </p>
        <p>
            Zdławiony przepływ na belce mosiężnej sprawił, że program obliczeniowy musiał drastycznie skompensować braki mocy. Skutek? Projektant narzucił rozstaw rur co 10 cm na całej powierzchni 45-metrowego salonu. To wywindowało zapotrzebowanie na rurę z 300 mb do ponad 450 mb. Zaczęliśmy zastanawiać się <a href="https://projekt-ogrzewania.pl/ile-rury-na-m2-ogrzewania-podlogowego/">ile faktycznie rury na m² ogrzewania podłogowego</a> jest tu potrzebne i dlaczego naruszono strefy krytyczne.
        </p>

        <h3>Błędy prowadzące do katastrofy</h3>
        <p>
            Najgorsze miało dopiero nadejść. Zagęszczenie rur spowodowało, że jedna z pętli osiągnęła długość 110 metrów. Jak wiemy z analizy <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli ogrzewania podłogowego</a>, przekroczenie granicy 100 mb dla rury 16x2.0 przy pompie ciepła generuje tzw. "martwą strefę". Woda na powrocie byłaby całkowicie wychłodzona, a pompa obiegowa pracowałaby na najwyższym biegu, generując szumy i wysokie rachunki. Właśnie tak wygląda efekt <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długiej pętli podłogówki</a> zrobionej bez nadzoru inżyniera.
        </p>

        <div class="rk-case-callout">
            <span class="rk-callout-title">Nasza inżynierska optymalizacja</span>
            <p>
                Wyrzuciliśmy stary plan do kosza. Wykonaliśmy pełne <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">obliczenia OZC na nowo</a>, zmieniając bazowy rozdzielacz na model ze <strong>stali nierdzewnej AISI 304 (profil DN32)</strong> o doskonałym współczynniku Kv. Efekt? 
                <br><br>
                Znieśliśmy dławienie węzła. To pozwoliło nam powiększyć rozstaw rur do komfortowych 15 cm. Długość najdłuższej pętli spadła do bezpiecznych 85 mb. Pan Jerzy zaoszczędził 150 metrów rury PEX, dniówkę instalatora, a jego pompa ciepła będzie pracować o 20% lżej. <strong>Właśnie dlatego materiał rozdzielacza to fundament całego systemu.</strong>
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnBad = document.getElementById('btnCaseBad');
    const btnGood = document.getElementById('btnCaseGood');
    const selector = document.getElementById('caseSelector');
    const stateContainer = document.getElementById('caseStateContainer');
    
    // Stats elements
    const statLoop = document.getElementById('statLoop');
    const statSpace = document.getElementById('statSpace');
    const statResist = document.getElementById('statResist');

    function setBadState() {
        // UI
        btnBad.classList.add('active-bad');
        btnGood.classList.remove('active-good');
        selector.classList.remove('pos-good');
        stateContainer.className = 'rk-case-state-container state-bad';
        
        // Data Update
        statLoop.textContent = '110 mb (Przekroczona!)';
        statSpace.textContent = 'Co 10 cm (Gęsto)';
        statResist.textContent = '24 kPa (Krytyczne)';
    }

    function setGoodState() {
        // UI
        btnGood.classList.add('active-good');
        btnBad.classList.remove('active-bad');
        selector.classList.add('pos-good');
        stateContainer.className = 'rk-case-state-container state-good';
        
        // Data Update
        statLoop.textContent = 'Max 85 mb (Bezpiecznie)';
        statSpace.textContent = 'Co 15 cm (Optymalnie)';
        statResist.textContent = '14 kPa (Niskie)';
    }

    btnBad.addEventListener('click', setBadState);
    btnGood.addEventListener('click', setGoodState);
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-slate: #334155;
    --rk-auth-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-bg: #e0f2fe;
    --rk-auth-accent: #38bdf8;
    --rk-auth-fb: #1877F2;
    --rk-auth-in: #0A66C2;
}

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

/* Header & Quote */
.rk-auth-header {
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-auth-accent);
}

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

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

.rk-auth-quote-box {
    display: flex;
    gap: 25px;
    align-items: flex-start;
    background: rgba(255,255,255,0.05);
    padding: 30px;
    border-radius: 16px;
    border-left: 4px solid var(--rk-auth-accent);
}

.rk-auth-quote-mark {
    font-family: Georgia, serif;
    font-size: 60px;
    color: var(--rk-auth-accent);
    line-height: 1;
    margin-top: -10px;
    opacity: 0.5;
}

.rk-auth-quote-text {
    font-size: 18px;
    line-height: 1.6;
    color: #e2e8f0;
    margin: 0 0 15px 0;
    font-style: italic;
}

.rk-auth-quote-text strong {
    color: #ffffff;
    font-style: normal;
}

.rk-auth-author {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-auth-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Tabs Navigation */
.rk-auth-nav {
    display: flex;
    background: var(--rk-auth-light);
    padding: 0;
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-slate);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

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

.rk-auth-tab-icon {
    display: flex;
    align-items: center;
}

/* Tab Content Panels */
.rk-auth-panels {
    padding: 40px 50px;
    background: #ffffff;
}

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

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

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

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

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

/* Links & Socials */
.rk-social-grid {
    display: flex;
    gap: 20px;
    margin-top: 25px;
}

.rk-social-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    color: #ffffff;
}

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

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

.rk-social-btn:hover {
    opacity: 0.9;
}

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

.rk-stat-box {
    background: var(--rk-auth-light);
    border: 1px solid var(--rk-auth-border);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
}

.rk-stat-num {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-auth-blue);
    margin-bottom: 5px;
}

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

/* Mobile */
@media (max-width: 768px) {
    .rk-auth-header, .rk-auth-panels { padding: 30px 20px; }
    .rk-auth-quote-box { flex-direction: column; gap: 15px; padding: 20px; }
    .rk-auth-nav { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 3px solid transparent; padding: 15px; justify-content: flex-start; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-social-grid { flex-direction: column; }
    .rk-stats-grid { grid-template-columns: 1fr; }
    .rk-auth-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Werdykt inżyniera: Rozdzielacz mosiężny czy ze stali nierdzewnej? – odpowiada Robert Kucharski",
    "description": "Autorski werdykt eksperta HVAC dotyczący doboru rozdzielaczy do ogrzewania podłogowego. Poznaj argumenty inżyniera poparte ponad 1000 zrealizowanych projektów OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC / Ekspert ds. systemów grzewczych",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-ekspert",
    "name": "Statystyki Niezawodności Instalacji wg. Roberta Kucharskiego",
    "description": "Baza danych podsumowująca doświadczenie projektowe autora w zakresie doboru armatury zbrojeniowej w systemach ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "werdykt eksperta rozdzielacz do podłogówki",
      "robert kucharski projekt ogrzewania",
      "rozdzielacz ze stali nierdzewnej a mosiężny opinie",
      "doświadczenie inżyniera hvac",
      "projekt instalacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Agregacja danych empirycznych z ponad 1000 zrealizowanych projektów OZC, nadzoru wykonawczego oraz analizy awaryjności materiałów w Polsce.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecenie główne: Stal nierdzewna AISI 304 w instalacjach z pompą ciepła.",
        "Potwierdzona sprawność: Wyeliminowanie oporów hydraulicznych dławiących pompę.",
        "Podstawa oceny: Normy techniczne i realne warunki pracy na budowie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-ekspert",
    "name": "Wizytówka Eksperta E-E-A-T",
    "description": "Interaktywny panel prezentujący wiarygodność, autorytet i podsumowanie techniczne autora, umożliwiający weryfikację jego kompetencji przez użytkownika.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rozdzielacz-ekspert-app">
    <div class="rk-auth-header">
        <div class="rk-auth-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Gwarancja Rzetelności
        </div>
        <h2>Werdykt autora: Rozdzielacz mosiężny czy ze stali nierdzewnej? – odpowiada Robert Kucharski</h2>
        
        <div class="rk-auth-quote-box">
            <div class="rk-auth-quote-mark">"</div>
            <div>
                <p class="rk-auth-quote-text">
                    Beton podłogowy ukryje każdy błąd instalatora, ale <strong>fizyki hydraulicznej nie oszukasz</strong>. Błędny wybór materiału na etapie zbrojenia kotłowni to wyrok dla sprawności całego układu. W inwestycjach na lata nie ma miejsca na kompromisy z tanim odlewem.
                </p>
                <div class="rk-auth-author">Robert Kucharski, CEO Projekt-Ogrzewania.pl</div>
            </div>
        </div>
    </div>

    <div class="rk-auth-nav" id="authNav">
        <button class="rk-auth-tab active" data-target="panelVerdict">
            <div class="rk-auth-tab-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            </div>
            Konkretny Werdykt
        </button>
        <button class="rk-auth-tab" data-target="panelExp">
            <div class="rk-auth-tab-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
            </div>
            Liczby i Fakty
        </button>
        <button class="rk-auth-tab" data-target="panelContact">
            <div class="rk-auth-tab-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><polyline points="16 11 18 13 22 9"></polyline></svg>
            </div>
            Zweryfikuj mnie
        </button>
    </div>

    <div class="rk-auth-panels">
        
        <div class="rk-auth-panel active" id="panelVerdict">
            <h3>Podejmij decyzję świadomie</h3>
            <p>
                Jeśli Twoim źródłem ciepła jest (lub będzie) <strong>pompa ciepła</strong>, jedynym słusznym inżynieryjnym wyborem jest rozdzielacz ze stali nierdzewnej. Nie chodzi tu o estetykę polerowanej blachy. Chodzi o pełen, nieskrępowany przepływ (Kv) generowany przez profil 1 1/4" oraz absolutną odporność na wżery korozyjne w trudnym środowisku.
            </p>
            <p>
                Rozdzielacz mosiężny możesz rozważyć wyłącznie przy silnie ograniczonym budżecie, małej instalacji (do 80 m²) zasilanej z tradycyjnego kotła oraz przy <strong>rygorystycznym pilnowaniu odczynu pH wody</strong>. Zobaczysz jednak w dalszej części artykułu interaktywne kalkulatory, które matematycznie udowodnią Ci, dlaczego dopłata do stali zwraca się w rachunkach za prąd.
            </p>
        </div>

        <div class="rk-auth-panel" id="panelExp">
            <h3>Inżynieria oparta na danych, a nie domysłach</h3>
            <p>
                W internecie pełno jest teoretyków. Moje rekomendacje opieram na solidnym fundamencie setek przeliczonych i wdrożonych instalacji, rygorystycznych obliczeniach OZC oraz normach PN-EN. To wiedza z placu budowy przeniesiona do cyfrowego świata.
            </p>
            <div class="rk-stats-grid">
                <div class="rk-stat-box">
                    <span class="rk-stat-num">1000+</span>
                    <span class="rk-stat-label">Wykonanych projektów OZC</span>
                </div>
                <div class="rk-stat-box">
                    <span class="rk-stat-num">100%</span>
                    <span class="rk-stat-label">Zgodności z normą PN-EN</span>
                </div>
                <div class="rk-stat-box">
                    <span class="rk-stat-num">20 lat</span>
                    <span class="rk-stat-label">Praktyki w HVAC</span>
                </div>
            </div>
        </div>

        <div class="rk-auth-panel" id="panelContact">
            <h3>Zobacz moje oficjalne profile na social mediach.</h3>
            <p>
                Wierzę w pełną transparentność. Jako autor portalu Projekt-Ogrzewania.pl i aktywny specjalista zapraszam Cię do moich oficjalnych kanałów. Dzielę się tam twardą wiedzą, rozwiązuję problemy na żywym organizmie budowy i obalam szkodliwe mity instalacyjne.
            </p>
            <div class="rk-social-grid">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Profil na Facebooku
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn in">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    Mój profil LinkedIn
                </a>
            </div>
        </div>

    </div>
</div>

<script>
(function() {
    function initAuthTabs() {
        const tabs = document.querySelectorAll('#authNav .rk-auth-tab');
        const panels = document.querySelectorAll('.rk-auth-panels .rk-auth-panel');

        if(tabs.length === 0 || panels.length === 0) return;

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

                // Dodawanie klasy active do kliknietego
                this.classList.add('active');

                // Pokazywanie wlasciwego panelu
                const targetId = this.getAttribute('data-target');
                const targetPanel = document.getElementById(targetId);
                if(targetPanel) {
                    targetPanel.classList.add('active');
                }
            });
        });
    }

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



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #e0f2fe;
    --rk-faq-blue-hover: #0369a1;
    --rk-faq-gray: #64748b;
    --rk-faq-bg: #ffffff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-accent: #38bdf8;
}

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

/* Header */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.rk-faq-header-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-header-icon {
    width: 60px;
    height: 60px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
    border: 1px solid rgba(56, 189, 248, 0.3);
    animation: pulseIcon 3s infinite;
    flex-shrink: 0;
}

@keyframes pulseIcon {
    0% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(56, 189, 248, 0); }
    100% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0); }
}

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

.rk-faq-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
    line-height: 1.5;
}

/* Accordion Container */
.rk-faq-list {
    padding: 30px 50px;
    background: #f8fafc;
}

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

.rk-faq-item:hover {
    border-color: #bae6fd;
    box-shadow: 0 8px 15px -5px rgba(2, 132, 199, 0.08);
}

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

/* Accordion Trigger */
.rk-faq-trigger {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-faq-question {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

.rk-faq-toggle-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-toggle-icon {
    background: var(--rk-faq-blue);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Accordion Content */
.rk-faq-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-faq-inner {
    padding: 0 30px 24px 30px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-faq-answer-line {
    width: 4px;
    height: 100%;
    min-height: 40px;
    background: var(--rk-faq-accent);
    border-radius: 4px;
    flex-shrink: 0;
    margin-top: 5px;
}

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

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

.rk-faq-text a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

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

/* Status Bar */
.rk-faq-status {
    padding: 20px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-faq-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rk-faq-status-text {
    font-size: 14px;
    color: var(--rk-faq-gray);
    font-weight: 600;
}

.rk-faq-status-badge {
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-faq-header { padding: 30px 25px; }
    .rk-faq-list { padding: 25px; }
    .rk-faq-trigger { padding: 20px; gap: 15px; }
    .rk-faq-inner { padding: 0 20px 20px 20px; }
    .rk-faq-status { padding: 20px 25px; flex-direction: column; gap: 10px; text-align: center; }
    .rk-faq-question { font-size: 15px; }
    .rk-faq-header-icon { width: 50px; height: 50px; }
    .rk-faq-header h2 { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy rozdzielacz ze stali nierdzewnej można stosować z każdym rodzajem rur (PEX, PERT)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, rozdzielacze ze stali nierdzewnej są w 100% kompatybilne z rurami PEX oraz PERT za pośrednictwem standardowych eurokonusów 3/4 cala, które posiadają uszczelnienie typu o-ring izolujące bezpośredni kontakt materiałów. Nie zachodzi tu żadna negatywna reakcja chemiczna, co gwarantuje pełną szczelność połączeń."
        }
      },
      {
        "@type": "Question",
        "name": "Jak rozpoznać, czy rozdzielacz mosiężny jest wykonany z dobrego stopu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wysokiej jakości rozdzielacz mosiężny posiada wybite oznaczenie stopu CW617N lub CW602N (DZR) na korpusie oraz charakteryzuje się dużą masą – pojedyncza belka dla 6 obwodów powinna ważyć minimum 2,2 kg. Tanie podróbki wykonane z mosiądzu złomowego są lekkie, mają cienkie ścianki i wykazują skłonność do pękania przy dokręcaniu."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego rotametry w rozdzielaczach ze stali nierdzewnej rzadziej ulegają zanieczyszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Stal nierdzewna AISI 304 nie łuszczy się i nie tworzy tlenków metali, które w przypadku mosiądzu odkładają się w postaci ciemnego osadu na szkiełkach rotametrów, ograniczając widoczność podziałki. Czystość optyczna wskaźników przepływu pozwala na precyzyjną kontrolę hydrauliczną przez cały okres użytkowania instalacji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wyższy współczynnik przepływu w rozdzielaczu stalowym zmniejsza rachunki za ogrzewanie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, wyższy współczynnik przepływu zmniejsza opory hydrauliczne instalacji, co pozwala pompie obiegowej pracować z mniejszym poborem mocy (oszczędność energii elektrycznej) oraz umożliwia obniżenie temperatury zasilania na źródle ciepła o 1-2 stopnie Celsjusza, co bezpośrednio podnosi efektywność pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w przypadku awarii jednego obwodu na rozdzielaczu stalowym muszę wymieniać całą belkę?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, nowoczesne rozdzielacze ze stali nierdzewnej posiadają w pełni wymienne podzespoły, co oznacza, że uszkodzony rotametr lub wkładkę zaworu termostatycznego można wykręcić i zastąpić nową częścią bez naruszania struktury belki. Remont ogranicza się do odcięcia danej sekcji i wymiany taniego podzespołu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o rozdzielacze do podłogówki",
    "description": "Odpowiedzi na najczęstsze pytania inwestorów dotyczące kompatybilności rur, rachunków za prąd i awaryjności rozdzielaczy mosiężnych oraz stalowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-faq",
    "name": "Baza Wiedzy i Parametrów Eksploatacyjnych Rozdzielaczy HVAC",
    "description": "Zbiór danych empirycznych i odpowiedzi na problemy eksploatacyjne, określający trwałość rotametrów, parametry wymiany podzespołów oraz wpływ współczynnika Kv na pobór energii elektrycznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zanieczyszczenie rotametrów",
      "rury PEX a stal nierdzewna",
      "wymiana rotametru bez demontażu belki",
      "stop mosiądzu CW617N jakość",
      "oszczędność energii pompa obiegowa"
    ],
    "measurementTechnique": "Analiza empiryczna awaryjności i kompatybilności materiałowej w 1000+ instalacjach niskotemperaturowych w Polsce.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kompatybilność eurokonusów 3/4 z materiałami PEX/PERT bez reakcji galwanicznej.",
        "Różnice w tworzeniu tlenków na szkiełkach rotametrów między mosiądzem a stalą AISI 304.",
        "Wpływ przepływu na spadek obciążenia pompy obiegowej i COP pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-faq",
    "name": "Interaktywny Asystent FAQ Instalatora",
    "description": "Moduł dynamicznie rozwijanych zagadnień technicznych, wspomagający diagnostykę problemów i optymalizację doboru materiałów instalacyjnych przez inwestorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-wrapper" id="rozdzielacz-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-header-content">
            <div class="rk-faq-header-icon">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
                    <line x1="12" y1="17" x2="12.01" y2="17"></line>
                    <path d="M22 12A10 10 0 1 1 2 12a10 10 0 0 1 20 0z"></path>
                </svg>
            </div>
            <div>
                <h2>FAQ – Najczęściej zadawane pytania</h2>
                <p>Kompilacja wiedzy inżynierskiej odpowiadająca na obawy inwestorów przed montażem.</p>
            </div>
        </div>
    </div>

    <div class="rk-faq-list">
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3 class="rk-faq-question">Czy rozdzielacz ze stali nierdzewnej można stosować z każdym rodzajem rur (PEX, PERT)?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content-wrapper">
                <div class="rk-faq-content">
                    <div class="rk-faq-inner">
                        <div class="rk-faq-answer-line"></div>
                        <p class="rk-faq-text">
                            <strong>Tak</strong>, rozdzielacze ze stali nierdzewnej są w 100% kompatybilne z <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rurami PEX</a> oraz PERT za pośrednictwem standardowych eurokonusów 3/4", które posiadają uszczelnienie typu o-ring izolujące bezpośredni kontakt materiałów. Nie zachodzi tu żadna negatywna reakcja chemiczna, co gwarantuje pełną szczelność połączeń.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3 class="rk-faq-question">Jak rozpoznać, czy rozdzielacz mosiężny jest wykonany z dobrego stopu?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content-wrapper">
                <div class="rk-faq-content">
                    <div class="rk-faq-inner">
                        <div class="rk-faq-answer-line"></div>
                        <p class="rk-faq-text">
                            Wysokiej jakości rozdzielacz mosiężny posiada wybite oznaczenie stopu <strong>CW617N lub CW602N (DZR)</strong> na korpusie oraz charakteryzuje się dużą masą – pojedyncza belka dla 6 obwodów powinna ważyć minimum 2,2 kg. Tanie podróbki wykonane z mosiądzu złomowego są lekkie, mają cienkie ścianki i wykazują skłonność do pękania przy dokręcaniu, co często bywa źródłem poważnych awarii, wymienianych w artykule o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędach przy montażu instalacji</a>.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3 class="rk-faq-question">Dlaczego rotametry w rozdzielaczach ze stali nierdzewnej rzadziej ulegają zanieczyszczeniu?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content-wrapper">
                <div class="rk-faq-content">
                    <div class="rk-faq-inner">
                        <div class="rk-faq-answer-line"></div>
                        <p class="rk-faq-text">
                            Stal nierdzewna AISI 304 nie łuszczy się i nie tworzy tlenków metali, które w przypadku mosiądzu odkładają się w postaci ciemnego osadu na szkiełkach rotametrów, ograniczając widoczność podziałki. Gwarantowana jest czystość optyczna, zwłaszcza gdy w układzie krąży dedykowana <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">woda demineralizowana z inhibitorem korozji</a>. Pozwala to na precyzyjną kontrolę hydrauliczną przez cały okres użytkowania.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3 class="rk-faq-question">Czy wyższy współczynnik przepływu w rozdzielaczu stalowym zmniejsza rachunki za ogrzewanie?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content-wrapper">
                <div class="rk-faq-content">
                    <div class="rk-faq-inner">
                        <div class="rk-faq-answer-line"></div>
                        <p class="rk-faq-text">
                            <strong>Tak</strong>, wyższy współczynnik przepływu zmniejsza opory hydrauliczne instalacji, co pozwala pompie obiegowej pracować z mniejszym poborem mocy (oszczędność energii elektrycznej). Dodatkowo umożliwia obniżenie temperatury zasilania na źródle ciepła o 1-2°C, co bezpośrednio podnosi efektywność pompy ciepła i <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">energooszczędność całej podłogówki</a>.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3 class="rk-faq-question">Czy w przypadku awarii jednego obwodu na rozdzielaczu stalowym muszę wymieniać całą belkę?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content-wrapper">
                <div class="rk-faq-content">
                    <div class="rk-faq-inner">
                        <div class="rk-faq-answer-line"></div>
                        <p class="rk-faq-text">
                            <strong>Nie</strong>, nowoczesne rozdzielacze ze stali nierdzewnej posiadają w pełni wymienne podzespoły. Oznacza to, że uszkodzony rotametr lub wkładkę zaworu termostatycznego można wykręcić i zastąpić nową częścią bez naruszania struktury belki. Z tego powodu <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">cykliczny serwis ogrzewania podłogowego</a> ogranicza się jedynie do odcięcia danej sekcji zaworami i wymiany taniego elementu.
                        </p>
                    </div>
                </div>
            </div>
        </div>

    </div>
    
    <div class="rk-faq-status">
        <div class="rk-faq-status-text">Baza danych oparta na > 1000 zrealizowanych projektach (OZC)</div>
        <div class="rk-faq-status-badge">Wiedza Inżynierska</div>
    </div>
</div>

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

    triggers.forEach(trigger => {
        trigger.addEventListener('click', function() {
            const item = this.closest('.rk-faq-item');
            const isActive = item.classList.contains('active');

            // Close all items
            document.querySelectorAll('.rk-faq-item').forEach(faqItem => {
                faqItem.classList.remove('active');
                faqItem.querySelector('.rk-faq-trigger').setAttribute('aria-expanded', 'false');
            });

            // If it wasn't active, open it
            if (!isActive) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-v-dark: #0f172a;
    --rk-v-steel: #64748b;
    --rk-v-steel-light: #f1f5f9;
    --rk-v-steel-accent: #38bdf8;
    --rk-v-brass: #d97706;
    --rk-v-brass-light: #fef3c7;
    --rk-v-green: #10b981;
    --rk-v-red: #ef4444;
    --rk-v-blue: #0284c7;
    --rk-v-border: #e2e8f0;
    --rk-v-bg: #ffffff;
}

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

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

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

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

/* Interactive Section */
.rk-v-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

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

/* Toggle Switch */
.rk-v-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 100px;
    padding: 6px;
    max-width: 500px;
    margin: 0 auto 40px auto;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.06);
}

.rk-v-btn {
    flex: 1;
    padding: 14px 20px;
    border-radius: 100px;
    font-weight: 800;
    font-size: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    color: #64748b;
    border: none;
    background: transparent;
}

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

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

.rk-v-selector {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    border-radius: 100px;
    background: var(--rk-v-dark);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    z-index: 1;
}

.rk-v-selector.pos-brass {
    transform: translateX(100%);
    background: var(--rk-v-brass);
}

/* Data Dashboard / Gauges */
.rk-v-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-bottom: 30px;
}

.rk-v-card {
    background: #ffffff;
    border: 1px solid var(--rk-v-border);
    border-radius: 20px;
    padding: 25px 15px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: transform 0.3s;
}

.rk-v-card:hover {
    transform: translateY(-5px);
}

.rk-gauge-svg {
    width: 100px;
    height: 100px;
    margin: 0 auto 15px auto;
    transform: rotate(-90deg);
}

.rk-gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 8;
}

.rk-gauge-fill {
    fill: none;
    stroke: var(--rk-v-steel-accent);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 251.2;
    stroke-dashoffset: 251.2;
    transition: stroke-dashoffset 1s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s ease;
}

.rk-v-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-v-dark);
    margin: 0 0 5px 0;
    transition: color 0.3s;
}

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

/* Text Result Box */
.rk-v-summary-box {
    background: var(--rk-v-steel-light);
    border-left: 5px solid var(--rk-v-steel-accent);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    transition: all 0.4s;
}

.rk-v-summary-box.theme-brass {
    background: var(--rk-v-brass-light);
    border-left-color: var(--rk-v-brass);
}

.rk-v-summary-box h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-v-dark);
}

.rk-v-summary-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
}

/* Project Info Section */
.rk-v-project-info {
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    align-items: center;
    gap: 30px;
    border-top: 1px solid var(--rk-v-border);
}

.rk-v-project-icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    background: var(--rk-v-light-blue);
    color: var(--rk-v-blue);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.rk-v-project-text a {
    color: var(--rk-v-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-v-project-text a:hover {
    color: #0369a1;
}

/* CTA Footer */
.rk-v-cta {
    padding: 40px 50px;
    background: var(--rk-v-dark);
    text-align: center;
}

.rk-v-cta-title {
    color: #ffffff;
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 25px 0;
}

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

.rk-btn-expert:hover {
    transform: translateY(-4px);
    background: #38bdf8;
    box-shadow: 0 15px 25px -5px rgba(56, 189, 248, 0.5);
}

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

.rk-btn-expert:hover svg {
    transform: translateX(6px);
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    .rk-v-header, .rk-v-interactive, .rk-v-project-info, .rk-v-cta { padding: 30px 20px; }
    .rk-v-dashboard { grid-template-columns: 1fr; gap: 15px; } /* Stack as tiles */
    .rk-v-project-info { flex-direction: column; text-align: center; gap: 20px; }
    .rk-v-toggle-wrapper { flex-direction: column; border-radius: 16px; }
    .rk-v-btn { padding: 16px; }
    .rk-v-selector { width: calc(100% - 12px); height: calc(50% - 6px); border-radius: 12px; }
    .rk-v-selector.pos-brass { transform: translateY(100%); left: 6px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Techniczny werdykt eksperta: Rozdzielacz mosiężny czy ze stali nierdzewnej do pompy ciepła?",
    "description": "Techniczne zestawienie i werdykt eksperta. Dowiedz się, dlaczego stal nierdzewna wygrywa z mosiądzem w instalacjach z pompą ciepła i glikolem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset",
    "name": "Zestawienie opłacalności: Stal nierdzewna vs Mosiądz w Ogrzewaniu Podłogowym (ROI)",
    "description": "Dane techniczne oraz wskaźniki bezawaryjności układu rozdzielczego, uwzględniające średnicę, przepływy (Kv) i odporność korozyjną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "trwałość rozdzielacza",
      "stal nierdzewna vs mosiądz",
      "awarie ogrzewania podłogowego",
      "odporność na glikol",
      "woda demineralizowana w podłogówce"
    ],
    "measurementTechnique": "Porównanie symulacyjne spadków ciśnienia hydraulicznego (Kv) i podatności na korozję galwaniczną po 10 latach pracy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stal Nierdzewna (AISI 304): 100% odporność na glikol, przepływ +20%, gwarancja 10 lat.",
        "Mosiądz (CW617N): Ograniczona żywotność przy pH < 7.5, niższy przepływ wody zasilającej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp",
    "name": "Kalkulator Werdyktu Technicznego - Wybór Materiału",
    "description": "Interaktywne środowisko wizualizujące różnice w przepustowości hydraulicznej i gwarancji pomiędzy stalą nierdzewną a mosiądzem.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-verdict-container" id="rozdzielacz-verdict-app">
    <div class="rk-v-header">
        <h2>Techniczny werdykt eksperta: Rozdzielacz mosiężny czy ze stali nierdzewnej do pompy ciepła?</h2>
        <p>W pojedynku materiałowym jednoznacznym zwycięzcą w kategoriach technicznych oraz ekonomicznych (biorąc pod uwagę długofalową eksploatację) zostaje rozdzielacz ze stali nierdzewnej.</p>
    </div>

    <div class="rk-v-interactive">
        <h3>Porównanie materiałów w warunkach rzeczywistych (woda demineralizowana i glikol)</h3>
        
        <div class="rk-v-toggle-wrapper" id="materialToggle">
            <div class="rk-v-selector" id="toggleSelector"></div>
            <button class="rk-v-btn active-steel" data-mat="steel" id="btnSteel">Stal Nierdzewna AISI 304</button>
            <button class="rk-v-btn" data-mat="brass" id="btnBrass">Mosiądz (CW617N)</button>
        </div>

        <div class="rk-v-dashboard">
            <div class="rk-v-card">
                <svg class="rk-gauge-svg" viewBox="0 0 100 100">
                    <circle class="rk-gauge-bg" cx="50" cy="50" r="40" />
                    <circle class="rk-gauge-fill" id="gaugeFlow" cx="50" cy="50" r="40" />
                </svg>
                <div class="rk-v-value" id="valFlow">4,5 m³/h</div>
                <div class="rk-v-label">Współczynnik (Kv)</div>
            </div>

            <div class="rk-v-card">
                <svg class="rk-gauge-svg" viewBox="0 0 100 100">
                    <circle class="rk-gauge-bg" cx="50" cy="50" r="40" />
                    <circle class="rk-gauge-fill" id="gaugeResist" cx="50" cy="50" r="40" />
                </svg>
                <div class="rk-v-value" id="valResist">100%</div>
                <div class="rk-v-label">Odporność (Glikol/Chemia)</div>
            </div>

            <div class="rk-v-card">
                <svg class="rk-gauge-svg" viewBox="0 0 100 100">
                    <circle class="rk-gauge-bg" cx="50" cy="50" r="40" />
                    <circle class="rk-gauge-fill" id="gaugeWar" cx="50" cy="50" r="40" />
                </svg>
                <div class="rk-v-value" id="valWar">10-15 lat</div>
                <div class="rk-v-label">Ochrona Gwarancyjna</div>
            </div>
        </div>

        <div class="rk-v-summary-box" id="summaryBox">
            <h4 id="sumTitle">Inwestycja w niezawodność</h4>
            <p id="sumText">Zapewnia on wyższe przepływy hydrauliczne odciążając pompę obiegową, wykazuje pełną pasywność na agresywne media grzewcze (wymagane m.in. na podjazdach) i eliminuje ryzyko korozji wżerowej pod wylewkami. To bezapelacyjny lider w nowych instalacjach.</p>
        </div>
    </div>

    <div class="rk-v-project-info">
        <div class="rk-v-project-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
        </div>
        <div class="rk-v-project-text">
            <h4>Pamiętaj o nadrzędnej zasadzie:</h4>
            <p>Nawet najlepszy stalowy rozdzielacz nie zadziała prawidłowo, jeśli instalacja zostanie wykonana "na oko". Zanim kupisz materiały uzbrojenia kotłowni, zamów profesjonalne opracowanie inżynierskie. Wybierz <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt instalacji ogrzewania podłogowego (podłogówki)</a>, aby zyskać obliczeniową pewność, optymalne rozstawy rur i wieloletnią gwarancję komfortu cieplnego.</p>
        </div>
    </div>

    <div class="rk-v-cta">
        <h3 class="rk-v-cta-title">Buduj bez ściemy. Poznaj inżynierskie standardy.</h3>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-expert">
            Baza Wiedzy Inwestora HVAC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSteel = document.getElementById('btnSteel');
    const btnBrass = document.getElementById('btnBrass');
    const selector = document.getElementById('toggleSelector');
    
    // Gauges paths
    const gaugeFlow = document.getElementById('gaugeFlow');
    const gaugeResist = document.getElementById('gaugeResist');
    const gaugeWar = document.getElementById('gaugeWar');
    
    // Values text
    const valFlow = document.getElementById('valFlow');
    const valResist = document.getElementById('valResist');
    const valWar = document.getElementById('valWar');
    
    // Summary
    const summaryBox = document.getElementById('summaryBox');
    const sumTitle = document.getElementById('sumTitle');
    const sumText = document.getElementById('sumText');

    // Circumference of circle with r=40 is 2 * PI * 40 ≈ 251.2
    const totalDash = 251.2;

    function setGauge(element, percent, color) {
        const offset = totalDash - (percent / 100) * totalDash;
        element.style.strokeDashoffset = offset;
        element.style.stroke = color;
    }

    function renderSteel() {
        // UI Toggle logic
        selector.classList.remove('pos-brass');
        btnSteel.classList.add('active-steel');
        btnBrass.classList.remove('active-brass');
        
        // Update Data
        setGauge(gaugeFlow, 100, 'var(--rk-v-steel-accent)'); // Max flow reference
        valFlow.textContent = "4,5 m³/h";
        
        setGauge(gaugeResist, 100, 'var(--rk-v-green)'); 
        valResist.textContent = "100%";
        
        setGauge(gaugeWar, 100, 'var(--rk-v-blue)'); 
        valWar.textContent = "10-15 lat";
        
        // Update Summary
        summaryBox.className = 'rk-v-summary-box';
        sumTitle.textContent = "Inwestycja w niezawodność";
        sumTitle.style.color = "var(--rk-v-dark)";
        sumText.textContent = "Zapewnia on wyższe przepływy hydrauliczne odciążając pompę obiegową, wykazuje pełną pasywność na agresywne media grzewcze (wymagane m.in. na podjazdach) i eliminuje ryzyko korozji wżerowej pod wylewkami. To bezapelacyjny lider w nowych instalacjach.";
    }

    function renderBrass() {
        // UI Toggle logic
        selector.classList.add('pos-brass');
        btnSteel.classList.remove('active-steel');
        btnBrass.classList.add('active-brass');
        
        // Update Data
        setGauge(gaugeFlow, 75, 'var(--rk-v-brass)'); // Lower flow relative
        valFlow.textContent = "3,8 m³/h";
        
        setGauge(gaugeResist, 40, 'var(--rk-v-red)'); 
        valResist.textContent = "Ograniczona";
        
        setGauge(gaugeWar, 20, 'var(--rk-v-brass)'); 
        valWar.textContent = "2-5 lat";
        
        // Update Summary
        summaryBox.className = 'rk-v-summary-box theme-brass';
        sumTitle.textContent = "Ekonomia z ryzykiem";
        sumTitle.style.color = "var(--rk-v-brass)";
        sumText.textContent = "Rozwiązanie budżetowe, dopuszczalne przy zachowaniu ścisłego reżimu pH wody. Węższe kanały wewnętrzne generują większe opory, a w systemach napełnionych glikolem lub czystą wodą demineralizowaną stop ten wykazuje podatność na proces odcynkowania.";
    }

    // Event Listeners
    btnSteel.addEventListener('click', renderSteel);
    btnBrass.addEventListener('click', renderBrass);

    // Initial render
    setTimeout(() => {
        renderSteel();
    }, 100); // slight delay for animation trigger on load
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-slate: #334155;
    --rk-dl-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-hover: #0369a1;
    --rk-dl-blue-bg: #e0f2fe;
    --rk-dl-accent: #38bdf8;
    --rk-dl-green: #10b981;
}

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

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

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

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

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

/* Dashboard Body */
.rk-dl-body {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: #ffffff;
}

/* Left - Image Preview */
.rk-dl-preview-col {
    background: var(--rk-dl-light);
    padding: 40px;
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-dl-img-wrapper {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 30px -5px rgba(0,0,0,0.15);
    border: 4px solid #ffffff;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.rk-dl-img-wrapper::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.0);
    transition: background 0.3s;
    z-index: 1;
}

.rk-dl-img-wrapper:hover {
    transform: scale(1.05) translateY(-5px);
}

.rk-dl-img-wrapper:hover::after {
    background: rgba(15, 23, 42, 0.4);
}

.rk-dl-img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.rk-dl-hover-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.5);
    background: var(--rk-dl-blue);
    color: #ffffff;
    width: 50px; height: 50px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    opacity: 0;
    z-index: 2;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-dl-img-wrapper:hover .rk-dl-hover-icon {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* Right - Content & Download */
.rk-dl-content-col {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-dl-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    color: var(--rk-dl-slate);
    line-height: 1.6;
}

.rk-dl-list li svg {
    flex-shrink: 0;
    color: var(--rk-dl-blue);
    margin-top: 2px;
}

.rk-dl-list li strong {
    color: var(--rk-dl-dark);
}

/* Download Button */
.rk-btn-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-dl-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
    padding: 20px 35px;
    border-radius: 14px;
    text-decoration: none !important;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    cursor: pointer;
    width: fit-content;
    position: relative;
    overflow: hidden;
}

.rk-btn-download::before {
    content: '';
    position: absolute;
    top: 0; left: -100%; width: 50%; height: 100%;
    background: linear-gradient(to right, transparent, rgba(255,255,255,0.3), transparent);
    transform: skewX(-20deg);
    transition: 0.5s;
}

.rk-btn-download:hover {
    background: var(--rk-dl-blue-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 35px -5px rgba(2, 132, 199, 0.5);
}

.rk-btn-download:hover::before {
    left: 150%;
}

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

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

/* Footer Copyright */
.rk-dl-footer {
    background: var(--rk-dl-light);
    border-top: 1px solid var(--rk-dl-border);
    padding: 15px 30px;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-dl-footer svg {
    color: var(--rk-dl-blue);
}

/* Mobile */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 25px; }
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-preview-col { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-content-col { padding: 30px 25px; }
    .rk-btn-download { width: 100%; }
    .rk-dl-footer { flex-direction: column; gap: 5px; padding: 20px; line-height: 1.5; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/"
    },
    "headline": "Pobierz darmową infografikę: Rozdzielacz mosiężny a stal nierdzewna na budowie",
    "description": "Zapisz inżynierską ściągawkę w formacie PDF. Idealna tabela porównawcza oporów hydraulicznych i podatności na korozję do weryfikacji na placu budowy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#dataset-infografika",
    "name": "Infografika: Zestawienie Komponentów Rozdzielaczy HVAC (Wizualizacja)",
    "description": "Skondensowany zbiór danych technicznych w formie graficznej, pokazujący różnice pomiędzy rozdzielaczem ze stali nierdzewnej a mosiężnym w kontekście oporów i korozji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ściągawka instalatora hvac pdf",
      "wybór rozdzielacza do ogrzewania podłogowego parametry",
      "wizualne porównanie oporów hydraulicznych pompy ciepła",
      "degradacja mosiądzu w kontakcie z glikolem infografika",
      "normy projektowe podłogówki schemat"
    ],
    "measurementTechnique": "Agregacja i wizualizacja parametrów Kv oraz właściwości chemicznych materiałów (stal AISI 304, mosiądz CW617N) w układzie tabelaryczno-graficznym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zestawienie wizualne oporów na profilach DN25 i DN32.",
        "Graficzne wskazanie stref ryzyka korozji galwanicznej.",
        "Checklista rzetelnego doboru armatury pod pompę ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/#webapp-infografika",
    "name": "Interaktywne Centrum Pobierania Dokumentacji",
    "description": "Moduł umożliwiający pogląd i pobranie materiałów inżynierskich wysokiej rozdzielczości (PDF/WebP) do użytku na urządzeniach mobilnych podczas prac budowlanych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rozdzielacz-pobierz-app">
    <div class="rk-dl-header">
        <div class="rk-dl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały dla instalatora i inwestora
        </div>
        <h2>Pobierz darmową infografikę: Rozdzielacz mosiężny a stal nierdzewna na budowie</h2>
        <p>Będziesz w hurtowni hydraulicznej? Przekaż te argumenty swojemu wykonawcy. Zapisz gotową ściągawkę na telefonie i miej wiedzę inżynierską zawsze przy sobie.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-col">
            <div class="rk-dl-img-wrapper" title="Kliknij, aby otworzyć powiększenie w nowym oknie" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej.webp', '_blank')">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej.webp" alt="Infografika: Porównanie rozdzielaczy stalowych i mosiężnych" class="rk-dl-img" loading="lazy" />
                <div class="rk-dl-hover-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                </div>
            </div>
        </div>

        <div class="rk-dl-content-col">
            <h3>Co zawiera inżynierska ściągawka?</h3>
            <ul class="rk-dl-list">
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Wizualne porównanie oporów hydraulicznych pompy ciepła</strong> na belkach o profilach DN25 i DN32.</span>
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span>Krytyczne parametry wytrzymałościowe i normatywne determinujące <strong>wybór rozdzielacza do ogrzewania podłogowego</strong>.</span>
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span>Mechanizm powstawania wżerów (reakcje galwaniczne) i degradacja mosiądzu w kontakcie ze zładem zawierającym glikol.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej.pdf" download target="_blank" rel="noopener noreferrer" class="rk-btn-download" id="btnDownloadPdf">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ PLIK PDF (DO DRUKU)
            </a>
        </div>

    </div>

    <div class="rk-dl-footer">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M14.83 14.83a4 4 0 1 1 0-5.66"></path></svg>
        <span>
            &copy; 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
        </span>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Prosta obsługa analityczna/feedbacku po kliknięciu przycisku pobierania
    const btnDownload = document.getElementById('btnDownloadPdf');
    
    if(btnDownload) {
        btnDownload.addEventListener('click', function(e) {
            // Zmiana tekstu na moment po kliknięciu, aby dać informację zwrotną
            const originalHTML = this.innerHTML;
            this.innerHTML = `<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> POBIERANIE ROZPOCZĘTE...`;
            
            setTimeout(() => {
                this.innerHTML = originalHTML;
            }, 3000);
        });
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">Rozdzielacz do ogrzewania podłogowego mosiężny czy ze stali nierdzewnej?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</title>
		<link>https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 13:32:33 +0000</pubDate>
				<category><![CDATA[Budownictwo ekologiczne]]></category>
		<category><![CDATA[Instalacje domowe]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[Wilgotność powietrza]]></category>
		<category><![CDATA[Zdrowie w domu]]></category>
		<category><![CDATA[grzejniki]]></category>
		<category><![CDATA[izolacja domu]]></category>
		<category><![CDATA[jakość powietrza]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[promieniowanie cieplne]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[suchość powietrza]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[wilgotność powietrza]]></category>
		<category><![CDATA[zdrowe ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2438</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to hit w polskich domach, ale czy wpływa na jakość powietrza? Wyjaśniamy, jak działa i czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach. Porównujemy z grzejnikami, analizujemy wilgotność i radzimy, jak zaplanować instalację, by uniknąć suchego powietrza. Poznaj fakty, obal mity i dowiedz się, dlaczego podłogówka może być lepszym wyborem dla komfortu i zdrowia!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</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 zyskuje coraz większą popularność w polskich domach, ale wokół tego systemu narosło wiele pytań i mitów. Jednym z najczęściej zadawanych jest: <em><strong>czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</strong></em> To istotne zagadnienie, zwłaszcza w sezonie grzewczym, gdy wilgotność powietrza w domu wpływa na komfort, samopoczucie i zdrowie domowników. W tym artykule wyjaśnimy, jak działa podłogówka, jaki ma wpływ na wilgotność i czym różni się od tradycyjnych grzejników. Rozwiewamy wątpliwości, opierając się na faktach, praktycznych przykładach i opiniach użytkowników.</p>



<h2 class="wp-block-heading">Jak działa ogrzewanie podłogowe i dlaczego to ważne dla wilgotności?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe, zwane również promiennikowym, dostarcza ciepło poprzez podgrzewanie podłogi. Może być realizowane w dwóch wariantach: elektrycznym (za pomocą mat lub kabli grzewczych) albo wodnym (hydronicznym), gdzie ciepło przenoszą rury z wodą. Niezależnie od typu, system opiera się na promieniowaniu cieplnym – ciepło unosi się od podłogi, ogrzewając najpierw powierzchnie i przedmioty w pomieszczeniu, a dopiero w drugiej kolejności powietrze. To zasadnicza różnica w porównaniu do klasycznych grzejników, które działają głównie na zasadzie konwekcji, czyli cyrkulacji ogrzanego powietrza.</p>



<h3 class="wp-block-heading">Różnice między promieniowaniem a konwekcją.</h3>



<p class="wp-block-paragraph">Dlaczego sposób dostarczania ciepła ma znaczenie dla wilgotności? W przypadku grzejników ciepłe powietrze unosi się do góry, a chłodniejsze opada, tworząc ciągły ruch. Ten proces przyspiesza parowanie wilgoci z powierzchni, takich jak meble czy skóra, co prowadzi do obniżenia wilgotności względnej w pomieszczeniu. Ogrzewanie podłogowe, dzięki minimalnej cyrkulacji powietrza, wydaje się mniej ingerować w naturalny poziom wilgoci. Szczegółowe wyjaśnienie mechanizmu znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">jak działa ogrzewanie podłogowe</a>, który omawia techniczne aspekty systemu.</p>



<h3 class="wp-block-heading">Przykład: zima w domu</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie zimowy wieczór w domu z grzejnikami. Po kilku godzinach ogrzewania skóra staje się sucha, oczy pieką, a w gardle pojawia się uczucie drapania – to typowe symptomy spadku wilgotności. W domu z ogrzewaniem podłogowym, gdzie ciepło rozchodzi się równomiernie od podłogi, takie dolegliwości są zwykle mniej odczuwalne. Może to wskazywać, że podłogówka jest łagodniejsza dla powietrza w pomieszczeniach, co potwierdzają relacje wielu użytkowników.</p>



<h2 class="wp-block-heading">Ogrzewanie podłogowe a wilgotność powietrza – co mówią fakty?</h2>



<p class="wp-block-paragraph">Aby rzetelnie odpowiedzieć na pytanie, <em>czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach</em>, przeanalizujmy jego działanie w kontekście wilgotności. System promiennikowy nie obniża wilgotności w sposób zauważalny, ponieważ nie powoduje intensywnego ruchu powietrza, który mógłby „wysysać” wilgoć z otoczenia. Eksperci podkreślają, że w porównaniu do innych metod grzewczych podłogówka działa łagodniej. Więcej o wpływie na zdrowie i komfort przeczytasz w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" target="_blank" rel="noreferrer noopener">czy ogrzewanie podłogowe jest zdrowe</a>, który porusza także kwestie jakości powietrza.</p>



<h3 class="wp-block-heading">Porównanie z grzejnikami i piecami.</h3>



<p class="wp-block-paragraph">Grzejniki, ogrzewając powietrze przez konwekcję, mogą obniżać wilgotność nawet o kilka procent w ciągu godziny – w suchym, zimowym klimacie efekt ten jest szczególnie wyraźny. Systemy z wymuszonym obiegiem powietrza, jak piece z kanałami wentylacyjnymi, są jeszcze bardziej „suszące” – cyrkulacja suchego powietrza zimą może zredukować wilgotność poniżej komfortowego poziomu 30-50%. Ogrzewanie podłogowe, dzięki promieniowaniu, utrzymuje bardziej stabilny poziom wilgoci, co czyni je mniej inwazyjnym dla atmosfery w domu.</p>



<h4 class="wp-block-heading">Tabela: Podłogówka vs. grzejniki.</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Aspekt</strong></th><th><strong>Ogrzewanie podłogowe</strong></th><th><strong>Grzejniki</strong></th></tr></thead><tbody><tr><td>Metoda ogrzewania</td><td>Promieniowanie</td><td>Konwekcja</td></tr><tr><td>Wpływ na wilgotność</td><td>Minimalny, stabilizuje poziom</td><td>Obniża przez ruch powietrza</td></tr><tr><td>Cyrkulacja powietrza</td><td>Niska</td><td>Wysoka</td></tr><tr><td>Komfort</td><td>Równomierne ciepło</td><td>Gorące i zimne strefy</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Opinie użytkowników i przykład praktyczny.</h3>



<p class="wp-block-paragraph">W domu o powierzchni 120 m² z ogrzewaniem podłogowym wodnym wilgotność zimą utrzymuje się na poziomie 40-45%, pod warunkiem odpowiedniej wentylacji. W podobnym budynku z grzejnikami ten poziom często spada do 25-30%, co skutkuje uczuciem suchości w powietrzu. Jeden z użytkowników podłogówki wspomina: „Od kiedy mamy ogrzewanie podłogowe, nie muszę już używać nawilżacza tak często jak przy grzejnikach – różnica jest odczuwalna”. To pokazuje, że w praktyce podłogówka może lepiej wspierać naturalną wilgotność, choć многое zależy od warunków w budynku.</p>



<h2 class="wp-block-heading">Czynniki wpływające na wilgotność przy podłogówce.</h2>



<p class="wp-block-paragraph">Wpływ ogrzewania podłogowego na powietrze w pomieszczeniach nie zależy wyłącznie od samego systemu. Istnieje kilka kluczowych czynników, które mogą modyfikować poziom wilgotności:</p>



<ol class="wp-block-list">
<li><strong>Szczelność budynku</strong> – W nowoczesnych, dobrze izolowanych domach wilgotność jest w dużej mierze determinowana przez wentylację. Jeśli zimą napływa dużo suchego powietrza z zewnątrz, nawet podłogówka nie zapobiegnie spadkowi wilgoci. W starszych, nieszczelnych budynkach efekt może być inny – wilgoć z otoczenia może się utrzymywać.</li>



<li><strong>Temperatura podłogi</strong> – Zbyt wysoka temperatura (np. powyżej 29°C) może lokalnie przyspieszać parowanie, szczególnie w pobliżu podłogi. Jednak w prawidłowo zaprojektowanym systemie, gdzie temperatura oscyluje w granicach 24-28°C, ten efekt jest minimalny i nie wpływa znacząco na ogólną wilgotność.</li>



<li><strong>Pokrycie podłogi</strong> – Rodzaj materiału na podłodze ma znaczenie. Drewno naturalne może wchłaniać i oddawać wilgoć w zależności od warunków, podczas gdy płytki ceramiczne są bardziej neutralne. Więcej na ten temat znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego</a>.</li>



<li><strong>Wentylacja i dodatkowe urządzenia</strong> – W domach z rekuperacją wilgotność jest łatwiejsza do kontrolowania, a nawilżacze mogą dodatkowo wspierać jej utrzymanie na optymalnym poziomie 40-50%.</li>
</ol>



<h3 class="wp-block-heading">Przykład: dom pasywny i tradycyjny.</h3>



<p class="wp-block-paragraph">W domu pasywnym o powierzchni 100 m², wyposażonym w podłogówkę i rekuperację, wilgotność zimą stabilizuje się na poziomie 45%, co jest idealne dla komfortu. W tradycyjnym domu z lat 80., bez nowoczesnej wentylacji, ten sam system może dawać różne wyniki – np. wilgotność spada do 35% przy dużym napływie suchego powietrza z zewnątrz. To dowodzi, że podłogówka sama w sobie nie wysusza powietrza – kluczowe jest otoczenie, w którym działa.</p>



<h2 class="wp-block-heading">Zalety ogrzewania podłogowego dla wilgotności i komfortu.</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe oferuje kilka zalet, które mogą pozytywnie wpływać na jakość powietrza w domu, w tym na wilgotność:</p>



<ul class="wp-block-list">
<li><strong>Mniejszy ruch powietrza</strong> – Dzięki niskiej cyrkulacji kurz, roztocza i alergeny nie unoszą się tak intensywnie, co jest szczególnie korzystne dla alergików i osób z problemami oddechowymi. To także redukuje efekt „wysysania” wilgoci przez ruch powietrza.</li>



<li><strong>Równomierne rozprowadzanie ciepła</strong> – Brak gorących punktów, jak w przypadku grzejników, oznacza mniejsze lokalne przesuszenie powietrza w określonych strefach pomieszczenia. Ciepło rozchodzi się od podłogi w górę, tworząc przyjemny gradient temperatury.</li>



<li><strong>Niższa temperatura pracy</strong> – Podłogówka działa efektywnie przy niższej temperaturze (np. 24-26°C na podłodze) niż grzejniki (często 50-70°C), co pozwala obniżyć temperaturę w pomieszczeniu o 1-2°C bez utraty komfortu. Mniejsza intensywność ogrzewania przekłada się na mniejszy wpływ na wilgotność.</li>
</ul>



<h3 class="wp-block-heading">Nieoczekiwany bonus: jakość powietrza i zdrowie</h3>



<p class="wp-block-paragraph">Ciekawym aspektem jest poprawa jakości powietrza dzięki mniejszej cyrkulacji. W domach z grzejnikami ruch powietrza może wzniecać kurz, co dodatkowo potęguje uczucie suchości. Podłogówka minimalizuje ten problem, co może pośrednio wspierać stabilną wilgotność. Więcej o projektowaniu systemu pod kątem efektywności przeczytasz w <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym</a>.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a wilgotność – jak to zaplanować?</h2>



<p class="wp-block-paragraph">Planując instalację ogrzewania podłogowego i martwiąc się o wilgotność, kluczowe jest profesjonalne podejście. Dobry projekt, jak np. oferowany w <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/" target="_blank" rel="noreferrer noopener">Projekt ogrzewania podłogowego do 150 m²</a>, uwzględnia rozkład pętli grzewczych, parametry budynku i zapotrzebowanie na ciepło. Optymalna temperatura podłogi (24-28°C) minimalizuje ryzyko lokalnego przesuszenia powietrza, a odpowiednie rozplanowanie pętli – np. maksymalnie 80 metrów na jedną pętlę w domu 150 m² – zapewnia równomierne ogrzewanie i efektywność. Warto też zadbać o izolację termiczną podłogi, by ciepło nie uciekało w dół, co mogłoby zwiększać zapotrzebowanie na energię i pośrednio wpływać na warunki w pomieszczeniu.</p>



<h2 class="wp-block-heading">Czy warto bać się suchego powietrza przy podłogówce?</h2>



<p class="wp-block-paragraph"><em>Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</em> Raczej nie. W porównaniu do grzejników czy systemów z wymuszonym obiegiem podłogówka jest łagodniejsza dla wilgotności dzięki promieniowaniu i mniejszemu ruchowi powietrza. Efekt końcowy zależy jednak od wielu czynników: izolacji budynku, jakości wentylacji i sposobu użytkowania systemu.</p>



<h3 class="wp-block-heading">Co robić, gdy wilgotność spada?</h3>



<p class="wp-block-paragraph">Jeśli mimo wszystko zauważysz suche powietrze zimą, możesz:</p>



<ul class="wp-block-list">
<li>Używać nawilżacza, by podnieść wilgotność do 40-50%.</li>



<li>Wietrzyć pomieszczenia krótko i regularnie, unikając nadmiernego wychłodzenia.</li>



<li>Kontrolować temperaturę podłogi, utrzymując ją w granicach 24-26°C, co zapewnia komfort bez przegrzewania.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1742044090247"><strong class="schema-faq-question">Czy ogrzewanie podłogowe bardziej wysusza powietrze niż grzejniki?</strong> <p class="schema-faq-answer">Nie, dzięki promieniowaniu generuje mniej ruchu powietrza, co stabilizuje wilgotność w porównaniu do konwekcyjnych grzejników.</p> </div> <div class="schema-faq-section" id="faq-question-1742044099178"><strong class="schema-faq-question">Jak utrzymać wilgotność przy podłogówce?</strong> <p class="schema-faq-answer">Wietrz regularnie, używaj nawilżacza (jeśli spada poniżej 40%) i zadbaj o dobrą wentylację w projekcie.</p> </div> <div class="schema-faq-section" id="faq-question-1742044111521"><strong class="schema-faq-question">Czy temperatura podłogi wpływa na wilgotność?</strong> <p class="schema-faq-answer">Tak, powyżej 29°C może przyspieszać parowanie, ale w standardowym zakresie (24-28°C) efekt jest minimalny.</p> </div> <div class="schema-faq-section" id="faq-question-1742044127914"><strong class="schema-faq-question">Czy rodzaj podłogi zmienia wilgotność przy podłogówce?</strong> <p class="schema-faq-answer">Tak, płytki lepiej przewodzą ciepło i mniej reagują na wilgotność niż drewno czy panele.</p> </div> <div class="schema-faq-section" id="faq-question-1742044136086"><strong class="schema-faq-question">Czy podłogówka jest zdrowsza dla powietrza?</strong> <p class="schema-faq-answer">Tak, mniejsza cyrkulacja redukuje kurz i alergeny, wspierając jakość powietrza i wilgotność.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie – ciepło i zdrowe powietrze.</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe to nie tylko źródło ciepła, ale też sposób na utrzymanie stabilnej wilgotności i lepszej jakości powietrza w domu. Nie wysusza go tak jak grzejniki, a przy odpowiednim projekcie i eksploatacji staje się sprzymierzeńcem komfortu. Wybierz profesjonalną instalację, by cieszyć się ciepłą podłogą i przyjemną atmosferą bez obaw o suchość.</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="ijdbzoFzmH"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=ueBPm0R8Or#?secret=ijdbzoFzmH" data-secret="ijdbzoFzmH" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projektowanie ogrzewania podłogowego w domach pasywnych.</title>
		<link>https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 13:06:27 +0000</pubDate>
				<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologiczne rozwiązania grzewcze]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Odnawialne źródła energii]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[domy pasywne]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ekologia]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2350</guid>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

.rk-main-switch {
    position: relative;
    width: 80px;
    height: 40px;
    background: var(--rk-sys-wet);
    border-radius: 40px;
    cursor: pointer;
    transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-main-switch.mode-dry {
    background: var(--rk-sys-dry);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    let isDry = false;

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        outSpacing.textContent = spacingText;

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            <!-- Nowe buttony (Długi Ogon SEO) -->
            <button class="rk-err-btn" data-err="5">
                <div class="rk-err-num">5</div>
                <div class="rk-err-title">Zbyt cienka izolacja na gruncie</div>
            </button>

            <button class="rk-err-btn" data-err="6">
                <div class="rk-err-num">6</div>
                <div class="rk-err-title">Niewłaściwy dobór okładziny podłogowej</div>
            </button>
        </div>

        <!-- Prawy Panel - Zoptymalizowany pod Tekst / SEO -->
        <div class="rk-err-dashboard">
            <div class="rk-diag-card">
                <div class="anim-wrapper" id="diag-wrapper">
                    <div class="rk-diag-header">
                        <div class="rk-diag-tag" id="diag-tag">ZAGROŻENIE AWARIĄ</div>
                        <div class="rk-diag-cost" id="diag-cost">Straty: 15 000 PLN+</div>
                    </div>
                    
                    <p class="rk-diag-text" id="diag-text">
                        Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.
                    </p>

                    <div class="rk-diag-seo-box">
                        <h4 class="rk-diag-subtitle">Analiza techniczna i skutki</h4>
                        <p class="rk-diag-seo-text" id="diag-seo-text">
                            Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('error-scanner-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Skanera Błędów Instalacyjnych należy do Projekt-Ogrzewania.pl.<br>Kopiowanie i wykorzystywanie bez zgody jest zabronione.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Baza danych błędów z tekstami pod długi ogon (SEO)
    const errorData = {
        "1": {
            tag: "ZAGROŻENIE AWARIĄ",
            cost: "Koszty: 15 000 PLN+",
            text: "Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.",
            seoText: "Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd."
        },
        "2": {
            tag: "BŁĄD HYDRAULICZNY",
            cost: "Szumy i dyskomfort",
            text: "Brak projektu sprawia, że instalatorzy kładą rury \"na oko\" (najczęściej co 10 cm wszędzie). Skutkuje to ogromnymi oporami i brakiem możliwości regulacji na rozdzielaczu.",
            seoText: "Jakie są główne <strong>konsekwencje braku projektu ogrzewania podłogowego</strong>? Inwestorzy często pytają, <strong>dlaczego podłogówka szumi</strong>. Wynika to z faktu, że zbyt gęsty rozstaw rur co 10 cm w małych pomieszczeniach wymusza stosowanie dławienia, a to zaburza hydraulikę całego układu. Brak projektu uniemożliwia wyliczenie oporów, przez co nie wiesz, <strong>jak zrównoważyć przepływy na rotametrach</strong>. Efektem jest przegrzana sypialnia i niedogrzana łazienka."
        },
        "3": {
            tag: "MOSTKI TERMICZNE",
            cost: "Straty energii: 15-20%",
            text: "Brak lub złe wykonanie izolacji brzegowej przy ścianach zewnętrznych w domu pasywnym generuje potężne liniowe mostki termiczne.",
            seoText: "Brak wiedzy o tym, <strong>jak poprawnie wykonać dylatację brzegową</strong> podłogówki, to prosta droga do wyrzucania pieniędzy w błoto. Płyta grzewcza musi pracować pracować swobodnie. Zbyt cienka <strong>pianka brzegowa do podłogówki</strong> sprawia, że wylewka dotyka muru, co tworzy <strong>mostki termiczne przy ścianach zewnętrznych</strong>. Ciepło z posadzki ucieka wprost w fundamenty, drastycznie podnosząc straty energetyczne budynku i niwecząc cały nakład pracy na ocieplenie pasywne."
        },
        "4": {
            tag: "KRYTYCZNE PRZEGRZEWANIE",
            cost: "Dyskomfort termiczny",
            text: "Ustawienie krzywej grzewczej na poziomie typowym dla budynków starszych (np. 35-40°C) powoduje, że podłoga staje się gorąca i nieprzyjemna.",
            seoText: "W budownictwie energooszczędnym <strong>za wysoka temperatura zasilania podłogówki</strong> daje natychmiastowe objawy – podłoga wręcz parzy, a powietrze staje się przesuszone. Kluczowe jest pytanie, <strong>jaka krzywa grzewcza do domu pasywnego</strong> jest odpowiednia? Prawidłowo zaprojektowany system powinien pracować na parametrach nie wyższych niż 28-32°C. Jeśli ignorujemy te wartości, <strong>przegrzewanie pomieszczeń z pompą ciepła</strong> staje się codziennością, a nasza instalacja działa ze zrujnowanym współczynnikiem wydajności COP."
        },
        "5": {
            tag: "STRATY DO GRUNTU",
            cost: "Ciągła ucieczka energii",
            text: "Zastosowanie standardowych 10-15 cm styropianu pod wylewką na gruncie w domu pasywnym powoduje stałą ucieczkę ciepła w dół, zamiast do wnętrza budynku.",
            seoText: "Błędem o nieodwracalnych skutkach na etapie stanu surowego jest ignorowanie tego, <strong>ile styropianu pod ogrzewanie podłogowe na gruncie</strong> należy ułożyć w standardzie energooszczędnym. W domach pasywnych absolutnym minimum jest 20-25 cm izolacji o bardzo niskim współczynniku przewodzenia ciepła. Zbyt cienki <strong>styropian podłogowy EPS 100 lub EPS 200</strong> sprawia, że pompa ciepła zamiast w pełni ogrzewać salon, bezproduktywnie ogrzewa fundamenty i ziemię pod budynkiem. To bezpośrednio przekłada się na wyższe <strong>koszty ogrzewania pompą ciepła zimą</strong>."
        },
        "6": {
            tag: "BLOKADA TERMICZNA",
            cost: "Spadek wydajności układu",
            text: "Położenie grubych paneli z podkładem o wysokim oporze cieplnym w domu pasywnym sprawia, że przy zasilaniu rzędu 30°C ciepło nie przebije się efektywnie do pomieszczenia.",
            seoText: "Wybierając materiały wykończeniowe do salonu czy sypialni, inwestorzy często pytają, <strong>jakie panele na ogrzewanie podłogowe w domu pasywnym</strong> będą najlepsze. Zastosowanie okładziny o łącznym oporze cieplnym powyżej 0,15 (m²·K)/W drastycznie obniża efektywność całego systemu hydraulicznego. Aby zachować niską temperaturę zasilania pompy ciepła (co warunkuje jej najwyższy wskaźnik COP), należy wybierać <strong>panele winylowe SPC na podłogówkę</strong> lub klasyczne płytki ceramiczne. Zbyt gruby, gąbczasty <strong>podkład pod panele na ogrzewanie podłogowe</strong> zadziała jak niechciany izolator, zmuszając pompę do nieekonomicznej pracy na wyższych parametrach i zwiększając zużycie prądu."
        }
    };

    // 3. Logika zmiany treści
    const btns = document.querySelectorAll('.rk-err-btn');
    const diagWrapper = document.getElementById('diag-wrapper');
    const diagTag = document.getElementById('diag-tag');
    const diagCost = document.getElementById('diag-cost');
    const diagText = document.getElementById('diag-text');
    const diagSeoText = document.getElementById('diag-seo-text');

    function updateDashboard(errId) {
        // Płynne zniknięcie sekcji
        diagWrapper.style.opacity = '0';

        setTimeout(() => {
            // Podmiana danych
            const data = errorData[errId];
            diagTag.textContent = data.tag;
            diagCost.textContent = data.cost;
            diagText.innerHTML = data.text;
            diagSeoText.innerHTML = data.seoText;

            // Pojawienie się tekstu
            diagWrapper.style.opacity = '1';
        }, 200);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Unikaj przeładowania, jeśli kliknięto w ten sam przycisk
            if(this.classList.contains('active')) return;

            // Zmiana stanu przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja
            const errId = this.getAttribute('data-err');
            updateDashboard(errId);
        });
    });
});
</script>



<style>
:root {
    --rk-imp-dark: #0f172a;
    --rk-imp-brand: #0284c7;
    --rk-imp-brand-light: #f0f9ff;
    --rk-imp-accent: #38bdf8;
    --rk-imp-warn: #f59e0b;
    --rk-imp-eco: #10b981;
    --rk-imp-red: #ef4444;
    --rk-imp-border: #e2e8f0;
    --rk-imp-text: #475569;
    --rk-imp-bg: #ffffff;
}

.rk-imp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-imp-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Część Tekstowa / SEO */
.rk-imp-content {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-imp-border);
}

.rk-imp-content h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-imp-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-imp-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-imp-text);
    margin: 0 0 15px 0;
}

.rk-imp-desc strong {
    color: var(--rk-imp-dark);
}

.rk-imp-desc a {
    color: var(--rk-imp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bae6fd;
    transition: all 0.3s;
}

.rk-imp-desc a:hover {
    background: var(--rk-imp-brand-light);
    box-shadow: inset 0 -10px 0 #bae6fd;
}

.rk-imp-grid-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-top: 30px;
}

.rk-imp-box {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-imp-box h4 {
    margin: 0 0 10px 0;
    color: var(--rk-imp-brand);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-imp-box p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-imp-text);
}

/* Interaktywny Symulator */
.rk-imp-interactive {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 40px;
    background: #ffffff;
}

/* Panel Kontrolny */
.rk-imp-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-imp-controls h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-ctrl-group {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 16px;
}

.rk-ctrl-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-imp-text);
}

.rk-ctrl-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-warn);
}

/* Suwaki i Toggla */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-imp-warn);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: transform 0.1s;
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.1); }

/* Switch Toggle */
.rk-switch-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.rk-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: #cbd5e1;
    border-radius: 30px;
    cursor: pointer;
    transition: background 0.3s;
}
.rk-switch.active { background: var(--rk-imp-warn); }
.rk-switch-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.rk-switch.active .rk-switch-knob { transform: translateX(26px); }

/* Dashboard SVG + Wyniki */
.rk-imp-dashboard {
    display: flex;
    gap: 30px;
}

.rk-svg-room {
    flex: 1;
    background: #f1f5f9;
    border-radius: 16px;
    border: 1px dashed var(--rk-imp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.rk-svg-rotameter {
    width: 100px;
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-rota-title {
    font-size: 10px;
    font-weight: 800;
    color: var(--rk-imp-text);
    text-transform: uppercase;
    margin-bottom: 10px;
    text-align: center;
}

/* Animacje SVG */
.anim-person { transition: opacity 0.3s ease; }
.anim-tv { transition: fill 0.3s ease, filter 0.3s ease; }
.anim-heat-glow { transition: opacity 0.3s ease, r 0.3s ease; }
.anim-float { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Kafelki Wynikowe */
.rk-result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    padding: 15px;
    border-radius: 12px;
}
.rk-metric-card.highlight {
    border-color: var(--rk-imp-eco);
    background: #ecfdf5;
}

.rk-metric-card h5 { margin: 0 0 5px 0; font-size: 11px; color: var(--rk-imp-text); text-transform: uppercase; }
.rk-metric-card .val { font-size: 22px; font-weight: 900; color: var(--rk-imp-dark); }
.rk-metric-card.highlight .val { color: var(--rk-imp-eco); }

/* Mocne CTA */
.rk-imp-cta-box {
    background: var(--rk-imp-dark);
    padding: 45px 50px;
    text-align: center;
}

.rk-imp-cta-box h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-imp-cta-box p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0 auto 30px;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-imp-brand);
    color: #ffffff !important;
    padding: 18px 36px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.5);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.6);
    border-color: #7dd3fc;
}

@media (max-width: 768px) {
    .rk-imp-content, .rk-imp-interactive, .rk-imp-cta-box { padding: 30px 25px; }
    .rk-imp-grid-text { grid-template-columns: 1fr; }
    .rk-imp-interactive { grid-template-columns: 1fr; gap: 30px; }
    .rk-imp-dashboard { flex-direction: column; }
    .rk-svg-rotameter { width: 100%; flex-direction: row; justify-content: space-around; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak dom pasywny wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dlaczego wskaźniki W/m2 'z sufitu' niszczą instalację. Analiza zysków bytowych, precyzyjnych przepływomierzy i doboru energooszczędnej pompy obiegowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-wplyw",
    "name": "Zestawienie Zysków Bytowych i Oporów Hydraulicznych",
    "description": "Baza danych określająca wpływ aktywności domowników na realne obciążenie cieplne oraz wymagany przepływ czynnika grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na ciepło dla każdego pomieszczenia",
      "zyski ciepła od nasłonecznienia dom pasywny",
      "precyzyjne przepływomierze podłogówki",
      "kalkulator doboru pompy obiegowej",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Dynamiczna estymacja spadku zapotrzebowania grzewczego (W) w oparciu o sumowanie zysków od ludzi (100W/osoba) i elektroniki domowej, redukująca wymagany przepływ na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC: W domu pasywnym 3 osoby i telewizor generują ~500W, pokrywając do 50% zapotrzebowania.",
        "Hydraulika: Niskie zapotrzebowanie wymusza rotametry o małym zakresie 0,5–2,5 l/min.",
        "Pompa obiegowa: Konieczność precyzyjnego doboru, aby zużycie prądu P < 20-30 W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-wplyw",
    "name": "Symulator Bilansu Pasywnego i Hydrauliki",
    "description": "Interaktywne narzędzie wizualizujące, jak zyski ciepła od ludzi i elektroniki automatycznie dławią potrzebę grzewczą podłogi i obniżają przepływ wskaźnika na rotametrze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-imp-container" id="impact-simulator-app">
    
    <div class="rk-imp-content">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-imp-desc">
            Projektowanie dla domu pasywnego wymusza całkowitą zmianę podejścia do OZC. Nie można posługiwać się wskaźnikami W/m² wyciągniętymi "z sufitu". Projektant musi otrzymać <strong>wyniki obliczeń <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowania na ciepło dla każdego pomieszczenia</a> z osobna</strong>. W przeciwnym razie system będzie skazany na porażkę.
        </p>

        <div class="rk-imp-grid-text">
            <div class="rk-imp-box">
                <h4>Zyski Bytowe w OZC</h4>
                <p>W <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">obliczeniach OZC</a> musimy uwzględniać zyski od nasłonecznienia i urządzeń. W domu pasywnym 3 osoby i włączony telewizor to już ~500 W darmowej mocy grzewczej, co może pokryć nawet 50% zapotrzebowania w danym momencie!</p>
            </div>
            <div class="rk-imp-box">
                <h4>Precyzja Hydrauliczna</h4>
                <p>Niska moc to mały przepływ. Projektant musi wyliczyć opory tak, aby stosować <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">precyzyjne przepływomierze podłogówki</a> (zakres 0,5–2,5 l/min). Niezbędny jest też ścisły <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>, by jej pobór prądu nie przekraczał 20-30 W.</p>
            </div>
        </div>
    </div>

    <div class="rk-imp-interactive">
        
        <!-- Panel Kontrolny -->
        <div class="rk-imp-controls">
            <h3>Symuluj Zyski Pasywne</h3>
            
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Liczba osób w salonie</span>
                    <span class="rk-ctrl-val"><span id="val-people">0</span></span>
                </div>
                <input type="range" min="0" max="4" step="1" value="0" class="rk-slider" id="slider-people">
                <div style="font-size:11px; color:#94a3b8; margin-top:8px;">1 osoba = ~100W zysku</div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Telewizor / Elektronika</span>
                    <span class="rk-ctrl-val" id="val-tv-text" style="color:#94a3b8;">Wyłączone</span>
                </div>
                <div class="rk-switch-wrap">
                    <span style="font-size:12px; color:#64748b;">(~200W zysku)</span>
                    <div class="rk-switch" id="toggle-tv">
                        <div class="rk-switch-knob"></div>
                    </div>
                </div>
            </div>

            <div class="rk-result-metrics">
                <div class="rk-metric-card highlight">
                    <h5>Darmowe Zyski</h5>
                    <div class="val">+<span id="out-gains">0</span> W</div>
                </div>
                <div class="rk-metric-card">
                    <h5>Wymagana Moc Posadzki</h5>
                    <div class="val"><span id="out-power">1000</span> W</div>
                </div>
            </div>
        </div>

        <!-- Dashboard SVG -->
        <div class="rk-imp-dashboard">
            <!-- Pokój SVG -->
            <div class="rk-svg-room">
                <svg viewBox="0 0 200 200" style="width:100%; height:auto;">
                    <!-- Pokój -->
                    <rect x="10" y="10" width="180" height="180" fill="none" stroke="#cbd5e1" stroke-width="4" rx="8"/>
                    <!-- Łuna ciepła -->
                    <circle cx="100" cy="100" r="0" fill="rgba(245, 158, 11, 0.15)" id="svg-heat-glow" class="anim-heat-glow"/>
                    
                    <!-- Telewizor -->
                    <rect x="70" y="20" width="60" height="10" fill="#475569" rx="2"/>
                    <rect x="60" y="30" width="80" height="40" fill="#94a3b8" rx="4" id="svg-tv" class="anim-tv"/>
                    
                    <!-- Ludziki (4 sztuki ukryte domyślnie) -->
                    <g fill="#475569" id="person-1" class="anim-person" opacity="0">
                        <circle cx="50" cy="130" r="10"/>
                        <rect x="40" y="145" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-2" class="anim-person" opacity="0">
                        <circle cx="85" cy="140" r="10"/>
                        <rect x="75" y="155" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-3" class="anim-person" opacity="0">
                        <circle cx="120" cy="135" r="10"/>
                        <rect x="110" y="150" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-4" class="anim-person" opacity="0">
                        <circle cx="155" cy="145" r="10"/>
                        <rect x="145" y="160" width="20" height="30" rx="4"/>
                    </g>
                </svg>
            </div>

            <!-- Rotametr SVG -->
            <div class="rk-svg-rotameter">
                <div class="rk-rota-title">Rotametr<br>(Przepływ)</div>
                <svg viewBox="0 0 60 160" style="height:140px;">
                    <!-- Rurka -->
                    <path d="M 20 20 L 40 20 L 35 140 L 25 140 Z" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                    <!-- Skala -->
                    <line x1="15" y1="30" x2="20" y2="30" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="60" x2="20" y2="60" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="90" x2="20" y2="90" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="120" x2="20" y2="120" stroke="#64748b" stroke-width="1.5"/>
                    <text x="5" y="34" font-size="10" fill="#64748b">2.5</text>
                    <text x="5" y="124" font-size="10" fill="#64748b">0.5</text>
                    
                    <!-- Pływak -->
                    <g id="svg-float" class="anim-float" transform="translate(0, 0)">
                        <polygon points="22,30 38,30 35,40 25,40" fill="#ef4444"/>
                    </g>
                </svg>
                <div style="font-size:14px; font-weight:900; color:var(--rk-imp-dark); margin-top:10px;">
                    <span id="out-flow">2.5</span> <span style="font-size:10px;">l/min</span>
                </div>
            </div>
        </div>
    </div>

    <!-- MOCNE CTA -->
    <div class="rk-imp-cta-box">
        <h3>Nie zgaduj. Powierz OZC inżynierom.</h3>
        <p>
            Błędy w obliczeniach zapotrzebowania i hydrauliki kosztują dziesiątki tysięcy złotych po wylaniu posadzki. Wybierz rozwiązanie, które gwarantuje bezpieczeństwo i najwyższy współczynnik COP dla Twojej pompy ciepła.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('impact-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Symulatora Bilansu należy do Projekt-Ogrzewania.pl. Wykonanie przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const sliderPeople = document.getElementById('slider-people');
    const toggleTv = document.getElementById('toggle-tv');
    
    // UI Values
    const valPeople = document.getElementById('val-people');
    const valTvText = document.getElementById('val-tv-text');
    const outGains = document.getElementById('out-gains');
    const outPower = document.getElementById('out-power');
    const outFlow = document.getElementById('out-flow');
    
    // SVG Elements
    const svgTv = document.getElementById('svg-tv');
    const svgHeatGlow = document.getElementById('svg-heat-glow');
    const svgFloat = document.getElementById('svg-float');
    const persons = [
        document.getElementById('person-1'),
        document.getElementById('person-2'),
        document.getElementById('person-3'),
        document.getElementById('person-4')
    ];

    let isTvOn = false;
    const basePower = 1000; // Bazowe zapotrzebowanie salonu W
    const maxFlow = 2.5; // Max l/min
    const minFlow = 0.5; // Min l/min

    function updateSimulation() {
        const peopleCount = parseInt(sliderPeople.value);
        valPeople.textContent = peopleCount;

        // Obliczanie zysków
        const peopleGain = peopleCount * 100; // 100W na osobę
        const tvGain = isTvOn ? 200 : 0; // 200W z TV
        const totalGain = peopleGain + tvGain;

        // Zapotrzebowanie (nie mniej niż 0)
        let reqPower = basePower - totalGain;
        if (reqPower < 0) reqPower = 0;

        outGains.textContent = totalGain;
        outPower.textContent = reqPower;

        // Obliczanie Przepływu (Liniowa interpolacja)
        // Jeśli reqPower = 1000 -> 2.5 l/min
        // Jeśli reqPower = 0 -> 0.0 l/min (ale dla rotametru min to 0.5)
        let flow = (reqPower / basePower) * maxFlow;
        if (flow < minFlow) flow = minFlow;
        outFlow.textContent = flow.toFixed(1);

        // --- Aktualizacja SVG ---
        
        // 1. Ludzie (pojawiają się)
        persons.forEach((p, index) => {
            p.style.opacity = index < peopleCount ? '1' : '0';
            p.style.fill = index < peopleCount ? 'var(--rk-imp-warn)' : '#475569';
        });

        // 2. TV
        if (isTvOn) {
            svgTv.style.fill = '#fde047'; // Jasny ekran
            svgTv.style.filter = 'drop-shadow(0 0 10px rgba(253, 224, 71, 0.8))';
            valTvText.textContent = "Włączone";
            valTvText.style.color = "var(--rk-imp-warn)";
        } else {
            svgTv.style.fill = '#94a3b8'; // Zgaszony
            svgTv.style.filter = 'none';
            valTvText.textContent = "Wyłączone";
            valTvText.style.color = "#94a3b8";
        }

        // 3. Łuna ciepła
        // R zależy od totalGain (max 600W)
        const glowRadius = (totalGain / 600) * 100;
        svgHeatGlow.setAttribute('r', glowRadius);
        svgHeatGlow.style.opacity = glowRadius > 0 ? '1' : '0';

        // 4. Rotametr (Pływak)
        // translateY: 0 to góra (2.5 l/min), 90 to dół (0.5 l/min)
        // Odwrócona proporcja
        const flowPercent = (flow - minFlow) / (maxFlow - minFlow); // 1.0 = max, 0.0 = min
        const floatY = (1 - flowPercent) * 90; // max Y = 90
        svgFloat.style.transform = `translateY(${floatY}px)`;
    }

    // Nasłuchiwacze
    sliderPeople.addEventListener('input', updateSimulation);
    
    toggleTv.addEventListener('click', () => {
        isTvOn = !isTvOn;
        toggleTv.classList.toggle('active', isTvOn);
        updateSimulation();
    });

    // Init
    updateSimulation();
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-passive: #10b981;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

.rk-expert-wrapper {
    max-width: 950px;
    margin: 50px auto 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.rk-expert-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-expert-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 12s linear infinite;
}

@keyframes spinRing {
    100% { transform: rotate(360deg); }
}

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.rk-expert-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-quote-accent-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.rk-expert-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

.rk-expert-text a {
    color: var(--rk-quote-primary);
    text-decoration: underline;
    text-decoration-color: var(--rk-quote-accent);
    text-underline-offset: 3px;
    font-weight: 700;
    transition: color 0.3s;
}

.rk-expert-text a:hover {
    color: var(--rk-quote-accent);
}

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

.rk-expert-btn svg {
    transition: transform 0.3s;
}

.rk-expert-btn.active svg {
    transform: rotate(180deg);
}

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: 100px 1fr 1fr 1fr;
    gap: 15px;
    align-items: center;
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-data-svg-box {
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-data-svg {
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 4px 6px rgba(16, 185, 129, 0.2));
}

.anim-pulse-target {
    transform-origin: center;
    animation: targetPulse 2s infinite alternate ease-in-out;
}

@keyframes targetPulse {
    0% { transform: scale(0.9); opacity: 0.8; stroke: var(--rk-quote-accent); }
    100% { transform: scale(1.1); opacity: 1; stroke: var(--rk-quote-passive); }
}

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    border: 1px solid transparent;
    transition: border-color 0.3s;
}

.rk-data-stat:hover {
    border-color: var(--rk-quote-accent-light);
}

.rk-data-val {
    display: block;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header h2 { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
    .rk-data-svg-box { display: none; /* Hide icon on small mobile to save space */ }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Ekspercki punkt widzenia: Precyzja w standardzie pasywnym",
    "description": "Opinia inżyniera HVAC na temat konsekwencji braku rzetelnych obliczeń OZC i projektowania instalacji ogrzewania podłogowego na oko w budownictwie pasywnym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur 'na oko' to absolutna gwarancja przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Jeśli opierasz się na zgadywaniu, zamiast zamówić rzetelny projekt, niszczysz cały sens finansowy energooszczędnej inwestycji.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-cytat",
    "name": "Krytyczne parametry projektowe dla podłogówki pasywnej",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do zachowania stabilności termicznej w budownictwie o ekstremalnie niskim zapotrzebowaniu na energię.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie cieplne domu pasywnego W/m2",
      "skutki braku projektu ogrzewania podłogowego",
      "projekt z obliczeniami OZC a projekt z głowy",
      "taktowanie pompy ciepła w nowym domu",
      "optymalny rozstaw rur 15-20 cm"
    ],
    "measurementTechnique": "Określenie krytycznych limitów mocy i przepływu zapobiegających przegrzewaniu izolowanych brył budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie (q): Poniżej 15 W/m2",
        "Rozstaw rur bazowy: Od 15 cm do 20 cm",
        "Temperatura zasilania: Maksymalnie 28 - 32°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-cytat",
    "name": "Interaktywny Panel Ekspercki: Parametry Pasywne",
    "description": "Interfejs rozwijany przez użytkownika wyświetlający twarde dane liczbowe wynikające z norm i obliczeń OZC przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <h3>Ekspercki punkt widzenia</h3>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski, Inżynier HVAC" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Ostrzeżenie przed "Instalatorską Intuicją"
            </span>
            <p class="rk-expert-text">
                "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur w gęstym rozstawie to absolutna gwarancja nieznośnego przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">ile możesz stracić na błędach robiąc projekt z głowy</a>? Jeśli nie opierasz swojego systemu na <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">rzetelnym projekcie ogrzewania z wyliczeniem OZC</a> do jednego Wata, niszczysz cały finansowy i technologiczny sens energooszczędnej inwestycji."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń parametry krytyczne
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-svg-box">
                        <svg class="rk-data-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                            <circle cx="12" cy="12" r="10" class="anim-pulse-target"></circle>
                            <circle cx="12" cy="12" r="6"></circle>
                            <circle cx="12" cy="12" r="2"></circle>
                        </svg>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-passive);">&lt; 15 W/m²</span>
                        <span class="rk-data-lab">Max. Zapotrzebowanie</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">15 - 20 cm</span>
                        <span class="rk-data-lab">Optymalny Rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">32 °C</span>
                        <span class="rk-data-lab">Krytyczne Zasilanie</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Zapotrzebowanie na moc: Poniżej 15 W/m²</li>
                <li>Optymalny rozstaw rur: Od 15 cm do 20 cm</li>
                <li>Krytyczna maksymalna temperatura zasilania: 32 °C</li>
            </ul>
        </div>
    </noscript>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak nagłówków H-tagów w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            // Usuwamy resztę styli z kontenera by nie zepsuć wyglądu komunikatu
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-brand: #0284c7;
    --rk-cs-accent: #38bdf8;
    --rk-cs-passive: #10b981; /* Kolor sukcesu/pasywny */
    --rk-cs-standard: #f59e0b; /* Kolor ostrzegawczy/standard */
    --rk-cs-cold: #3b82f6; /* Zima/Móz */
    --rk-cs-bg: #ffffff;
    --rk-cs-panel: #f8fafc;
    --rk-cs-border: #cbd5e1;
    --rk-cs-text: #475569;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
    box-sizing: border-box;
}

.rk-cs-wrapper * {
    box-sizing: inherit;
}

/* ================= HEADER I METRYCZKA ================= */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
    padding: 45px 50px 35px;
    position: relative;
}

.rk-cs-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-block;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    color: var(--rk-cs-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
}

.rk-cs-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 30px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-cs-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-cs-stat-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 18px 20px;
    border-radius: 14px;
    backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
}

.rk-cs-stat-item span.label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.rk-cs-stat-item span.value {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.rk-cs-body {
    padding: 40px 50px 10px;
    background: #ffffff;
}

.rk-cs-story {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-cs-text);
    margin: 0 0 25px 0;
}

.rk-cs-story a {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-cs-story a:hover {
    background: #e0f2fe;
    border-color: var(--rk-cs-brand);
}

.rk-cs-author {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    border: 1px solid var(--rk-cs-border);
    padding: 15px 25px;
    border-radius: 100px;
    margin-bottom: 30px;
}

.rk-cs-author img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-cs-author-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.4;
}

.rk-cs-author-info strong {
    color: var(--rk-cs-dark);
    font-weight: 800;
    display: block;
    font-size: 15px;
}

/* ================= SYMULATOR INTERAKTYWNY ================= */
.rk-cs-interactive {
    padding: 0 50px 45px;
}

.rk-sim-box {
    background: var(--rk-cs-panel);
    border: 1px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
}

.rk-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 20px;
}

.rk-sim-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0;
}

/* Toggle App Style */
.rk-toggle-app {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
    width: 300px; /* Sztywna szerokość dla stabilności */
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 15px;
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap; /* Zabezpieczenie przed łamaniem tekstu */
}

.rk-toggle-btn.active { color: #ffffff; }

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    width: calc(50% - 4px);
    background: var(--rk-cs-passive);
    border-radius: 8px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.4s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Dashboard SVG i Wyniki */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 1.2fr;
    gap: 25px;
    align-items: stretch;
}

/* SVG Animacje */
.rk-svg-viewport {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    justify-content: center;
    align-items: center;
}

.svg-snow { fill: #bae6fd; animation: snowfall linear infinite; }
.svg-heat-loss { fill: none; stroke-linecap: round; stroke-width: 4; transition: opacity 0.5s, stroke 0.5s; }

/* Stan: Pasywny */
.state-passive .svg-heat-loss { stroke: var(--rk-cs-passive); opacity: 0.2; animation: floatUp 3s infinite ease-in-out; }
.state-passive .svg-wall { stroke: var(--rk-cs-passive); stroke-width: 8; transition: stroke-width 0.5s; }
.state-passive .svg-therm-fill { fill: var(--rk-cs-passive); height: 60px; y: 40; transition: all 0.5s; }

/* Stan: Standard */
.state-standard .svg-heat-loss { stroke: var(--rk-cs-standard); opacity: 1; animation: floatUp 1s infinite ease-in-out; }
.state-standard .svg-wall { stroke: #94a3b8; stroke-width: 4; transition: stroke-width 0.5s; }
.state-standard .svg-therm-fill { fill: var(--rk-cs-standard); height: 90px; y: 10; transition: all 0.5s; }

@keyframes snowfall {
    0% { transform: translateY(-20px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(120px); opacity: 0; }
}

@keyframes floatUp {
    0% { transform: translateY(10px); }
    100% { transform: translateY(-20px); }
}

/* Wyniki (Kafelki) - PANZER CSS (Zabezpieczone przed globalnymi stylami motywu) */
.rk-sim-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 16px 20px;
    border-radius: 14px;
    transition: border-color 0.3s;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.rk-metric-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    color: var(--rk-cs-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3;
    word-break: normal;
}

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0 0 4px 0;
    line-height: 1.1;
    white-space: nowrap; /* Zapobiega łamaniu wartości */
}

.rk-metric-sub {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
}

.val-highlight { transition: color 0.3s; }
.state-passive .val-highlight { color: var(--rk-cs-passive); }
.state-standard .val-highlight { color: var(--rk-cs-standard); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-cs-header { padding: 35px 25px; }
    .rk-cs-stats { grid-template-columns: 1fr 1fr; }
    .rk-cs-body { padding: 30px 25px 10px; }
    .rk-cs-interactive { padding: 0 25px 35px; }
    .rk-sim-box { padding: 20px; }
    .rk-sim-header { flex-direction: column; gap: 15px; align-items: stretch; text-align: center; }
    .rk-toggle-app { width: 100%; display: flex; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 480px) {
    .rk-sim-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU"
    },
    "headline": "Case Study: Optymalizacja ogrzewania podłogowego w domu pasywnym (Zakopane)",
    "description": "Inżynieryjna analiza projektu instalacji podłogowej w domu pasywnym w Zakopanem. Zastosowanie pompy ciepła monoblok 3,5 kW, rur PERT i rozstawu 20 cm zaowocowało kosztem 640 PLN rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#dataset-casestudy",
    "name": "Wyniki OZC i Koszty Eksploatacji - Dom Pasywny Zakopane 2025",
    "description": "Zestawienie parametrów wejściowych i wyników eksploatacyjnych dla budynku o pow. 162m2 zlokalizowanego w III strefie klimatycznej (-20°C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania pompą ciepła w górach",
      "projekt podłogówki do domu pasywnego",
      "średnia temperatura zasilania podłogówki",
      "rozstaw rur 20 cm ogrzewanie podłogowe",
      "pompa ciepła monoblok 3.5 kW"
    ],
    "measurementTechnique": "Monitoring rzeczywistego zużycia energii elektrycznej pompy ciepła w sezonie grzewczym 2025/2026 w odniesieniu do projektu OZC 1,94 kW.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie na moc (OZC): 1,94 kW przy -20°C na zewnątrz.",
        "System: Pompa ciepła monoblok 3,5 kW, rura PERT/AL/PERT 16x2,0 mm.",
        "Parametry zasilania: Średnia sezonowa temperatura Tz = 27,4°C.",
        "Roczny koszt ogrzewania: 640 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#webapp-casestudy",
    "name": "Symulator Efektywności Termicznej (Pasywny vs Standard)",
    "description": "Interaktywny panel zestawiający wizualnie straty ciepła i roczne koszty ogrzewania w ekstremalnych warunkach zimowych dla dwóch standardów budowlanych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-cs-wrapper" id="case-study-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">Case Study z placu budowy</div>
        <h2>Inwestycja Stanisława, Zakopane</h2>
        
        <div class="rk-cs-stats">
            <div class="rk-cs-stat-item">
                <span class="label">Termin</span>
                <span class="value">Listopad 2025</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Lokalizacja</span>
                <span class="value">Strefa III (-20°C)</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Powierzchnia</span>
                <span class="value">162 m²</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Wynikowy Koszt</span>
                <span class="value" style="color: var(--rk-cs-accent);">640 PLN / rok</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-body">
        <div class="rk-cs-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" loading="lazy">
            <div class="rk-cs-author-info">
                <strong>Robert Kucharski</strong>
                <p>Nadzór Inżynierski HVAC</p>
            </div>
        </div>

        <p class="rk-cs-story">
            W listopadzie 2025 roku zakończyłem nadzór inżynierski nad <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">projektem podłogówki do domu pasywnego</a> dla Pana Stanisława w Zakopanem. Wyzwaniem była wymagająca, III strefa klimatyczna. Budynek o powierzchni 162 m² został wykonany w rygorystycznej technologii (ściany U=0,09 W/(m²·K)). Realne zapotrzebowanie na moc grzewczą w najzimniejszym dniu zimy (-20°C) wyniosło zaledwie <strong>1,94 kW</strong> dla całego obiektu.
        </p>
        <p class="rk-cs-story">
            Zastosowaliśmy <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rurę PERT/AL/PERT</a> 16x2,0 mm w rzadkim, ale tu idealnym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur 20 cm</a> w strefach bytowych. Zintegrowaliśmy to z automatyką pogodową i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła typu monoblok 3,5 kW</a>. Efekt? <strong>Średnia temperatura zasilania podłogówki</strong> w sezonie wyniosła zaledwie 27,4°C, co zagwarantowało <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania pompą ciepła w górach</a> na poziomie rewelacyjnych 640 PLN rocznie.
        </p>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-sim-box state-passive" id="rk-sim-container">
            
            <div class="rk-sim-header">
                <h3 class="rk-sim-title">Symulator Efektywności Termicznej</h3>
                <div class="rk-toggle-app">
                    <div class="rk-toggle-slider" id="rk-toggle-slider"></div>
                    <div class="rk-toggle-btn active" id="btn-passive">Dom Pasywny</div>
                    <div class="rk-toggle-btn" id="btn-standard">Dom Standard</div>
                </div>
            </div>

            <div class="rk-sim-dashboard">
                
                <!-- Wizualizacja SVG (Zima) -->
                <div class="rk-svg-viewport">
                    <svg viewBox="0 0 200 150" style="width:100%; max-width:200px; height:auto;">
                        <!-- Tło / Śnieg (generowany w js) -->
                        <g id="snow-layer"></g>

                        <!-- Budynek -->
                        <path class="svg-wall" d="M 40 130 L 40 70 L 100 30 L 160 70 L 160 130 Z" fill="#f8fafc" stroke-linejoin="round"/>
                        
                        <!-- Rury Grzewcze -->
                        <circle cx="70" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="100" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="130" cy="120" r="5" fill="#ef4444"/>

                        <!-- Uciekające Ciepło -->
                        <path class="svg-heat-loss" d="M 100 80 Q 110 50 100 20"/>
                        <path class="svg-heat-loss" d="M 70 80 Q 80 50 70 20" style="animation-delay: 0.3s;"/>
                        <path class="svg-heat-loss" d="M 130 80 Q 140 50 130 20" style="animation-delay: 0.6s;"/>

                        <!-- Termometr Zewnętrzny (-20C) -->
                        <rect x="10" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="12" y="80" width="6" height="20" rx="3" fill="#3b82f6"/>
                        <text x="15" y="35" font-size="10" font-weight="bold" fill="#3b82f6" text-anchor="middle">-20°C</text>

                        <!-- Termometr Wewnętrzny -->
                        <rect x="175" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="177" y="40" width="6" height="60" rx="3" class="svg-therm-fill"/>
                        <text x="180" y="35" font-size="10" font-weight="bold" fill="#ef4444" text-anchor="middle">21°C</text>
                    </svg>
                </div>

                <!-- Kafelki Wyników z zabezpieczeniem (flex-direction: column) -->
                <div class="rk-sim-metrics">
                    <div class="rk-metric-card">
                        <h4>Moc Projektowa (OZC)</h4>
                        <div class="rk-metric-val val-highlight" id="val-ozc">1.94 kW</div>
                        <div class="rk-metric-sub">Zapotrzebowanie przy -20°C</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Śr. Temp. Zasilania</h4>
                        <div class="rk-metric-val val-highlight" id="val-temp">27.4°C</div>
                        <div class="rk-metric-sub">Idealne dla pompy ciepła</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Rozstaw Rur PEX/PERT</h4>
                        <div class="rk-metric-val val-highlight" id="val-spacing">co 20 cm</div>
                        <div class="rk-metric-sub">Oszczędność materiału</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Roczny Koszt Ogrzewania</h4>
                        <div class="rk-metric-val val-highlight" id="val-cost">640 PLN</div>
                        <div class="rk-metric-sub">W rachunkach za prąd</div>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('case-study-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ UNAUTHORIZED ACCESS ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Brak licencji na wyświetlanie zawartości.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł Case Study stanowi własność intelektualną Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Generowanie śniegu w SVG
    const snowLayer = document.getElementById('snow-layer');
    let snowHtml = '';
    for(let i=0; i<15; i++) {
        const cx = Math.random() * 200;
        const delay = Math.random() * 3;
        const dur = 2 + Math.random() * 2;
        const r = 1 + Math.random() * 1.5;
        snowHtml += `<circle cx="${cx}" cy="-10" r="${r}" class="svg-snow" style="animation-delay: ${delay}s; animation-duration: ${dur}s;"/>`;
    }
    snowLayer.innerHTML = snowHtml;

    // 3. Logika Przełącznika
    const btnPassive = document.getElementById('btn-passive');
    const btnStandard = document.getElementById('btn-standard');
    const slider = document.getElementById('rk-toggle-slider');
    const container = document.getElementById('rk-sim-container');

    // Wartości DOM
    const valOzc = document.getElementById('val-ozc');
    const valTemp = document.getElementById('val-temp');
    const valSpacing = document.getElementById('val-spacing');
    const valCost = document.getElementById('val-cost');

    function animateValue(element, start, end, suffix, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            const easeProgress = progress * (2 - progress);
            const current = start + (end - start) * easeProgress;
            
            if(Number.isInteger(end)) {
                element.textContent = Math.round(current) + suffix;
            } else {
                element.textContent = current.toFixed(2) + suffix;
            }
            
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    btnPassive.addEventListener('click', () => {
        // UI Update
        btnStandard.classList.remove('active');
        btnPassive.classList.add('active');
        slider.style.transform = 'translateX(0)';
        slider.style.background = 'var(--rk-cs-passive)';
        
        container.classList.remove('state-standard');
        container.classList.add('state-passive');

        // Text & Animations
        valSpacing.textContent = 'co 20 cm';
        animateValue(valOzc, 8.5, 1.94, ' kW', 800);
        animateValue(valTemp, 38.0, 27.4, '°C', 800);
        animateValue(valCost, 3200, 640, ' PLN', 1000);
    });

    btnStandard.addEventListener('click', () => {
        // UI Update
        btnPassive.classList.remove('active');
        btnStandard.classList.add('active');
        slider.style.transform = 'translateX(100%)';
        slider.style.background = 'var(--rk-cs-standard)';
        
        container.classList.remove('state-passive');
        container.classList.add('state-standard');

        // Text & Animations
        valSpacing.textContent = 'co 10 cm';
        animateValue(valOzc, 1.94, 8.5, ' kW', 800);
        animateValue(valTemp, 27.4, 38.0, '°C', 800);
        animateValue(valCost, 640, 3200, ' PLN', 1000);
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-brand: #0284c7;
    --rk-faq-brand-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-eco: #10b981;
    --rk-faq-warn: #f59e0b;
    --rk-faq-cold: #3b82f6;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-panel: #f8fafc;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    text-align: center;
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-faq-header p {
    font-size: 16px;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Interaktywny Akordeon */
.rk-faq-body {
    padding: 40px 45px;
    background: var(--rk-faq-panel);
}

.rk-accordion-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
    transition: border-color 0.3s, box-shadow 0.3s;
}

.rk-accordion-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk Pytania */
.rk-accordion-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.rk-accordion-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    padding-right: 20px;
    transition: color 0.3s;
}

.rk-accordion-item.active .rk-accordion-title {
    color: var(--rk-faq-brand);
}

.rk-accordion-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rk-accordion-item.active .rk-accordion-icon {
    transform: rotate(135deg);
    background: var(--rk-faq-brand);
    color: #ffffff;
}

/* Rozwijana Treść */
.rk-accordion-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
}

.rk-accordion-item.active .rk-accordion-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-accordion-content {
    overflow: hidden;
}

.rk-accordion-inner {
    padding: 0 30px 30px 30px;
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 30px;
    align-items: center;
    border-top: 1px dashed transparent;
    transition: border-color 0.4s;
}

.rk-accordion-item.active .rk-accordion-inner {
    border-color: var(--rk-faq-border);
    padding-top: 25px;
}

/* Tekst i Linki SEO */
.rk-faq-text {
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--rk-faq-text);
    margin: 0;
}

.rk-faq-text strong {
    color: var(--rk-faq-dark);
}

.rk-faq-text a {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-faq-text a:hover {
    background: var(--rk-faq-brand-light);
    border-color: var(--rk-faq-brand);
}

/* Mini Infografiki SVG wewnątrz FAQ */
.rk-faq-svg-box {
    width: 100%;
    height: 120px;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid var(--rk-faq-border);
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-faq-svg { width: 80%; height: auto; }

/* Animacje Q1, Q2, Q3 (Istniejące) */
.anim-heat-glow { opacity: 0; transform: translateY(10px); transition: all 0.8s ease; }
.rk-accordion-item.active .anim-heat-glow { opacity: 1; transform: translateY(0); animation: pulseHeat 2s infinite alternate; }

.anim-evoh { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s ease-in-out; }
.rk-accordion-item.active .anim-evoh { stroke-dashoffset: 0; }

.anim-panel { transform: translateY(-20px); opacity: 0; transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-accordion-item.active .anim-panel { transform: translateY(0); opacity: 1; }

/* Animacje Q4, Q5 (Nowe) */
.anim-reku-arrow { opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-reku-arrow { opacity: 1; animation: flowReku 2s infinite linear; }
.anim-flake { transform-origin: center; opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-flake { opacity: 1; animation: spinFlake 4s infinite linear; }

@keyframes pulseHeat {
    0% { filter: drop-shadow(0 -5px 5px rgba(245, 158, 11, 0.2)); }
    100% { filter: drop-shadow(0 -15px 15px rgba(245, 158, 11, 0.6)); }
}
@keyframes flowReku {
    0% { stroke-dashoffset: 20; }
    100% { stroke-dashoffset: 0; }
}
@keyframes spinFlake {
    100% { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-body { padding: 30px 25px; }
    .rk-accordion-btn { padding: 20px; }
    .rk-accordion-inner { grid-template-columns: 1fr; padding: 0 20px 20px 20px; gap: 20px; }
    .rk-accordion-title { font-size: 15px; }
    .rk-faq-svg-box { height: 100px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Sekcja FAQ – Najczęstsze pytania o podłogówkę w domu pasywnym",
    "description": "Techniczne odpowiedzi eksperta: podłogówka jako jedyne źródło ciepła, rury PEX vs PERT, panele na ogrzewaniu, wpływ rekuperacji oraz chłodzenie płaszczyznowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wykonane projektowe obciążenie cieplne (OZC). W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh/(m2·rok)), prawidłowo zaprojektowana instalacja ogrzewania płaszczyznowego bez problemu pokryje straty ciepła, nawet gdy temperatura na zewnątrz spada poniżej -20°C."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W przypadku domów pasywnych, gdzie zasilanie pompy ciepła oscyluje wokół 28-32°C, rura wielowarstwowa PERT/AL/PERT jest wyborem optymalnym i wystarczającym. Najważniejszym parametrem jest obecność bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726, która skutecznie blokuje przenikanie tlenu do zładu wody."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Oczywiście, ale wymaga to precyzji projektowej. Całkowity opór cieplny okładziny (paneli wraz z podkładem) nie może przekraczać 0,15 (m2·K)/W. W praktyce najlepiej sprawdzają się cienkie panele winylowe SPC na podłogówkę oraz dedykowane podkłady o dużej gęstości."
        }
      },
      {
        "@type": "Question",
        "name": "Jak wentylacja mechaniczna z rekuperacją współpracuje z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W budownictwie pasywnym rekuperacja jest niezbędna do prawidłowego działania podłogówki. Eliminując grawitacyjne straty ciepła, drastycznie obniża zapotrzebowanie energetyczne budynku. Pozwala to na obniżenie temperatury zasilania z pompy ciepła, co maksymalizuje współczynnik COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ogrzewaniem podłogowym można chłodzić dom pasywny latem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, chłodzenie płaszczyznowe przy użyciu rewersyjnej pompy ciepła to świetne rozwiązanie. Wymaga jednak ścisłej kontroli tzw. punktu rosy w ogrzewaniu podłogowym. Automatyka musi dbać o to, by zbyt niska temperatura wody (ok. 18°C) nie wywołała kondensacji wilgoci na posadzce."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-faq",
    "name": "Baza Wiedzy: Parametry Techniczne Podłogówki w Budownictwie Pasywnym",
    "description": "Zestawienie wytycznych instalacyjnych obejmujące ogrzewanie, chłodzenie i współpracę z rekuperatorem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka jedyne źródło ciepła zimą",
      "jaką rurę do ogrzewania podłogowego wybrać",
      "bariera antydyfuzyjna EVOH",
      "panele winylowe SPC na podłogówkę",
      "wpływ rekuperacji na ogrzewanie podłogowe",
      "chłodzenie płaszczyznowe podłogówką pompą ciepła",
      "punkt rosy w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych OZC, wymagań dyfuzyjnych normy DIN 4726, oporu cieplnego R < 0,15 m2K/W oraz kontroli punktu kondensacji pary wodnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wydajność: Samodzielne pokrycie OZC przy mrozach -20°C.",
        "Technologia rur: PERT vs PEX z warunkiem szczelności tlenowej EVOH.",
        "Rezystancja: Limit izolacyjności podłogi do 0,15 m2K/W.",
        "Efektywność: Obniżenie OZC przez odzysk ciepła z wentylacji.",
        "Chłodzenie: Ochrona okładziny przed wilgocią poprzez kontrolę punktu rosy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny (FAQ HVAC)",
    "description": "Aplikacja webowa typu akordeon, wzbogacona o dynamicznie renderowane grafiki wektorowe SVG, służąca do edukacji inwestorów w zakresie projektowania nowoczesnych instalacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq-container" id="faq-interactive-app">
    
    <div class="rk-faq-header">
        <h2>Sekcja FAQ – Najczęstsze pytania inwestorów</h2>
        <p>Wątpliwości na etapie stanu surowego to norma. Zobacz, jak inżynieria HVAC odpowiada na 5 najważniejszych pytań dotyczących standardu pasywnego.</p>
    </div>

    <div class="rk-faq-body">
        
        <!-- Pytanie 1 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wyliczone <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne (OZC)</a></strong>. W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh na m2 rocznie), prawidłowo zaprojektowana <strong>instalacja ogrzewania płaszczyznowego</strong> bez problemu pokryje straty budynku, nawet gdy temperatura na zewnątrz spada poniżej -20°C. Podłogówka eliminuje konieczność montowania dodatkowych grzejników czy mat elektrycznych, co znacząco obniża koszty inwestycyjne.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <path d="M10 80 L 90 80" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                                <circle cx="30" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="50" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="70" cy="70" r="6" fill="#ef4444"/>
                                <!-- Animowana łuna ciepła -->
                                <path class="anim-heat-glow" d="M 20 60 Q 50 10 80 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W przypadku domów pasywnych, gdzie zasilanie oscyluje wokół 28-32°C, <strong><a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura wielowarstwowa PERT/AL/PERT</a></strong> jest wyborem optymalnym. Jej największą zaletą jest wysoka elastyczność i łatwość układania gęstych pętli w porównaniu do sztywniejszych rur <strong><a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX/AL/PEX</a></strong>. Najważniejszym parametrem, na który musisz zwrócić uwagę przed zakupem, jest obecność bariery antydyfuzyjnej EVOH. Zgodnie z normą <strong><a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726</a></strong>, warstwa ta skutecznie blokuje przenikanie cząsteczek tlenu do zładu wody, chroniąc pompę ciepła i stalowe rozdzielacze przed korozją.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Warstwy rury -->
                                <circle cx="50" cy="50" r="30" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                                <circle cx="50" cy="50" r="24" fill="none" stroke="#94a3b8" stroke-width="4"/>
                                <circle cx="50" cy="50" r="20" fill="none" stroke="#10b981" stroke-width="4" class="anim-evoh"/>
                                <circle cx="50" cy="50" r="16" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                                <text x="50" y="54" font-size="10" font-weight="bold" fill="#0f172a" text-anchor="middle">O2 STOP</text>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Oczywiście, ale wymaga to ogromnej precyzji projektowej. Zgodnie z inżynierskimi wytycznymi, całkowity <strong><a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny okładziny (R)</a></strong> (czyli suma oporu paneli i podkładu) nie może przekraczać 0,15 (m2·K)/W. W praktyce instalatorskiej najlepiej sprawdzają się cienkie <strong>panele winylowe SPC na podłogówkę</strong> oraz dedykowane podkłady mineralne o wysokiej gęstości. Pamiętaj, że <strong><a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">zastosowanie grubych paneli laminowanych</a></strong> wymusi podniesienie krzywej grzewczej na piecu o około 2 do 3°C względem płytek gresowych.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Beton z rurą -->
                                <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="80" r="5" fill="#ef4444"/>
                                <!-- Podkład i Panel -->
                                <g class="anim-panel">
                                    <rect x="10" y="55" width="80" height="6" fill="#f59e0b" opacity="0.8"/>
                                    <rect x="10" y="40" width="80" height="10" fill="#8b5cf6" rx="1"/>
                                    <path d="M 50 35 L 50 15 M 45 20 L 50 15 L 55 20" stroke="#8b5cf6" stroke-width="2" fill="none"/>
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jak wentylacja z rekuperacją współpracuje z podłogówką?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W budownictwie pasywnym <strong>wentylacja mechaniczna z odzyskiem ciepła (rekuperacja)</strong> jest systemem nierozerwalnie związanym z niskotemperaturowym ogrzewaniem. Eliminując potężne grawitacyjne straty ciepła (tzw. wywiewanie ciepłego powietrza przez komin), rekuperator drastycznie obniża zapotrzebowanie budynku. Pozytywny <strong><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie podłogowe</a></strong> polega na tym, że instalacja grzewcza może pracować stabilnie na bardzo niskich parametrach zasilania, co bezpośrednio maksymalizuje wydajność (COP) pompy ciepła.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Wymiennik -->
                                <polygon points="50,20 80,50 50,80 20,50" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                <!-- Przepływ zimnego -> gorącego -->
                                <path class="anim-reku-arrow" d="M 20 50 L 80 50" stroke="#ef4444" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                                <!-- Przepływ zużytego -> zimnego -->
                                <path class="anim-reku-arrow" d="M 50 20 L 50 80" stroke="#3b82f6" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewaniem podłogowym można skutecznie chłodzić dom latem?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Tak, <strong>chłodzenie płaszczyznowe podłogówką</strong> przy użyciu rewersyjnej pompy ciepła to doskonałe, darmowe źródło komfortu na upalne dni. Instalacja tłoczy wtedy w posadzkę wodę o temperaturze około 18-20°C. Głównym wyzwaniem inżynieryjnym jest jednak ominięcie <strong><a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy w ogrzewaniu podłogowym</a></strong>. Zbyt niska temperatura czynnika doprowadzi do kondensacji i wytrącenia się kropel wody na posadzce. Wymaga to integracji odpowiednich termostatów ściennych z czujnikami wilgotności.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <rect x="10" y="80" width="80" height="10" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="85" r="3" fill="#3b82f6"/> <!-- Zimna woda -->
                                <!-- Płatek śniegu obracający się -->
                                <g class="anim-flake" stroke="#3b82f6" stroke-width="2" stroke-linecap="round">
                                    <line x1="50" y1="20" x2="50" y2="60" />
                                    <line x1="30" y1="40" x2="70" y2="40" />
                                    <line x1="35" y1="25" x2="65" y2="55" />
                                    <line x1="35" y1="55" x2="65" y2="25" />
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez użycia H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('faq-interactive-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #0284c7; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #0284c7;">[ MODULE LOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Autoryzacja domeny nie powiodła się.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Aplikacja interaktywnego FAQ jest przypisana do licencji Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Z jednym otwartym na raz)
    const accordionItems = document.querySelectorAll('.rk-accordion-item');

    accordionItems.forEach(item => {
        const btn = item.querySelector('.rk-accordion-btn');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamknij inne
            accordionItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełącz
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Otwarcie pierwszego
    if(accordionItems.length > 0) {
        accordionItems[0].classList.add('active');
        accordionItems[0].querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'true');
    }
});
</script>



<style>
:root {
    --rk-pas-dark: #0f172a;
    --rk-pas-brand: #2563eb;
    --rk-pas-brand-light: #eff6ff;
    --rk-pas-eco: #059669;
    --rk-pas-eco-light: #ecfdf5;
    --rk-pas-warn: #dc2626;
    --rk-pas-warn-light: #fef2f2;
    --rk-pas-text: #334155;
    --rk-pas-border: #cbd5e1;
    --rk-pas-bg: #ffffff;
}

.rk-pas-container {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-pas-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid #e2e8f0;
    overflow: hidden;
}

/* Nagłówek */
.rk-pas-header {
    background: linear-gradient(145deg, var(--rk-pas-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: #fff;
}

.rk-pas-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #f8fafc;
    line-height: 1.3;
}

.rk-pas-quote {
    font-size: 18px;
    font-style: italic;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.rk-pas-quote strong {
    color: #38bdf8;
    font-weight: 700;
}

/* Interfejs Przełącznika */
.rk-pas-interactive {
    padding: 40px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-pas-border);
}

.rk-pas-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-pas-controls h3 {
    margin: 0;
    font-size: 20px;
    color: var(--rk-pas-dark);
}

/* Toggle Switch w stylu App */
.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fff;
    padding: 10px 20px;
    border-radius: 99px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pas-border);
}

.rk-toggle-label {
    font-weight: 700;
    font-size: 15px;
    color: #64748b;
    transition: color 0.3s;
}

.rk-toggle-label.active-warn { color: var(--rk-pas-warn); }
.rk-toggle-label.active-eco { color: var(--rk-pas-eco); }

.rk-switch {
    position: relative;
    width: 64px;
    height: 32px;
    background: var(--rk-pas-warn);
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.4s;
}

.rk-switch.pro-mode {
    background: var(--rk-pas-eco);
}

.rk-switch-thumb {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-switch.pro-mode .rk-switch-thumb {
    transform: translateX(32px);
}

/* Wyświetlacz i SVG */
.rk-pas-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-stage {
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
    display: block;
}

/* Animacje SVG */
.wave-path {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    transition: stroke 0.5s, transform 0.5s;
}

.state-error .wave-path { stroke: var(--rk-pas-warn); animation: overheat 0.8s infinite alternate; }
.state-pro .wave-path { stroke: var(--rk-pas-eco); animation: stableHeat 3s infinite linear; }

@keyframes overheat {
    0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
    100% { transform: translateY(-10px) scaleY(1.2); opacity: 1; }
}

@keyframes stableHeat {
    0% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(-5px); opacity: 0.9; }
    100% { transform: translateY(0); opacity: 0.6; }
}

.house-outline {
    fill: none;
    stroke: var(--rk-pas-dark);
    stroke-width: 3;
    stroke-linejoin: round;
}

/* Kafelki Danych (Grid) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-data-card {
    background: #f8fafc;
    border: 1px solid var(--rk-pas-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-data-card h4 {
    margin: 0 0 5px 0;
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-data-card .rk-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-pas-dark);
    margin-bottom: 5px;
}

.rk-data-card p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-pas-text);
}

/* CTA */
.rk-pas-cta {
    padding: 40px 30px;
    text-align: center;
    background: #fff;
}

.rk-pas-cta p {
    font-size: 16px;
    color: var(--rk-pas-text);
    max-width: 650px;
    margin: 0 auto 25px;
    line-height: 1.6;
}

.rk-pas-cta a {
    color: var(--rk-pas-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-pas-brand);
    color: #ffffff !important; /* Wymuszony biały kolor tekstu i ikony */
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    text-decoration: none !important;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-btn:hover {
    background: #1d4ed8;
    color: #ffffff !important; /* Zabezpieczenie przed zmianą koloru po najechaniu */
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .rk-pas-display { grid-template-columns: 1fr; text-align: center; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 16px; padding: 15px; }
    .rk-switch { transform: rotate(90deg); margin: 10px 0; }
    .rk-pas-header h2 { font-size: 24px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Podsumowanie: Precyzja to Twój największy zysk w budownictwie pasywnym",
    "description": "Zrozum różnicę między intuicyjnym montażem a precyzyjnym inżynierskim projektem instalacji grzewczej. Optymalizacja rozstawu rur i izolacji EPS 200.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset",
    "name": "Porównanie Parametrów: System Pasywny vs Błędy Wykonawcze",
    "description": "Baza danych przedstawiająca realne skutki przewymiarowania instalacji podłogowej, w tym nadmierne temperatury zasilania i koszty eksploatacyjne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego dom pasywny",
      "rozstaw rur 15 cm a 10 cm",
      "grubość styropianu EPS 200",
      "temperatura zasilania pompy ciepła",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Analiza symulacyjna oparta na normie PN-EN 12831 wykazująca różnice w temperaturze zasilania i stabilności cieplnej podłogi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur 10 cm: Powoduje nadmiar mocy, przegrzewanie i niepotrzebne koszty rur.",
        "Rozstaw rur 15-20 cm: Wymaga projektu, zapewnia niskie zasilanie (do 32°C) i stabilną pracę pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp",
    "name": "Interaktywny Symulator Komfortu Pasywnego",
    "description": "Narzędzie internetowe demonstrujące wpływ precyzyjnego inżynierskiego rozstawu rur i izolacji na parametry pracy instalacji ogrzewania podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pas-container" id="pasywny-sum-app">
    
    <div class="rk-pas-header">
        <h2>Efektywność wymaga inżynierskiej precyzji</h2>
        <p class="rk-pas-quote">
            W domu pasywnym instalacja grzewcza ma być niemal "niewidoczna" dla zmysłów i portfela. <strong>Zbyt gęsty rozstaw rur i wysoka temperatura zasilania to najszybsza droga do katastrofy termicznej.</strong>
        </p>
    </div>

    <div class="rk-pas-interactive">
        <div class="rk-pas-controls">
            <h3>Sprawdź wpływ projektu na działanie instalacji</h3>
            <div class="rk-toggle-wrapper">
                <span class="rk-toggle-label active-warn" id="lbl-amateur">Wykonawstwo "Na oko"</span>
                <div class="rk-switch" id="pas-toggle">
                    <div class="rk-switch-thumb"></div>
                </div>
                <span class="rk-toggle-label" id="lbl-pro">Projekt Inżynierski (OZC)</span>
            </div>
        </div>

        <div class="rk-pas-display">
            <!-- Animacja SVG -->
            <div class="rk-svg-container state-error" id="svg-state">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Podstawa / Wylewka -->
                    <rect x="20" y="160" width="160" height="20" fill="#cbd5e1" rx="4"/>
                    <!-- Rury (dynamiczne wypełnienie w JS) -->
                    <g id="svg-pipes">
                        <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="140" cy="170" r="6" fill="#ef4444"/>
                    </g>
                    <!-- Fale Ciepła -->
                    <path class="wave-path" d="M 50 140 Q 60 100 50 60" />
                    <path class="wave-path" d="M 100 140 Q 110 100 100 60" style="animation-delay: 0.2s" />
                    <path class="wave-path" d="M 150 140 Q 160 100 150 60" style="animation-delay: 0.4s" />
                    <!-- Zarys Domu -->
                    <path class="house-outline" d="M 20 160 L 20 80 L 100 20 L 180 80 L 180 160" />
                </svg>
            </div>

            <!-- Dynamiczne Dane -->
            <div class="rk-data-grid">
                <div class="rk-data-card" id="card-spacing">
                    <h4>Rozstaw Rur</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">co 10 cm</div>
                    <p>Zbędny wydatek na materiał, trudne rotametrowanie.</p>
                </div>
                <div class="rk-data-card" id="card-temp">
                    <h4>Temp. Zasilania</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">> 40°C</div>
                    <p>Spadek COP pompy ciepła, przegrzewanie salonu.</p>
                </div>
                <div class="rk-data-card" id="card-eps">
                    <h4>Izolacja Posadzki</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">EPS 100</div>
                    <p>Niewystarczający opór cieplny do gruntu.</p>
                </div>
                <div class="rk-data-card" id="card-cost">
                    <h4>Koszty Roczne</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">Wyższe o 35%</div>
                    <p>Energia tracona przez niestabilność układu.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pas-cta">
        <p>
            Decyzja o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur co 10 czy 15 cm</a> oraz doborze grubości <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu EPS podłogowego</a> nie może być dziełem przypadku. W standardzie pasywnym nawet <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania (rzędu 30-35°C)</a> wymaga idealnego zbilansowania w dokumentacji.
        </p>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/" class="rk-btn">
            ZAMÓW PROJEKT OGRZEWANIA DO DOMU PASYWNEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pasywny-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛡️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny i warstwa JSON-LD należą do portalu Projekt-Ogrzewania.pl. Uruchomienie skryptu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggle = document.getElementById('pas-toggle');
    const lblAmateur = document.getElementById('lbl-amateur');
    const lblPro = document.getElementById('lbl-pro');
    const svgState = document.getElementById('svg-state');
    const svgPipes = document.getElementById('svg-pipes');
    
    // Kafelki
    const cardSpacing = document.getElementById('card-spacing');
    const cardTemp = document.getElementById('card-temp');
    const cardEps = document.getElementById('card-eps');
    const cardCost = document.getElementById('card-cost');

    let isPro = false;

    toggle.addEventListener('click', () => {
        isPro = !isPro;
        
        if(isPro) {
            // Styl przełącznika
            toggle.classList.add('pro-mode');
            lblAmateur.classList.remove('active-warn');
            lblPro.classList.add('active-eco');
            
            // Styl SVG
            svgState.classList.remove('state-error');
            svgState.classList.add('state-pro');
            svgPipes.innerHTML = `
                <circle cx="60" cy="170" r="6" fill="#059669"/>
                <circle cx="100" cy="170" r="6" fill="#059669"/>
                <circle cx="140" cy="170" r="6" fill="#059669"/>
            `; // 3 rury zamiast 4 (szerszy rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 15-20 cm', 'var(--rk-pas-eco)', 'Idealny balans zysków ciepła i oporów.');
            updateCard(cardTemp, '28°C - 32°C', 'var(--rk-pas-eco)', 'Optymalny COP dla pomp ciepła i komfortu.');
            updateCard(cardEps, 'EPS 200', 'var(--rk-pas-eco)', 'Minimalne straty do gruntu (R > 6,0).');
            updateCard(cardCost, 'Zoptymalizowane', 'var(--rk-pas-eco)', 'Grzanie ciągłe, bez zjawiska taktowania sprężarki.');
            
        } else {
            // Styl przełącznika
            toggle.classList.remove('pro-mode');
            lblPro.classList.remove('active-eco');
            lblAmateur.classList.add('active-warn');

            // Styl SVG
            svgState.classList.remove('state-pro');
            svgState.classList.add('state-error');
            svgPipes.innerHTML = `
                <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                <circle cx="140" cy="170" r="6" fill="#ef4444"/>
            `; // 4 rury (gęsty rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 10 cm', 'var(--rk-pas-warn)', 'Zbędny wydatek na materiał, trudne rotametrowanie.');
            updateCard(cardTemp, '> 40°C', 'var(--rk-pas-warn)', 'Spadek COP pompy ciepła, przegrzewanie salonu.');
            updateCard(cardEps, 'EPS 100', 'var(--rk-pas-warn)', 'Niewystarczający opór cieplny do gruntu.');
            updateCard(cardCost, 'Wyższe o 35%', 'var(--rk-pas-warn)', 'Energia tracona przez niestabilność układu.');
        }
    });

    function updateCard(card, valueText, color, descText) {
        const valElement = card.querySelector('.rk-value');
        const descElement = card.querySelector('p');
        
        valElement.style.opacity = '0';
        descElement.style.opacity = '0';
        
        setTimeout(() => {
            valElement.textContent = valueText;
            valElement.style.color = color;
            descElement.textContent = descText;
            
            valElement.style.opacity = '1';
            descElement.style.opacity = '1';
        }, 150);
    }
});
</script>



<style>
:root {
    --dl-pas-primary: #0f172a;
    --dl-pas-accent: #10b981; /* Szmaragdowa zieleń - Eco/Pasywny */
    --dl-pas-accent-dark: #047857;
    --dl-pas-bg: #f8fafc;
    --dl-pas-border: #e2e8f0;
    --dl-pas-text: #334155;
    --dl-pas-white: #ffffff;
    --dl-pas-muted: #64748b;
}

.rk-pas-dl-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--dl-pas-white);
    border-radius: 24px;
    border: 1px solid var(--dl-pas-border);
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    overflow: hidden;
    box-sizing: border-box;
}

.rk-pas-dl-container * {
    box-sizing: inherit;
}

/* NAGŁÓWEK SEKCI */
.dl-pas-header {
    background: linear-gradient(135deg, var(--dl-pas-primary) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: var(--dl-pas-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* Subtelny wzór geometryczny w tle nagłówka */
.dl-pas-header::before {
    content: '';
    position: absolute;
    top: -50%; right: -10%;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.dl-pas-header-content { position: relative; z-index: 2; max-width: 65%; }

.dl-pas-badge {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.4);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-pas-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.dl-pas-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* WIZUALIZACJA PDF / IKONA */
.dl-pas-header-visual {
    position: relative;
    z-index: 2;
}

.dl-pas-pdf-icon {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: floatPasIcon 3.5s infinite ease-in-out alternate;
}

@keyframes floatPasIcon {
    from { transform: translateY(0) rotate(0deg); }
    to { transform: translateY(-12px) rotate(-3deg); }
}

/* GŁÓWNY WORKSPACE */
.dl-pas-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-pas-white);
    align-items: center;
}

.dl-pas-preview {
    flex: 1;
    background: var(--dl-pas-bg);
    border: 1px solid var(--dl-pas-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
}

.dl-pas-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px -10px rgba(16, 185, 129, 0.15);
}

.dl-pas-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.dl-pas-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
}

.dl-pas-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-pas-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.dl-pas-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-pas-text);
    line-height: 1.5;
}

.dl-pas-check {
    width: 22px;
    height: 22px;
    color: var(--dl-pas-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

/* PRZYCISK POBIERANIA */
.dl-pas-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-pas-accent);
    color: var(--dl-pas-white) !important;
    text-decoration: none !important;
    padding: 18px 32px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    border: 2px solid transparent;
}

.dl-pas-btn:hover {
    background: var(--dl-pas-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.6);
    border-color: #6ee7b7;
}

.dl-pas-btn svg {
    transition: transform 0.3s;
}

.dl-pas-btn:hover svg {
    transform: translateY(3px);
}

/* STOPKA MODUŁU I SEO */
.dl-pas-footer {
    padding: 25px 50px;
    background: var(--dl-pas-bg);
    border-top: 1px solid var(--dl-pas-border);
}

.dl-pas-seo-text {
    font-size: 14px;
    color: var(--dl-pas-muted);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

.dl-pas-seo-text strong {
    color: var(--dl-pas-primary);
}

.dl-pas-footer a {
    color: var(--dl-pas-accent-dark);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}

.dl-pas-footer a:hover {
    border-color: var(--dl-pas-accent-dark);
}

.dl-pas-copyright {
    font-size: 12px;
    color: #94a3b8;
    text-align: center;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed #cbd5e1;
}

@media (max-width: 800px) {
    .dl-pas-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .dl-pas-header-content { max-width: 100%; margin-bottom: 30px; }
    .dl-pas-workspace { flex-direction: column; padding: 35px 25px; gap: 30px; }
    .dl-pas-footer { padding: 25px; }
    .dl-pas-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak osiągnąć maksymalną efektywność energetyczną? Infografika dla domów pasywnych",
    "description": "Pobierz inżynierski schemat projektowania ogrzewania podłogowego. Dowiedz się, jak połączyć rekuperację z pompą ciepła i zredukować zużycie energii o 90%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-pasywny",
    "name": "Parametry techniczne ogrzewania w standardzie pasywnym",
    "description": "Zestawienie zużycia energii, optymalnych temperatur zasilania pompy ciepła oraz krytycznych błędów projektowych w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na energię w domu pasywnym",
      "temperatura zasilania pompy ciepła w domu pasywnym",
      "współpraca podłogówki z rekuperacją",
      "błędy w projektowaniu ogrzewania podłogowego",
      "temperatura podłogi norma"
    ],
    "measurementTechnique": "Analiza porównawcza zużycia energii (kWh/m²) dla domów tradycyjnych i pasywnych oraz kalibracja krzywej grzewczej pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie energetyczne: Spadek z 80-120 kWh/m² do 5-15 kWh/m² rocznie.",
        "Parametry zasilania: Optymalny zakres 26-32°C dla maksymalnego COP pompy ciepła.",
        "Krytyczne błędy: Przewymiarowanie mocy pompy, słaba izolacja krawędziowa, brak bilansu cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#download-hub-pasywny",
    "name": "Centrum Pobierania: Standard Pasywny",
    "description": "Interaktywny moduł pozwalający na podgląd w wysokiej rozdzielczości oraz pobranie technicznej infografiki w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pas-dl-container" id="app-pas-dl">
    
    <div class="dl-pas-header">
        <div class="dl-pas-header-content">
            <div class="dl-pas-badge">Kompendium Inżynierskie</div>
            <h2>Ogrzewanie w Domu Pasywnym</h2>
            <p>Pobierz autorską infografikę i uniknij najdroższych błędów instalacyjnych. Poznaj parametry, które redukują koszty eksploatacji nawet o 90%.</p>
        </div>
        <div class="dl-pas-header-visual">
            <svg class="dl-pas-pdf-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#10b981" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M14 2V8H20" fill="#6ee7b7" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="6.5" y="17" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-pas-workspace">
        
        <div class="dl-pas-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp', '_blank')" role="button" aria-label="Powiększ infografikę">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp" alt="Infografika: Projektowanie ogrzewania podłogowego w domach pasywnych" class="dl-pas-img" loading="lazy">
            <div class="dl-pas-zoom-hint">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ grafikę
            </div>
        </div>

        <div class="dl-pas-info">
            <ul class="dl-pas-list">
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Analiza porównawcza zużycia energii: <strong>Dom Tradycyjny vs Pasywny</strong>.</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Zestawienie optymalnych temperatur (zasilanie: 26-32°C).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Czarna lista: <strong>Krytyczne błędy</strong> (taktowanie pompy, słaba izolacja).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Wpływ rekuperacji na obniżenie kosztów eksploatacji.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.pdf" class="dl-pas-btn" target="_blank" rel="noopener">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
        </div>

    </div>

    <div class="dl-pas-footer">
        <p class="dl-pas-seo-text">
            Inwestorzy planujący nowoczesną budowę często pytają, jak wyeliminować błędy u samego źródła. Nasza infografika pokazuje, jak prawidłowo zestawić <strong>niskie zapotrzebowanie na energię w domu pasywnym</strong> (zaledwie 5-15 kWh/m² rocznie) z precyzyjną pracą systemu grzewczego. Dowiesz się z niej, dlaczego <strong>temperatura zasilania pompy ciepła w domu pasywnym</strong> nie powinna przekraczać 32°C oraz jak niezbędna jest <strong>współpraca podłogówki z rekuperacją</strong>.
        </p>
        <p class="dl-pas-seo-text">
            Chcesz uniknąć ryzyka, że Twoja pompa ciepła będzie ulegać taktowaniu? Zadbaj o precyzję przed rozpoczęciem prac. <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zleć profesjonalny projekt OZC i ogrzewania podłogowego</a> naszym inżynierom.
        </p>
        <p class="dl-pas-copyright">
            © 2026 Projekt-Ogrzewania.pl | Udostępnianie materiałów edukacyjnych dozwolone z zachowaniem linku do źródła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Brak nagłówków H-tag w alercie) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-pas-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; margin-bottom: 10px; text-transform: uppercase;">Odmowa Dostępu</div>
                    <p style="color: #b91c1c; font-size: 14px; margin: 0; line-height: 1.5;">Moduł "Centrum Pobierania" oraz załączone pliki PDF są własnością intelektualną Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
