<?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 Projekty instalacji - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/projekty-instalacji/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/projekty-instalacji/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 19 Jul 2026 09:37:14 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Projekty instalacji - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/projekty-instalacji/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 10:15:36 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[hydraulika grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3923</guid>

					<description><![CDATA[<p>Czy można bezpiecznie wykonać podłogówkę bez projektu, kierując się jedynie doświadczeniem instalatora? W praktyce okazuje się, że projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach to nie teoretyczny dylemat, lecz realne ryzyko wysokich kosztów i problemów z komfortem cieplnym. Artykuł pokazuje konkretne konsekwencje złych decyzji: od przewymiarowanych materiałów, przez nierównomierne grzanie, aż po drastycznie wyższe rachunki w przypadku pomp ciepła. Jeśli budujesz dom i chcesz uniknąć kosztownych pomyłek, te informacje mogą oszczędzić Ci dziesiątki tysięcy złotych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Decyzja o wyborze ogrzewania podłogowego zapada zwykle na etapie stanu surowego lub tuż przed wylewaniem wylewki. Wtedy pojawia się kuszące pytanie:&nbsp;<em>czy naprawdę potrzebuję projektu?</em>&nbsp;Wiele osób, kierując się presją czasu lub chęcią oszczędności, decyduje się na układanie rur „z głowy” – według własnego uznania lub intuicji instalatora. Efektem jest często sytuacja, w której&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to nie tylko chwytliwy tytuł artykułu, ale realne pytanie o Twoje rachunki przez najbliższe 20–30 lat.</p>



<p class="wp-block-paragraph">W tym artykule rozpakuję tę różnicę na konkretnych przykładach, pokazując, że to, co na początku wygląda jak „oszczędność”, w praktyce okazuje się jednym z najdroższych kompromisów w budowie domu.</p>



<h2 class="wp-block-heading">Pułapka „Gęściej znaczy lepiej” – najdroższy mit instalacji podłogowej.</h2>



<p class="wp-block-paragraph">Najczęstszym błędem przy projektowaniu bez obliczeń jest <strong>przewymiarowanie</strong>. Instalatorzy, chcąc mieć „święty spokój” i uniknąć reklamacji typu „zimna podłoga”, często zagęszczają <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> – układają je co 10 cm we wszystkich pomieszczeniach. Zakładają, że nadmiar ciepła nie zaszkodzi.</p>



<p class="wp-block-paragraph">Nic bardziej mylnego.</p>



<h3 class="wp-block-heading">Dlaczego gęstszy rozstaw nie znaczy lepszy?</h3>



<p class="wp-block-paragraph">Rozstaw rur to nie tylko kwestia ilości ciepła, ale przede wszystkim dopasowania do rzeczywistego zapotrzebowania pomieszczenia. W projekcie „z głowy” kupujesz&nbsp;<strong>o 30–50% więcej rury</strong>, niż faktycznie potrzebujesz. Płacisz za materiał, więcej obejm, większą liczbę obwodów na rozdzielaczu i robociznę, która jest po prostu zbędna.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom 150 m². Instalator układa rury co 10 cm wszędzie, zamiast optymalnie: co 10 cm w łazience, co 15 cm w salonie i co 20 cm w sypialni. Różnica w zużyciu rury to nawet&nbsp;<strong>300–400 metrów</strong>. Przy cenie 5 zł/m to&nbsp;<strong>1 500–2 000 zł</strong>&nbsp;wyrzucone w błoto już na etapie zakupów. Do tego dochodzą dodatkowe obejmy, płyty zbrojeniowe, a często też większa liczba obwodów, co wymaga droższego rozdzielacza.</p>



<h3 class="wp-block-heading">Skutki przewymiarowania wykraczają poza koszty materiałów.</h3>



<h4 class="wp-block-heading">Gęstszy rozstaw to nie tylko wyższe koszty inwestycyjne. To także problemy eksploatacyjne:</h4>



<ul class="wp-block-list">
<li><strong>Przegrzewanie pomieszczeń</strong>&nbsp;– przy jednakowo gęstym rozstawie w pomieszczeniach o małym zapotrzebowaniu (np. wewnętrzna sypialnia) podłoga oddaje za dużo ciepła.</li>



<li><strong>Praca skokowa źródła ciepła</strong>&nbsp;– kocioł lub pompa ciepła włączają się i wyłączają krótkimi cyklami, tracąc na efektywności.</li>



<li><strong>Wyższa temperatura zasilania</strong>&nbsp;– aby zrekompensować brak równowagi między pomieszczeniami, często podnosi się temperaturę całego systemu, co bije po kieszeni.</li>
</ul>



<p class="wp-block-paragraph">W projekcie z obliczeniami projektant wylicza <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" type="link" id="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC (Obliczeniowe Zapotrzebowanie na Ciepło</a>)</strong> dla każdego pomieszczenia osobno. Na tej podstawie dobiera rozstaw: w sypialni rury mogą być co 20 cm, w salonie co 15 cm, a w łazience co 10 cm. Każde pomieszczenie dostaje tyle mocy, ile faktycznie potrzebuje – ani grama więcej.</p>



<p class="wp-block-paragraph"><strong>Strata przy podejściu „gęściej znaczy lepiej” to nawet kilka tysięcy złotych wyrzucone w błoto już na etapie zakupów, a potem dodatkowe tysiące w rachunkach przez lata.</strong></p>



<h2 class="wp-block-heading">Hydraulika – dlaczego jeden pokój jest zimny, a drugi przegrzany?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe to nie tylko rurki ułożone w podłodze. To&nbsp;<strong>system naczyń połączonych</strong>&nbsp;– instalacja hydrauliczna o określonych oporach przepływu. Bez obliczeń te opory pozostają nieznane, a konsekwencje odczuwasz codziennie.</p>



<h3 class="wp-block-heading">Problem zbyt długich pętli.</h3>



<p class="wp-block-paragraph">W instalacjach „z głowy” często zdarza się, że pętle mają skrajnie różne długości. Jedna pętla (np. w łazience) ma 50 m, a druga (w dużym salonie) – 130 m.</p>



<p class="wp-block-paragraph"><strong>Dlaczego to problem?</strong> Dłuższa pętla stawia znacznie większy opór hydrauliczny. <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa</a>, która jest sercem systemu, ma ograniczoną wydajność. Gdy przekroczysz długość krytyczną (dla rury 16×2 mm to zazwyczaj <strong>100–120 m</strong>), pompa nie jest w stanie przepchnąć przez nią odpowiedniej ilości wody.</p>



<p class="wp-block-paragraph"><em>Efekt w praktyce:</em>&nbsp;Salon (krótka pętla) grzeje, a w sypialni na końcu korytarza (długa pętla) jest lodowato. Instalator kręci przepływomierzami, ale to walka z fizyką – przy zbyt dużych różnicach długości nie da się tego wyrównać bez zmiany projektu.</p>



<h3 class="wp-block-heading">Rozwiązanie projektowe – równoważenie hydrauliczne.</h3>



<p class="wp-block-paragraph">Profesjonalny projekt precyzyjnie określa <strong>długość każdej pętli</strong> tak, aby różnice między nimi nie przekraczały 10–15%. Dzięki temu wszystkie obwody mają zbliżone opory przepływu. Dodatkowo projekt zawiera <strong>nastawy na rozdzielaczu</strong> – wstępne ustawienia <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">przepływomierzy</a>, które wyrównują nawet niewielkie różnice.</p>



<p class="wp-block-paragraph"><em>Rezultat:</em>&nbsp;Ciepło rozchodzi się równomiernie po całym domu. Nie ma „zimnych plam”, nie ma przegrzewania. Pompa obiegowa pracuje na optymalnych obrotach (często 1 bieg zamiast 3), co przekłada się na niższe zużycie prądu i dłuższą żywotność urządzenia.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a współpraca z pompą ciepła – klucz do niskich rachunków.</h2>



<p class="wp-block-paragraph">Jeśli planujesz <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompę ciepła</a> (powietrzną lub gruntową), <strong><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 ogrzewania podłogowego</a> przestaje być opcją  staje się krytycznym wymogiem</strong>. Pompy ciepła osiągają najwyższą efektywność (współczynnik COP) przy jak najniższej temperaturze zasilania, optymalnie w zakresie <strong>30–35°C</strong>.</p>



<h3 class="wp-block-heading">Błąd „na oko” a temperatura zasilania.</h3>



<p class="wp-block-paragraph">Gdy instalacja podłogowa jest wykonana bez projektu, często zdarza się, że:</p>



<ul class="wp-block-list">
<li>rozstaw rur jest zbyt rzadki w pomieszczeniach o dużych stratach ciepła,</li>



<li>pętle są niezrównoważone hydraulicznie.</li>
</ul>



<p class="wp-block-paragraph">Aby to skompensować i dogrzać zimne pomieszczenia, instalator (lub automatyk) podnosi&nbsp;<strong>temperaturę zasilania</strong>&nbsp;– zamiast 35°C ustawia 45°C, a czasem nawet 50°C.</p>



<p class="wp-block-paragraph"><strong>Konsekwencja:</strong>&nbsp;Pompa ciepła traci swoją największą zaletę – niskie koszty eksploatacji.</p>



<h3 class="wp-block-heading">Wyliczenie – każdy stopień ma swoją cenę.</h3>



<p class="wp-block-paragraph">Dla pompy ciepła powietrznej&nbsp;<strong>każdy stopień Celsjusza podwyższenia temperatury zasilania to spadek COP o około 2–3%</strong>. Podniesienie z 35°C na 45°C oznacza więc spadek efektywności o&nbsp;<strong>20–30%</strong>.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom ogrzewany pompą ciepła, roczny koszt energii elektrycznej na ogrzewanie wynosi&nbsp;<strong>4 500 zł</strong>&nbsp;przy optymalnej pracy (35°C). Po podniesieniu temperatury zasilania do 45°C, koszt wzrasta o ok.&nbsp;<strong>1 000–1 300 zł rocznie</strong>.</p>



<p class="wp-block-paragraph">W perspektywie 15 lat (średni okres między wymianami źródła ciepła) to&nbsp;<strong>15 000–20 000 zł dodatkowych kosztów</strong>&nbsp;– tylko z powodu źle zaprojektowanej podłogówki. A przecież pompa ciepła ma służyć 20–25 lat.</p>



<h3 class="wp-block-heading">Gwarancja producenta a projekt.</h3>



<p class="wp-block-paragraph">Coraz więcej producentów <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">pomp ciepła</a> (np. Daikin, Panasonic, Mitsubishi Electric, Viessmann, Nibe, Bosch, Vaillant, LG, Samsung, Stiebel Eltron, Hitachi, Toshiba, Fujitsu, Alpha Innotec, De Dietrich, Gree, Midea, Thermia, Haier, Galmet.) <strong>wymaga przedstawienia projektu ogrzewania podłogowego wraz z obliczeniami OZC</strong> do udzielenia gwarancji. To nie jest kaprys  producenci wiedzą, że źle zaprojektowany system dolnego źródła (podłogówka) jest główną przyczyną awarii, krótkich cykli pracy i spadku efektywności. Brak projektu może więc oznaczać <strong>utratę gwarancji na urządzenie warte 20–30 tys. zł</strong>.</p>



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

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

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

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

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

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 25%;
}

.compare-table th.col-noguide {
    color: var(--primary);
    width: 37%;
}

.compare-table th.col-project {
    color: var(--accent);
    width: 38%;
    border-bottom-color: var(--accent);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.compare-table tr:hover td {
    background: #f8fafc;
}

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-project {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.card-project h4 {
    color: var(--accent);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Projekt „z głowy” / „na oko”:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Projekt z obliczeniami:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--accent);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app">
    <div class="compare-header">
        <h2>Porównanie – co zyskujesz, a co ryzykujesz?</h2>
        <p>Poniższa tabela zestawia najważniejsze różnice między instalacją „z głowy” a systemem zaprojektowanym przez specjalistę. Dane dotyczą typowego domu jednorodzinnego o powierzchni 150 m². <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Cecha</th>
                    <th class="col-noguide">Projekt „z głowy” / „na oko”</th>
                    <th class="col-project">Projekt z obliczeniami</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">📦</span> Ilość materiału</td>
                    <td>Zazwyczaj zawyżona o 30–50% – instalator dodaje „na zapas”</td>
                    <td><strong>Optymalna</strong> – dokładnie tyle, ile wynika z OZC i rozstawu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Komfort termiczny</td>
                    <td>Ryzyko „zimnych plam” w dłuższych pętlach lub przegrzewania przy zbyt gęstym rozstawie</td>
                    <td><strong>Równomierna temperatura</strong> w każdym pomieszczeniu, brak lokalnych dyskomfortów</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Praca pompy obiegowej</td>
                    <td>Często na 3 biegu (60–80 W), aby przeforsować długie pętle</td>
                    <td><span class="val-pill accent">1 bieg (20–30 W)</span>, cicha praca, mniejsze zużycie prądu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Koszt eksploatacji (kocioł)</td>
                    <td>Wyższy o 10–15% przez zbyt wysoką temperaturę zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – system pracuje w optymalnym zakresie 35–40°C</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Koszt eksploatacji (pompa ciepła)</td>
                    <td>Wyższy o 20–30% przez spadek COP przy podniesionej temperaturze zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – pompa pracuje z najwyższą możliwą efektywnością</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📄</span> Dokumentacja powykonawcza</td>
                    <td>Brak – nie wiesz, gdzie biegną rury, co utrudnia wiercenie i ewentualne naprawy</td>
                    <td><strong>Pełna mapa rur</strong>, zestawienie długości pętli, nastawy rozdzielacza</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛡️</span> Gwarancja na pompę ciepła</td>
                    <td>Często niemożliwa – producenci wymagają projektu</td>
                    <td><span class="val-pill accent">Tak</span> – projekt spełnia wymogi formalne</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🎯</span> Gwarancja sukcesu</td>
                    <td>„Jakoś to będzie” – ryzyko błędów wykrytych dopiero po wylaniu wylewki</td>
                    <td><strong>Gwarancja inżynierska</strong> – wszystko jest przewidziane i policzone</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card">
            <h4>Montaż &#8222;na oko&#8221;</h4>
            <p>Brak pewności co do poprawności działania instalacji. Płacisz więcej za przewymiarowany materiał na etapie budowy i ponosisz stale wyższe koszty eksploatacyjne (prąd, spadek COP). Ryzykujesz dyskomfort cieplny i problemy z gwarancją u producentów pomp ciepła.</p>
        </div>
        
        <div class="summary-card card-project">
            <h4>System z obliczeniami OZC</h4>
            <p>Gwarancja optymalnego działania ogrzewania. Oszczędzasz na precyzyjnie wyliczonych materiałach oraz cieszysz się minimalnymi rachunkami za ogrzewanie. Otrzymujesz pełną dokumentację, która ułatwia wykończenie domu i jest podstawą do utrzymania gwarancji producenta.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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

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

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

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

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

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 40%;
}

.compare-table th.col-annual {
    color: var(--primary);
    width: 30%;
}

.compare-table th.col-total {
    color: var(--danger);
    width: 30%;
    border-bottom-color: var(--danger);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.compare-table tr:hover td {
    background: #f8fafc;
}

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.val-pill.danger {
    background: #fee2e2;
    color: var(--danger);
}

.val-pill.success {
    background: #dcfce7;
    color: var(--success);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.card-danger h4 {
    color: var(--danger);
}

.card-success {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.card-success h4 {
    color: var(--success);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Koszt jednorazowy / roczny:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Skumulowany koszt (15 lat):";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--danger);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app-costs">
    <div class="compare-header">
        <h2>Ile realnie możesz stracić? Wyliczenia w perspektywie czasu</h2>
        <p>Błędy w instalacji podłogowej należą do najtrudniejszych i najdroższych do naprawienia. Gdy jastrych (wylewka) zastygnie, każda zmiana wiąże się z kuciem podłóg, wynoszeniem gruzu i układaniem wszystkiego od nowa. To koszt, który w przypadku domu 150 m² potrafi sięgnąć <strong>15 000–25 000 zł</strong>. Policzmy jednak straty w perspektywie 15 lat, nawet jeśli nie dojdzie do fizycznej przebudowy. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wyliczenia przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Rodzaj straty</th>
                    <th class="col-annual">Koszt jednorazowy / roczny</th>
                    <th class="col-total">Skumulowany koszt (15 lat)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🛒</span> Nadmiar materiału (rura, obejmy, rozdzielacz)</td>
                    <td>2 000 – 3 500 zł</td>
                    <td><span class="val-pill danger">2 000 – 3 500 zł</span> (jednorazowo)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Wyższe rachunki dla pompy ciepła (spadek COP)</td>
                    <td>1 000 – 1 500 zł/rok</td>
                    <td><span class="val-pill danger">15 000 – 22 500 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Wyższe rachunki dla kotła (niższa sprawność)</td>
                    <td>800 – 1 200 zł/rok</td>
                    <td><span class="val-pill danger">12 000 – 18 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Dodatkowy pobór mocy pompy obiegowej</td>
                    <td>100 – 150 zł/rok</td>
                    <td><span class="val-pill danger">1 500 – 2 250 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Brak podziału na strefy – przegrzewanie</td>
                    <td>500 – 1 000 zł/rok</td>
                    <td><span class="val-pill danger">7 500 – 15 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛠️</span> Potencjalny remont wylewki (wykrycie błędu)</td>
                    <td>15 000 – 25 000 zł</td>
                    <td><span class="val-pill danger">15 000 – 25 000 zł</span> (jednorazowo)</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card card-danger">
            <h4>📉 Koszt zaniechania</h4>
            <p>Łączny potencjalny koszt błędów (bez remontu) dla pompy ciepła to <strong>ok. 26 000 – 43 000 zł</strong> w perspektywie 15 lat. Jeśli wada wymusi kucie i wymianę instalacji (z remontem), koszty rosną do drastycznych <strong>40 000 – 65 000 zł</strong>.</p>
        </div>
        
        <div class="summary-card card-success">
            <h4>💡 Inwestycja w pewność</h4>
            <p>Koszt profesjonalnego projektu ogrzewania podłogowego z obliczeniami OZC to zaledwie <strong>1 500 – 2 500 zł</strong>. Projekt ten nie zwraca się w latach – <strong style="color: var(--success);">zwraca się w momencie zakupu materiałów</strong>, zapobiegając ich przewymiarowaniu.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x3e4a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70\x2d\x63\x6f\x73\x74\x73','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x3e4a[12]](_0x3e4a[11],function(){var _0x1a2b=window[_0x3e4a[1]][_0x3e4a[0]];var _0x5c6d=[_0x3e4a[2],_0x3e4a[3],_0x3e4a[4],_0x3e4a[5],_0x3e4a[6]];if(!_0x5c6d[_0x3e4a[7]](_0x1a2b)){document[_0x3e4a[10]](_0x3e4a[8])[_0x3e4a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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

/* ZAJAWKA SEO I LINK */
.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; }

/* KONTENER GŁÓWNY */
.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; }

/* LEWA STRONA - KONFIGURACJA */
.config-side { padding: 40px; background: #ffffff; }
.section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: #94a3b8; letter-spacing: 1.2px; margin-bottom: 20px; display: block; }

.type-selector { display: grid; grid-template-columns: repeat(2, 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: 12px; 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; }

/* PRAWA STRONA - WYNIKI */
.result-side { padding: 40px; background: var(--bg-light); border-left: 1px solid #f1f5f9; display: flex; flex-direction: column; justify-content: center; }
.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(--danger); transition: 0.3s; }
.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--danger); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg { margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: block; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: center; }

.tech-grid { background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 16px; }
.tech-item { display: flex; justify-content: space-between; padding-bottom: 16px; 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; line-height: 1.4; padding-right: 15px; }
.tech-item strong { font-size: 16px; text-align: right; white-space: nowrap; }

/* STOPKA */
.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(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

/* WERSJA TABLET / MAŁY LAPTOP */
@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%; }
}

/* POPRAWKI DLA WĄSKICH SMARTFONÓW (poniżej 600px) */
@media (max-width: 600px) {
    .config-side, .result-side { 
        padding: 25px 20px; 
    }
    .type-selector { 
        grid-template-columns: 1fr; 
        gap: 10px;
    }
    .score-num { 
        font-size: 36px; 
    }
    .tech-item { 
        flex-direction: column; 
        align-items: flex-start; 
        gap: 6px; 
    }
    .tech-item strong { 
        font-size: 18px; 
        text-align: left; 
    }
    .calc-intro h2 {
        font-size: 24px; 
    }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator Ukrytych Kosztów Podłogówki</h2>
    <p>Sprawdź, czy Twoja podłoga będzie efektywnie oddawać ciepło! Autorskie narzędzie stworzone przez inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz, w jaką pułapkę wpada Twój instalator robiący ogrzewanie &#8222;na oko&#8221;, a algorytm wyliczy straty.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Błąd instalatora (&#8222;na oko&#8221;)</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-dense">WSZĘDZIE GĘSTO<span style="font-size:10px; font-weight:400">Strata materiału + Taktowanie</span></div>
                <div class="type-btn" id="btn-sparse">WSZĘDZIE RZADKO<span style="font-size:10px; font-weight:400">Drastyczny spadek COP</span></div>
            </div>

            <span class="section-title">2. Główne źródło ciepła</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-heatpump">POMPA CIEPŁA<span style="font-size:10px; font-weight:400">Wrażliwa na błędy (COP)</span></div>
                <div class="type-btn" id="btn-gas">KOCIOŁ GAZOWY<span style="font-size:10px; font-weight:400">Kocioł kondensacyjny</span></div>
            </div>

            <span class="section-title">3. Parametry domu</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia ogrzewana</label><span class="val-badge"><span id="v-area">150</span> m²</span></div>
                <input type="range" id="area" min="50" max="300" step="5" value="150">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Cena rury (za 1 metr)</label><span class="val-badge"><span id="v-price">5.00</span> zł</span></div>
                <input type="range" id="price" min="2.0" max="10.0" step="0.5" value="5.0">
            </div>

            <div class="input-wrap" style="margin-bottom: 0;">
                <div class="input-label-row"><label>Czas eksploatacji</label><span class="val-badge"><span id="v-years">15</span> lat</span></div>
                <input type="range" id="years" min="5" max="30" step="1" value="15">
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana strata finansowa (<span id="label-years-main">15</span> lat)</span>
                <span class="score-num"><span id="resTotalLoss">&#8212;</span> zł</span>
                <div id="risk-msg">To koszty, których unikniesz inwestując w projekt!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span id="label-pipe-error">Zbędny materiał:</span><strong id="resExtraPipe">&#8212;</strong></div>
                <div class="tech-item"><span id="label-mini-mat">Straty na zakupie materiałów:</span><strong id="resMaterialLoss" style="color:#fbbf24">&#8212;</strong></div>
                <div class="tech-item"><span id="label-op-error">Wzrost kosztów (rocznie):</span><strong id="resAnnualLoss">&#8212;</strong></div>
                <div class="tech-item"><span>Straty w rachunkach przez <span id="label-years-mini">15</span> lat:</span><strong id="resOpLoss" style="color:#f87171">&#8212;</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Projekt się po prostu opłaca</h3>
            <p style="margin:0; font-size:14px; color:#475569" id="footer-desc">Niezależnie od tego, czy instalator &#8222;przedobrzy&#8221; z ilością rury, czy spróbuje &#8222;przyoszczędzić&#8221; – finalnie to Ty płacisz za to w rachunkach przez lata. Zleć nam obliczenia i śpij spokojnie.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
!function(){document.addEventListener("DOMContentLoaded",function(){var e=window.location.hostname,t=["\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74","\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31",""];if(-1===t.indexOf(e)){var n=document.getElementById("screed-calc-app");return n&&(n.innerHTML=decodeURIComponent("%3Cdiv%20style%3D%22padding%3A%2060px%2020px%3B%20text-align%3A%20center%3B%20background%3A%20%23fee2e2%3B%20color%3A%20%23dc2626%3B%20border-radius%3A%2024px%3B%20font-family%3A%20sans-serif%3B%22%3E%3Cspan%20style%3D%22font-size%3A%2048px%3B%20display%3A%20block%3B%20margin-bottom%3A%2015px%3B%22%3E%F0%9F%94%92%3C%2Fspan%3E%3Ch3%20style%3D%22margin-top%3A0%3B%20font-size%3A%2024px%3B%20color%3A%20%23dc2626%3B%22%3ENarz%C4%99dzie%20chronione%3C%2Fh3%3E%3Cp%20style%3D%22font-size%3A%2016px%3B%20margin-bottom%3A%2025px%3B%22%3ETen%20kalkulator%20jest%20w%C5%82asno%C5%9Bci%C4%85%20serwisu%20%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22color%3A%20%23dc2626%3B%20font-weight%3A%20bold%3B%20text-decoration%3A%20underline%3B%22%3EProjekt-Ogrzewania.pl%3C%2Fa%3E%3C%2Fp%3E%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22display%3A%20inline-block%3B%20padding%3A%2014px%2028px%3B%20background%3A%20%23dc2626%3B%20color%3A%20%23ffffff%3B%20text-decoration%3A%20none%3B%20border-radius%3A%2012px%3B%20font-weight%3A%20800%3B%22%3EPRZEJD%C5%B9%20DO%20ORYGINA%C5%81U%3C%2Fa%3E%3C%2Fdiv%3E")),void 0}var a="heatpump",o="dense";function i(e){return e.toLocaleString("pl-PL")+" z\u0142"}function c(){var e=parseFloat(document.getElementById("area").value),t=parseFloat(document.getElementById("price").value),n=parseInt(document.getElementById("years").value);document.getElementById("v-area").innerText=e,document.getElementById("v-price").innerText=t.toFixed(2),document.getElementById("v-years").innerText=n,document.getElementById("label-years-main").innerText=n,document.getElementById("label-years-mini").innerText=n;var c=0,r=0,d=0,l=30*e,s=40*e;"dense"===o?(document.getElementById("label-pipe-error").innerText="Zb\u0119dny materia\u0142 (rura u\u0142o\u017cona zbyt g\u0119sto):",document.getElementById("label-mini-mat").innerText="Straty na zakupie materia\u0142\u00f3w:",c=2.5*e,r=c*t+1.5*e+(e>100?400:200),"heatpump"===a?(document.getElementById("label-op-error").innerText="Spadek efektywno\u015bci (taktowanie pompy/obieg):",d=.12*l+.8*e):(document.getElementById("label-op-error").innerText="Wy\u017csze zu\u017cycie pr\u0105du (pompa obiegowa 3. bieg):",d=.8*e),document.getElementById("risk-msg").innerText="Wyrzuci\u0142e\u015b pieni\u0105dze na materia\u0142, a system dzia\u0142a ma\u0142o stabilnie!"):(document.getElementById("label-pipe-error").innerText="Brakuj\u0105cy materia\u0142 (ryzyko niedogrzania):",document.getElementById("label-mini-mat").innerText="Zaoszcz\u0119dzono na materiale:",c=0,r=0,"heatpump"===a?(document.getElementById("label-op-error").innerText="Wzrost rachunk\u00f3w (wymagane 40-45\xb0C na zasilaniu):",d=.25*l):(document.getElementById("label-op-error").innerText="Spadek kondensacji (wymagane wy\u017csze temp.):",d=.12*s),document.getElementById("risk-msg").innerText="Zaoszcz\u0119dzi\u0142e\u015b na rurkach, stracisz krocie na rachunkach!");var u=d*n,m=r+u;document.getElementById("resExtraPipe").innerText=("dense"===o?"+":"0 ")+c.toFixed(0)+" m",document.getElementById("resAnnualLoss").innerText=i(Math.round(d))+" / rok","sparse"===o?(document.getElementById("resMaterialLoss").innerText="0 z\u0142",document.getElementById("resMaterialLoss").style.color="#94a3b8"):(document.getElementById("resMaterialLoss").innerText=i(Math.round(r)),document.getElementById("resMaterialLoss").style.color="#fbbf24"),document.getElementById("resOpLoss").innerText=i(Math.round(u)),document.getElementById("resTotalLoss").innerText=Math.round(m).toLocaleString("pl-PL")}var r=document.getElementById("btn-dense"),d=document.getElementById("btn-sparse"),l=document.getElementById("btn-heatpump"),s=document.getElementById("btn-gas");r&&d&&(r.addEventListener("click",function(){o="dense",d.classList.remove("active"),r.classList.add("active"),c()}),d.addEventListener("click",function(){o="sparse",r.classList.remove("active"),d.classList.add("active"),c()})),l&&s&&(l.addEventListener("click",function(){a="heatpump",s.classList.remove("active"),l.classList.add("active"),c()}),s.addEventListener("click",function(){a="gas",l.classList.remove("active"),s.classList.add("active"),c()})),["area","price","years"].forEach(function(e){var t=document.getElementById(e);t&&t.addEventListener("input",c)}),c()})}();
</script>



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

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

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

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.answers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-app-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz."
        }
      }, {
        "@type": "Question",
        "name": "Jaka będzie maksymalna długość jednej pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna."
        }
      }, {
        "@type": "Question",
        "name": "Jak zamierza Pan wykonać dylatacje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)."
        }
      }, {
        "@type": "Question",
        "name": "W jaki sposób zrównoważy Pan instalację hydraulicznie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo."
        }
      }, {
        "@type": "Question",
        "name": "Czy przeprowadzimy próbę szczelności na mokro czy na sucho?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła."
        }
      }]
    }
    </script>
    <div class="qa-header">
        <h2>🏗️ 5 pytań, które powinien zadać inwestor.</h2>
        <p>Aby uniknąć pułapek opisanych wcześniej, musisz zweryfikować, z kim masz do czynienia. Oto lista pytań, które pomogą ocenić, czy instalator podchodzi do tematu profesjonalnie. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Pytania rekrutacyjne przygotowane przez inżynierów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Panie, u każdego daję co 10 cm i jest git, nikt nie narzekał”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Jaka będzie maksymalna długość jednej pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Ile wyjdzie, tyle wyjdzie, najwyżej mocniejszą pompę się wstawi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jak zamierza Pan wykonać dylatacje?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Wylewka sama zapracuje, nie ma co dzielić podłogi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „W jaki sposób zrównoważy Pan instalację hydraulicznie?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Samo się wyrówna po odpaleniu pompy, najwyżej się pokręci na rozdzielaczu”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Czy przeprowadzimy próbę szczelności na mokro czy na sucho?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Puszczę wodę, jak skończę, i zobaczymy czy kapie”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła”.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li>„OZC? A po co to komu? Ja na oko widzę, że tu trzeba gęsto kłaść.”</li>
            <li>„Projektant tylko bierze kasę, a ja to w rękach miałem setki razy.”</li>
            <li>„Pompę ciepła ustawimy na 45 stopni i na pewno będzie ciepło.” (Uwaga: to zabójstwo dla Twojego portfela!)</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x61\x70\x70\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<h2 class="wp-block-heading">Podsumowanie – projekt to nie koszt, to inwestycja.</h2>



<p class="wp-block-paragraph">Budowa domu to jeden z największych wydatków w życiu. Na etapie wykończenia, gdy kasa się kończy, a termin goni, łatwo ulec pokusie uproszczeń. Jednak&nbsp;<strong>ogrzewanie podłogowe to instalacja, która będzie z Tobą na co najmniej 30 lat</strong>. Błędy popełnione na etapie układania rur będą generować straty każdego miesiąca, przez każdą zimę, przez cały ten okres.</p>



<p class="wp-block-paragraph"><strong>Projekt ogrzewania podłogowego z obliczeniami to nie koszt – to inwestycja, która zwraca się zazwyczaj już w momencie zakupu materiałów u hurtownika</strong>&nbsp;(dzięki optymalizacji ilości rury) i w&nbsp;<strong>pierwszym sezonie grzewczym</strong>&nbsp;(dzięki niższym rachunkom). To także jedyny sposób, aby:</p>



<ul class="wp-block-list">
<li>uniknąć kosztownego kucia wylewki,</li>



<li>zapewnić równomierny komfort cieplny w całym domu,</li>



<li>umożliwić sprawne sterowanie strefowe,</li>



<li>spełnić wymogi gwarancyjne producentów pomp ciepła.</li>
</ul>



<p class="wp-block-paragraph">Odpowiedź na pytanie postawione w tytule jest więc jednoznaczna:&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to różnica rzędu&nbsp;<strong>kilkudziesięciu tysięcy złotych</strong>&nbsp;w perspektywie 15–20 lat, nie wspominając o codziennym komforcie, który przy systemie intuicyjnie ułożonym jest zwykle daleki od ideału.</p>



<p class="wp-block-paragraph">Nie daj się przekonać, że „wystarczy na oko”. Ogrzewanie podłogowe to system inżynieryjny – wymaga obliczeń, wiedzy i precyzji. Profesjonalny projekt to jedyny sposób, aby spać spokojnie, nie martwiąc się o zimne stopy ani o rachunki, które wymykają się spod kontroli.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Średnice rur w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 10:52:01 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[długość pętli podłogówki]]></category>
		<category><![CDATA[dobór rur ogrzewanie podłogowe]]></category>
		<category><![CDATA[hydraulika ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projektowanie podłogówki]]></category>
		<category><![CDATA[przepływ w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[rura 16x2 ogrzewanie podłogowe]]></category>
		<category><![CDATA[rura 20x2 ogrzewanie podłogowe]]></category>
		<category><![CDATA[spadki ciśnienia ogrzewanie podłogowe]]></category>
		<category><![CDATA[średnice rur ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3505</guid>

					<description><![CDATA[<p>Dobór elementów instalacji grzewczej to nie przypadek, lecz świadoma decyzja techniczna. Średnice rur w ogrzewaniu podłogowym mają bezpośredni wpływ na przepływ wody, opory hydrauliczne oraz efektywność całego systemu. Zbyt mała średnica może powodować nadmierne spadki ciśnienia i niedogrzanie pomieszczeń, natomiast zbyt duża utrudnia regulację i zwiększa koszty inwestycji. W artykule pokazujemy konkretne obliczenia, przykłady oraz praktyczne zasady projektowe, które pozwalają dobrać optymalne parametry instalacji zarówno dla kotłów gazowych, jak i pomp ciepła.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">Średnice rur w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0369a1;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-bg: #f8fafc;
    --rk-intro-card: #ffffff;
    --rk-intro-border: #cbd5e1;
    --rk-intro-text: #334155;
    --rk-intro-gold: #eab308;
    --rk-intro-gold-bg: #fefce8;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-card);
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(3, 105, 161, 0.15);
    border: 1px solid var(--rk-intro-blue);
    overflow: hidden;
}

/* Główny obszar nagłówka i tekstu */
.rk-intro-main {
    padding: 40px 50px;
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-intro-bg) 100%);
}

.rk-intro-main h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-intro-hook {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-blue);
    margin: 0 0 20px 0;
    line-height: 1.5;
    border-left: 4px solid var(--rk-intro-accent);
    padding-left: 20px;
}

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

.rk-intro-text a {
    color: var(--rk-intro-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(14, 165, 233, 0.2);
}

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

/* Moduł "Szybka Odpowiedź" (Featured Snippet Box) */
.rk-intro-quick-answer {
    background: var(--rk-intro-gold-bg);
    border: 1px solid rgba(234, 179, 8, 0.4);
    border-radius: 12px;
    padding: 25px;
    margin: 30px 0;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

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

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

.rk-qa-content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-intro-dark);
}

/* Przewodnik po artykule (Tabbed) */
.rk-intro-guide {
    background: var(--rk-intro-dark);
    padding: 35px 50px;
    color: #ffffff;
}

.rk-guide-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 20px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-guide-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-guide-tab-btn {
    flex: 1;
    background: #1e293b;
    border: 1px solid #334155;
    padding: 14px;
    border-radius: 8px;
    color: #cbd5e1;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
}

.rk-guide-tab-btn.active {
    background: var(--rk-intro-blue);
    border-color: var(--rk-intro-accent);
    color: #ffffff;
}

.rk-guide-panel {
    display: none;
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 12px;
    padding: 25px;
}

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

.rk-guide-panel-content {
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-guide-panel-icon {
    width: 60px;
    height: 60px;
    background: rgba(255,255,255,0.05);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-accent);
    flex-shrink: 0;
}

.rk-guide-panel-text h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    color: #ffffff;
}

.rk-guide-panel-text p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #94a3b8;
}

@media (max-width: 768px) {
    .rk-intro-main, .rk-intro-guide { padding: 30px 20px; }
    .rk-intro-main h2 { font-size: 26px; }
    .rk-intro-quick-answer { flex-direction: column; align-items: center; text-align: center; }
    .rk-guide-tabs { flex-direction: column; }
    .rk-guide-panel-content { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Średnice rur w ogrzewaniu podłogowym – inżynierski przewodnik",
    "description": "Zrozum opory hydrauliczne i przepływy. Zobacz dlaczego wybór rury 16x2.0 lub 20x2.0 mm decyduje o kosztach prądu dla pompy ciepła i żywotności 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-normy-wstep",
    "name": "Wytyczne normy PN-EN 1264 dla doboru przekrojów",
    "description": "Zestawienie podstawowych parametrów projektowych określających zrównoważenie hydrauliczne i akustyczne (szumy) w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "średnice rur w ogrzewaniu podłogowym",
      "norma PN-EN 1264 podłogówka",
      "opory hydrauliczne instalacji",
      "przepływ wody w pompie ciepła",
      "jaka średnica rury do podłogówki"
    ],
    "measurementTechnique": "Przegląd inżynierski wytycznych definiujących granicę prędkości wody i oporów dla zachowania efektywności energetycznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Standard budowlany: rura 16x2.0 mm (pokoje standardowe).",
        "Standard dla OZE: rura 20x2.0 mm (duże złady wody, niskie opory)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-nawigator",
    "name": "Inżynierski Nawigator Artykułu",
    "description": "Panel interaktywny umożliwiający szybki przegląd zawartości artykułu, od tablic spadków ciśnień po dynamiczne symulatory pompy obiegowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    <div class="rk-intro-main">
        <h2>Średnice rur w ogrzewaniu podłogowym – inżynierski przewodnik</h2>
        
        <p class="rk-intro-hook">
            Wydajesz kilkadziesiąt tysięcy złotych na najwyższej klasy pompę ciepła, a instalator dławi jej potencjał, rozkładając najcieńszą, 16-milimetrową rurkę w potężnym salonie? To błąd, który będzie Cię kosztował wyższe rachunki za prąd każdego dnia zimy.
        </p>

        <p class="rk-intro-text">
            Średnice rur w ogrzewaniu podłogowym to kluczowy parametr decydujący o oporach hydraulicznych instalacji, wymaganym przepływie wody oraz efektywności energetycznej całego systemu grzewczego. Zgodnie z wytycznymi <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy PN-EN 1264</a>, właściwy dobór przekroju – najczęściej <strong>16&#215;2,0 mm</strong>, <strong>17&#215;2,0 mm</strong> lub <strong>20&#215;2,0 mm</strong> – jest absolutnie niezbędny do zapewnienia równomiernego rozkładu temperatury oraz uniknięcia hałasu wywołanego zbyt wysoką prędkością przepływu wody.
        </p>

        <div class="rk-intro-quick-answer">
            <div class="rk-qa-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="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>
            <div class="rk-qa-content">
                <h3>Szybka Odpowiedź Eksperta</h3>
                <p>W standardowych pomieszczeniach i sypialniach najczęściej stosuje się rurę 16 mm. Jednak w instalacjach napędzanych pompą ciepła, wymagających dużych przepływów czynnika, oraz w rozległych otwartych salonach, bezpiecznym inżynierskim wymogiem jest <strong>zastosowanie rury 20 mm</strong>. Chroni to pompę obiegową przed dławieniem (opór pętli musi być niższy niż 20 kPa).</p>
            </div>
        </div>

        <p class="rk-intro-text">
            Jako główny projektant portalu Projekt-Ogrzewania.pl, przeprowadzę Cię przez techniczne aspekty doboru rur, które zdeterminują żywotność Twojego systemu. Zobaczysz &#8222;czarno na białym&#8221;, dlaczego fizyki nie da się oszukać.
        </p>
    </div>

    <div class="rk-intro-guide">
        <div class="rk-guide-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            Co znajdziesz w tym artykule?
        </div>

        <div class="rk-guide-tabs" id="rkGuideTabs">
            <button class="rk-guide-tab-btn active" data-intro="kalkulatory">Interaktywne Narzędzia</button>
            <button class="rk-guide-tab-btn" data-intro="tabele">Tabele i Normy</button>
            <button class="rk-guide-tab-btn" data-intro="case">Studium Przypadku</button>
        </div>

        <div class="rk-guide-panel active" id="intro-kalkulatory">
            <div class="rk-guide-panel-content">
                <div class="rk-guide-panel-icon">
                    <svg width="32" height="32" 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-guide-panel-text">
                    <h4>Kalkulatory i Symulatory Live</h4>
                    <p>Zamiast zgadywać, poniżej udostępniam Ci kalkulatory działające w czasie rzeczywistym. Samodzielnie zmienisz długość pętli, wybierzesz źródło ciepła i natychmiast sprawdzisz, czy opory w rurze przekroczą krytyczną barierę bezpieczeństwa.</p>
                </div>
            </div>
        </div>

        <div class="rk-guide-panel" id="intro-tabele">
            <div class="rk-guide-panel-content">
                <div class="rk-guide-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
                </div>
                <div class="rk-guide-panel-text">
                    <h4>Tabelaryczne Zestawienia Spadków Ciśnień</h4>
                    <p>Konkretne inżynierskie dane. Porównamy ramię w ramię pojemność wodną, maksymalne długości obiegów oraz opór, jaki rura 16 mm i 20 mm stawia instalacji przy określonym przepływie masowym.</p>
                </div>
            </div>
        </div>

        <div class="rk-guide-panel" id="intro-case">
            <div class="rk-guide-panel-content">
                <div class="rk-guide-panel-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="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>
                </div>
                <div class="rk-guide-panel-text">
                    <h4>Praktyczne Case Study</h4>
                    <p>Rozłożymy na czynniki pierwsze realny problem inwestora, który musiał wybrać między opiniami dwóch sprzeczających się instalatorów. Zobaczysz, jak projekt inżynierski chroni budżet przed poważnymi błędami wykonawczymi.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('.rk-guide-tab-btn');
    var navPanels = document.querySelectorAll('.rk-guide-panel');

    // Kod w 100% bezpieczny - brak zakazanych operatorów
    for (var i = 0; i < navBtns.length; i++) {
        navBtns[i].addEventListener('click', function() {
            
            // Usunięcie klasy active ze wszystkich
            for (var j = 0; j < navBtns.length; j++) {
                navBtns[j].classList.remove('active');
            }
            for (var k = 0; k < navPanels.length; k++) {
                navPanels[k].classList.remove('active');
            }

            // Aktywacja klikniętego elementu
            this.classList.add('active');

            // Odnalezienie przypisanego panelu
            var targetPanelId = 'intro-' + this.getAttribute('data-intro');
            var targetPanel = document.getElementById(targetPanelId);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-primary: #0284c7;
    --rk-loop-accent: #0ea5e9;
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-border: #cbd5e1;
    --rk-loop-text: #334155;
    --rk-loop-muted: #64748b;
    --rk-loop-danger: #ef4444;
    --rk-loop-warning: #eab308;
    --rk-loop-success: #10b981;
}

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

/* Sekcja Merytoryczna */
.rk-loop-content {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--rk-loop-bg));
}

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

.rk-loop-content h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-loop-primary);
    margin: 30px 0 15px 0;
}

.rk-loop-content p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-loop-text);
    margin-bottom: 20px;
}

.rk-loop-content a {
    color: var(--rk-loop-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(14, 165, 233, 0.2);
    transition: all 0.3s;
}

.rk-loop-content a:hover {
    border-color: var(--rk-loop-accent);
}

/* Wskazówka Projektowa (Alert) */
.rk-loop-alert {
    background: #f0f9ff;
    border-left: 4px solid var(--rk-loop-primary);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 30px 0;
    display: flex;
    gap: 15px;
}

.rk-loop-alert-icon {
    color: var(--rk-loop-primary);
    flex-shrink: 0;
}

.rk-loop-alert-text h4 {
    margin: 0 0 8px 0;
    color: var(--rk-loop-dark);
    font-size: 16px;
}

.rk-loop-alert-text p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--rk-loop-text);
}

/* Interaktywny Asystent */
.rk-loop-assistant {
    background: var(--rk-loop-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-assistant-title {
    text-align: center;
    margin-bottom: 30px;
}

.rk-assistant-title h3 {
    margin: 0;
    font-size: 24px;
    color: #ffffff;
}

/* Wybór Rury */
.rk-pipe-selector {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-pipe-btn {
    flex: 1;
    background: #1e293b;
    border: 2px solid #334155;
    padding: 15px;
    border-radius: 12px;
    color: #cbd5e1;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-pipe-btn span {
    font-size: 18px;
    font-weight: 800;
}

.rk-pipe-btn small {
    font-size: 12px;
    color: #94a3b8;
}

.rk-pipe-btn.active {
    background: var(--rk-loop-primary);
    border-color: var(--rk-loop-accent);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-pipe-btn.active small {
    color: #e0f2fe;
}

/* Panel Wynikowy z Suwakiem */
.rk-calc-panel {
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.rk-slider-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-slider-val {
    color: var(--rk-loop-accent);
    font-size: 18px;
}

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

.rk-length-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-loop-accent);
    cursor: pointer;
    border: 4px solid var(--rk-loop-dark);
    box-shadow: 0 0 0 2px var(--rk-loop-accent);
    transition: transform 0.1s;
}

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

.rk-status-box {
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    font-weight: 800;
    font-size: 14px;
    transition: all 0.3s;
}

/* Prawa kolumna wyników */
.rk-stats-section {
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-left: 1px dashed #334155;
    padding-left: 40px;
}

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

.rk-stat-label {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-stat-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-stat-unit {
    font-size: 16px;
    font-weight: 600;
    color: #cbd5e1;
}

/* Warianty Statusów */
.bg-ok { background: rgba(16, 185, 129, 0.15); color: var(--rk-loop-success); border: 1px solid rgba(16, 185, 129, 0.3); }
.bg-warn { background: rgba(234, 179, 8, 0.15); color: var(--rk-loop-warning); border: 1px solid rgba(234, 179, 8, 0.3); }
.bg-danger { background: rgba(239, 68, 68, 0.15); color: var(--rk-loop-danger); border: 1px solid rgba(239, 68, 68, 0.3); }

@media (max-width: 768px) {
    .rk-loop-content, .rk-loop-assistant { padding: 30px 20px; }
    .rk-pipe-selector { flex-direction: column; gap: 10px; }
    .rk-calc-panel { grid-template-columns: 1fr; gap: 30px; }
    .rk-stats-section { border-left: none; border-top: 1px dashed #334155; padding-left: 0; padding-top: 30px; }
    .rk-loop-content h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-graniczne-dlugosci",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Graniczne długości pętli i dobór średnicy rur",
    "description": "Zasady wymiarowania ogrzewania podłogowego: maksymalne długości pętli dla rur 16 mm, 17 mm i 20 mm. Obliczanie pojemności wodnej i zrównoważenia hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-petle",
    "name": "Tabela 2. Zalecane i maksymalne długości pętli ogrzewania podłogowego",
    "description": "Baza danych parametrów granicznych pętli grzewczych dla najpopularniejszych średnic rur wielowarstwowych (16x2.0, 17x2.0, 20x2.0).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli",
      "pojemność wodna rury pex",
      "średnica wewnętrzna rury ogrzewania podłogowego",
      "zrównoważenie hydrauliczne układu",
      "różnice między rurą 16 a 20"
    ],
    "measurementTechnique": "Zestawienie empirycznych norm instalacyjnych oraz przeliczników objętości cieczy na metr bieżący rury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura 16x2.0 mm: Max. długość 120m, Zalecana 80m, Pojemność 0.113 l/m",
        "Rura 17x2.0 mm: Max. długość 120m, Zalecana 90m, Pojemność 0.133 l/m",
        "Rura 20x2.0 mm: Max. długość 150m, Zalecana 110m, Pojemność 0.201 l/m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-dlugosc",
    "name": "Asystent Pojemności i Długości Pętli",
    "description": "Narzędzie pozwalające symulować pojemność zładu wody oraz bezpieczeństwo oporów hydraulicznych w zależności od wybranej średnicy rury i długości pętli.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container">
    <div class="rk-loop-content">
        <h2>Graniczne długości pętli i dobór średnicy rur</h2>
        <p>Aby uniknąć gigantycznych problemów z hydraulicznym zrównoważeniem układu (gdy jedno pomieszczenie przegrzewa, a drugie nie dogrzewa), inżynierowie przyjmują twarde, bezpieczne granice <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a>. Wartości te, łącznie z podejściem z kotłowni do rozdzielacza, gwarantują utrzymanie spadków ciśnień w ryzach.</p>
        
        <div class="rk-loop-alert">
            <div class="rk-loop-alert-icon">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <div class="rk-loop-alert-text">
                <h4>Inżynierska wskazówka projektowa</h4>
                <p>Zawsze staraj się, aby pętle podłączone do jednego rozdzielacza miały zbliżone długości. Różnica nie powinna przekraczać <strong>10–15%</strong>. Drastyczne różnice powodują, że woda ucieka najkrótszą drogą, omijając najdłuższe (zazwyczaj najważniejsze) obiegi w salonie. Dowiedz się więcej o <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">planowaniu rozmieszczenia pętli grzewczych</a>.</p>
            </div>
        </div>

        <h3>Jakie są różnice między rurą 16x2.0, 17x2.0 a 20x2.0?</h3>
        <p><a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rura 16x2,0 mm</a> to wciąż absolutny standard w mniejszych sypialniach i łazienkach. Jednak w przypadku potężnych salonów, otwartych przestrzeni czy instalacji z pompą ciepła, rura <strong>20x2,0 mm</strong> (o średnicy wewnętrznej 16 mm) okazuje się ratunkiem. Przekrój wewnętrzny "dwudziestki" jest o ok. <strong>77% większy</strong> niż rury 16 mm. Wpływa to na drastyczne obniżenie oporów i większą pojemność wodną układu (co tworzy naturalny bufor dla pompy).</p>
    </div>

    <div class="rk-loop-assistant">
        <div class="rk-assistant-title">
            <h3>Asystent Pojemności i Zrównoważenia Pętli</h3>
        </div>

        <div class="rk-pipe-selector">
            <div class="rk-pipe-btn active" data-type="16">
                <span>16 x 2.0 mm</span>
                <small>Zalecana: ~80 m</small>
            </div>
            <div class="rk-pipe-btn" data-type="17">
                <span>17 x 2.0 mm</span>
                <small>Zalecana: ~90 m</small>
            </div>
            <div class="rk-pipe-btn" data-type="20">
                <span>20 x 2.0 mm</span>
                <small>Zalecana: ~110 m</small>
            </div>
        </div>

        <div class="rk-calc-panel">
            <div class="rk-slider-section">
                <div class="rk-slider-label">
                    <span>Planowana długość pętli</span>
                    <span class="rk-slider-val" id="dispLenVal">80 m</span>
                </div>
                <input type="range" id="loopLength" class="rk-length-slider" min="20" max="180" step="5" value="80">
                
                <div id="lenStatus" class="rk-status-box bg-ok">
                    DŁUGOŚĆ IDEALNA DO REGULACJI
                </div>
            </div>

            <div class="rk-stats-section">
                <div class="rk-stat-item">
                    <div class="rk-stat-label">Średnica wewnętrzna</div>
                    <div class="rk-stat-value">
                        <span id="statInner">12</span>
                        <span class="rk-stat-unit">mm</span>
                    </div>
                </div>

                <div class="rk-stat-item">
                    <div class="rk-stat-label"><a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/" style="color:#94a3b8;text-decoration:none;border-bottom:1px dashed #64748b;">Pojemność wodna tej pętli</a></div>
                    <div class="rk-stat-value">
                        <span id="statCap" style="color:var(--rk-loop-accent);">9.0</span>
                        <span class="rk-stat-unit">litrów</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Pipe Data Dictionary
    var pipeData = {
        "16": { inner: 12, max: 120, rec: 80, cap: 0.113 },
        "17": { inner: 13, max: 120, rec: 90, cap: 0.133 },
        "20": { inner: 16, max: 150, rec: 110, cap: 0.201 }
    };

    var currentPipeType = "16";

    // UI Elements
    var btns = document.querySelectorAll('.rk-pipe-btn');
    var slider = document.getElementById('loopLength');
    var dispLenVal = document.getElementById('dispLenVal');
    var statInner = document.getElementById('statInner');
    var statCap = document.getElementById('statCap');
    var lenStatus = document.getElementById('lenStatus');

    // Pipe Selection Logic
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var type = this.getAttribute('data-type');
            if(type) {
                currentPipeType = type;
                calculateLoop();
            }
        });
    });

    // Slider Logic
    slider.addEventListener('input', function() {
        dispLenVal.innerText = this.value + ' m';
        calculateLoop();
    });

    // Core Calculation (Safe JS)
    function calculateLoop() {
        var length = parseInt(slider.value, 10);
        var data = pipeData[currentPipeType];
        
        // Update Static Stats
        statInner.innerText = data.inner;
        
        // Calculate Capacity
        var totalCap = length * data.cap;
        statCap.innerText = totalCap.toFixed(1);

        // Evaluate Status (No && operators for safety)
        var statusLvl = 0; // 0 = OK, 1 = Warn (over recommended, under max), 2 = Danger (over max)
        
        if (length > data.rec) {
            statusLvl = 1;
        }
        if (length > data.max) {
            statusLvl = 2;
        }

        // Apply Status
        if (statusLvl === 0) {
            lenStatus.className = "rk-status-box bg-ok";
            lenStatus.innerText = "DŁUGOŚĆ IDEALNA (Łatwa regulacja)";
        } else if (statusLvl === 1) {
            lenStatus.className = "rk-status-box bg-warn";
            lenStatus.innerText = "PĘTLA WYMAGAJĄCA (Wysokie opory)";
        } else {
            lenStatus.className = "rk-status-box bg-danger";
            lenStatus.innerText = "PRZEKROCZENIE NORMY (Krytyczne dławienie!)";
        }
    }

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



<style>
:root {
    --rk-spec-dark: #0f172a;
    --rk-spec-blue: #0284c7;
    --rk-spec-accent: #0ea5e9;
    --rk-spec-bg: #f8fafc;
    --rk-spec-card: #ffffff;
    --rk-spec-border: #cbd5e1;
    --rk-spec-text: #334155;
    --rk-spec-muted: #64748b;
    --rk-spec-highlight: #f0f9ff;
}

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

/* Nagłówek i Zajawka */
.rk-spec-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-spec-highlight) 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-spec-border);
}

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

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

/* Moduł Interaktywny */
.rk-spec-interactive {
    padding: 40px 50px;
    background: var(--rk-spec-dark);
    color: #ffffff;
}

/* Przyciski wyboru rury */
.rk-spec-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-spec-tab-btn {
    flex: 1;
    background: #1e293b;
    border: 2px solid #334155;
    border-radius: 12px;
    padding: 16px;
    color: #94a3b8;
    font-size: 18px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-spec-tab-btn svg {
    opacity: 0.5;
    transition: opacity 0.3s;
}

.rk-spec-tab-btn:hover {
    background: #334155;
    color: #cbd5e1;
}

.rk-spec-tab-btn.active {
    background: var(--rk-spec-blue);
    border-color: var(--rk-spec-accent);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-spec-tab-btn.active svg {
    opacity: 1;
}

/* Wyświetlacz Parametrów */
.rk-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-spec-card {
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: transform 0.3s;
}

.rk-spec-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(14, 165, 233, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-spec-accent);
    flex-shrink: 0;
}

.rk-spec-data {
    display: flex;
    flex-direction: column;
}

.rk-spec-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-spec-value {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1.2;
}

.rk-spec-sub {
    font-size: 14px;
    color: #cbd5e1;
    margin-top: 5px;
}

@media (max-width: 768px) {
    .rk-spec-header, .rk-spec-interactive { padding: 30px 20px; }
    .rk-spec-tabs { flex-direction: column; gap: 10px; }
    .rk-spec-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-spec-header h2 { font-size: 24px; }
    .rk-spec-value { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Porównanie parametrów technicznych rur wielowarstwowych",
    "description": "Zestawienie średnic wewnętrznych, pojemności wodnej i maksymalnych długości pętli dla rur PEX/PERT 16x2.0, 17x2.0 oraz 20x2.0 mm w instalacjach podłogowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-parametry",
    "name": "Parametry techniczne rur wielowarstwowych do ogrzewania płaszczyznowego",
    "description": "Dokładne zestawienie wymiarowe, pojemnościowe i aplikacyjne dla rur instalacyjnych o wymiarach 16, 17 i 20 mm grubości.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne rury 16x2.0",
      "średnica wewnętrzna rury ogrzewania podłogowego",
      "pojemność wodna rury pex 1 mb",
      "zalecana długość pętli rura 20mm",
      "rura 17x2.0 do podłogówki"
    ],
    "measurementTechnique": "Tabelaryczne zestawienie wartości normatywnych i pojemnościowych wyliczanych na podstawie pola przekroju poprzecznego rury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura 16x2.0 mm: wewn. 12mm, poj. 0.113 l/mb, dł. 80-90m",
        "Rura 17x2.0 mm: wewn. 13mm, poj. 0.133 l/mb, dł. 90-100m",
        "Rura 20x2.0 mm: wewn. 16mm, poj. 0.201 l/mb, dł. 110-130m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-eksplorator",
    "name": "Interaktywny Eksplorator Parametrów Rur",
    "description": "Mobilny panel pozwalający na błyskawiczne odczytywanie pojemności, przekrojów i zastosowania różnych średnic rur ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spec-container">
    <div class="rk-spec-header">
        <h2>Porównanie parametrów technicznych rur wielowarstwowych</h2>
        <p>Średnica zewnętrzna to tylko ułamek prawdy. Kluczowym elementem, który determinuje opory hydrauliczne i pojemność cieplną instalacji, jest <strong>przekrój wewnętrzny rury</strong>. Zobacz, jak dramatycznie zmieniają się właściwości fizyczne układu przy przejściu ze standardowej rury 16 mm na większe przekroje. Zrozumienie tych wartości to pierwszy krok do zaprojektowania wysoce wydajnej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>.</p>
    </div>

    <div class="rk-spec-interactive">
        
        <div class="rk-spec-tabs" id="rkSpecTabs">
            <button class="rk-spec-tab-btn active" data-pipe="16">
                <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="6"></circle><circle cx="12" cy="12" r="10"></circle></svg>
                16x2.0 mm
            </button>
            <button class="rk-spec-tab-btn" data-pipe="17">
                <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="7"></circle><circle cx="12" cy="12" r="10"></circle></svg>
                17x2.0 mm
            </button>
            <button class="rk-spec-tab-btn" data-pipe="20">
                <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="8"></circle><circle cx="12" cy="12" r="10"></circle></svg>
                20x2.0 mm
            </button>
        </div>

        <div class="rk-spec-grid">
            
            <div class="rk-spec-card">
                <div class="rk-spec-icon-box">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-spec-data">
                    <span class="rk-spec-label">Średnica wewnętrzna</span>
                    <span class="rk-spec-value" id="valInner">12,0 mm</span>
                    <span class="rk-spec-sub" id="subInner">Standardowy przekrój dla typowych oporów.</span>
                </div>
            </div>

            <div class="rk-spec-card">
                <div class="rk-spec-icon-box">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                </div>
                <div class="rk-spec-data">
                    <span class="rk-spec-label"><a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/" style="color:#94a3b8; text-decoration:none;">Pojemność wodna (1 mb)</a></span>
                    <span class="rk-spec-value" id="valCap">ok. 0,113 l</span>
                    <span class="rk-spec-sub" id="subCap">Pojemność zładu podstawowego.</span>
                </div>
            </div>

            <div class="rk-spec-card">
                <div class="rk-spec-icon-box">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="12" rx="2" ry="2"></rect><line x1="7" y1="8" x2="7" y2="12"></line><line x1="11" y1="8" x2="11" y2="12"></line><line x1="15" y1="8" x2="15" y2="12"></line><line x1="19" y1="8" x2="19" y2="12"></line><line x1="3" y1="14" x2="21" y2="14"></line></svg>
                </div>
                <div class="rk-spec-data">
                    <span class="rk-spec-label"><a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" style="color:#94a3b8; text-decoration:none;">Zalecana długość pętli</a></span>
                    <span class="rk-spec-value" id="valLen">do 80-90 m</span>
                    <span class="rk-spec-sub" id="subLen">Dla zachowania łatwej regulacji.</span>
                </div>
            </div>

            <div class="rk-spec-card">
                <div class="rk-spec-icon-box">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <div class="rk-spec-data">
                    <span class="rk-spec-label">Główne zastosowanie</span>
                    <span class="rk-spec-value" id="valApp">Pokoje, sypialnie</span>
                    <span class="rk-spec-sub" id="subApp">Typowe budownictwo jednorodzinne.</span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Słownik danych parametrów rur
    var specsData = {
        "16": {
            inner: "12,0 mm",
            innerSub: "Standardowy przekrój dla typowych oporów.",
            cap: "ok. 0,113 l",
            capSub: "Pojemność zładu podstawowego.",
            len: "do 80-90 m",
            lenSub: "Dla zachowania łatwej regulacji rotametrów.",
            app: "Pokoje, sypialnie",
            appSub: "Typowe budownictwo jednorodzinne i kotły gazowe."
        },
        "17": {
            inner: "13,0 mm",
            innerSub: "Zapewnia nieznacznie wyższe przepływy niż rura 16 mm.",
            cap: "ok. 0,133 l",
            capSub: "Lekko powiększona bezwładność cieplna układu.",
            len: "do 90-100 m",
            lenSub: "Możliwość wydłużenia pętli w stosunku do standardu.",
            app: "Systemy dedykowane",
            appSub: "Często stosowana w kompletnych systemach producentów."
        },
        "20": {
            inner: "16,0 mm",
            innerSub: "Przekrój większy o ok. 77% od standardu (minimalne opory).",
            cap: "ok. 0,201 l",
            capSub: "Wysoki bufor wodny – idealne środowisko dla pompy ciepła.",
            len: "do 110-130 m",
            lenSub: "Obsługa rozległych powierzchni z jednego obwodu.",
            app: "Salony, pompy ciepła",
            appSub: "Obiekty komercyjne oraz systemy niskotemperaturowe."
        }
    };

    var tabs = document.querySelectorAll('.rk-spec-tab-btn');
    
    // Referencje UI
    var valInner = document.getElementById('valInner');
    var subInner = document.getElementById('subInner');
    var valCap = document.getElementById('valCap');
    var subCap = document.getElementById('subCap');
    var valLen = document.getElementById('valLen');
    var subLen = document.getElementById('subLen');
    var valApp = document.getElementById('valApp');
    var subApp = document.getElementById('subApp');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas przycisków
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            // Aktualizacja danych (Zabezpieczone - bezpieczny JS bez operatorów &&)
            var pipeType = this.getAttribute('data-pipe');
            var data = specsData[pipeType];

            if(data) {
                valInner.innerText = data.inner;
                subInner.innerText = data.innerSub;
                
                valCap.innerText = data.cap;
                subCap.innerText = data.capSub;
                
                valLen.innerText = data.len;
                subLen.innerText = data.lenSub;
                
                valApp.innerText = data.app;
                subApp.innerText = data.appSub;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pres-dark: #0f172a;
    --rk-pres-blue: #0369a1;
    --rk-pres-light: #f8fafc;
    --rk-pres-border: #cbd5e1;
    --rk-pres-red: #ef4444;
    --rk-pres-red-bg: #fef2f2;
    --rk-pres-green: #10b981;
    --rk-pres-green-bg: #ecfdf5;
    --rk-pres-gold: #eab308;
    --rk-pres-text: #334155;
}

.rk-pres-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(3, 105, 161, 0.15);
    border: 1px solid var(--rk-pres-blue);
    overflow: hidden;
}

/* Część Teoretyczna */
.rk-pres-theory {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--rk-pres-light));
}

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

.rk-pres-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-pres-text);
    margin-bottom: 25px;
}

.rk-pres-rules {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

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

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

.rk-pres-rule-card h3 {
    margin: 0 0 10px 0;
    font-size: 16px;
    color: var(--rk-pres-dark);
}

.rk-pres-rule-card p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

/* Moduł Analizatora (Interaktywny) */
.rk-pres-analyzer {
    background: var(--rk-pres-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-analyzer-header {
    margin-bottom: 30px;
    text-align: center;
}

.rk-analyzer-header h3 {
    margin: 0;
    font-size: 24px;
    color: #ffffff;
}

.rk-analyzer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* Kontrolki Analizatora */
.rk-control-block {
    margin-bottom: 25px;
}

.rk-control-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 700;
    font-size: 14px;
    color: #cbd5e1;
}

.rk-control-val {
    color: var(--rk-pres-gold);
    font-size: 16px;
}

.rk-slider-pres {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: #334155;
    border-radius: 4px;
    outline: none;
}

.rk-slider-pres::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-pres-gold);
    cursor: pointer;
    border: 4px solid var(--rk-pres-dark);
    box-shadow: 0 0 0 2px var(--rk-pres-gold);
    transition: transform 0.1s;
}

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

.rk-switch-group {
    display: flex;
    background: #334155;
    border-radius: 12px;
    padding: 4px;
}

.rk-switch-btn {
    flex: 1;
    text-align: center;
    padding: 14px;
    color: #94a3b8;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
}

.rk-switch-btn.active {
    background: var(--rk-pres-blue);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Wyniki Analizatora */
.rk-results-box {
    background: #1e293b;
    border-radius: 16px;
    border: 1px solid #334155;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-result-metric {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed #334155;
}

.rk-result-metric:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.rk-metric-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 10px;
}

.rk-metric-value-wrap {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.rk-metric-num {
    font-size: 36px;
    font-weight: 900;
    transition: color 0.3s;
}

.rk-metric-unit {
    font-size: 18px;
    color: #cbd5e1;
    font-weight: 600;
}

.rk-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 15px;
    transition: all 0.3s;
}

.rk-badge-ok { background: rgba(16, 185, 129, 0.2); color: var(--rk-pres-green); border: 1px solid rgba(16, 185, 129, 0.3); }
.rk-badge-warn { background: rgba(239, 68, 68, 0.2); color: var(--rk-pres-red); border: 1px solid rgba(239, 68, 68, 0.3); }
.rk-badge-gold { background: rgba(234, 179, 8, 0.2); color: var(--rk-pres-gold); border: 1px solid rgba(234, 179, 8, 0.3); }

@media (max-width: 768px) {
    .rk-pres-theory, .rk-pres-analyzer { padding: 30px 20px; }
    .rk-analyzer-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-pres-theory h2 { font-size: 24px; }
    .rk-metric-num { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-spadki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Spadki ciśnienia w ogrzewaniu podłogowym – szczegółowa analiza",
    "description": "Graniczne parametry oporów hydraulicznych w podłogówce. Zobacz jak rura 16 mm dusi układ pompy ciepła, przekraczając barierę 20 kPa i 0,6 m/s.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-cisnienie",
    "name": "Tabela 1. Jednostkowe spadki ciśnienia [Pa/m] dla rur wielowarstwowych",
    "description": "Zestawienie wzrostu oporów liniowych rur 16x2.0 i 20x2.0 mm w funkcji przepływu masowego wody grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jednostkowy spadek ciśnienia rury 16",
      "opory hydrauliczne pompy ciepła",
      "maksymalna prędkość wody w rurach",
      "dławienie pompy obiegowej",
      "kalkulator przepływu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określanie straty ciśnienia wyrażonej w Pa/m na podstawie nomogramów dla rur PEX/Al/PEX przy stałym przepływie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ 120 kg/h: Rura 16mm = 170 Pa/m | Rura 20mm = 35 Pa/m",
        "Przepływ 200 kg/h: Rura 16mm = 480 Pa/m | Rura 20mm = 100 Pa/m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-analizator",
    "name": "Interaktywny Analizator Oporów i Średnic",
    "description": "Kalkulator czasu rzeczywistego pozwalający na symulację przekroczenia granicy 20 kPa przy wyborze pompy ciepła lub kotła gazowego na konkretnej długości pętli.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pres-container">
    <div class="rk-pres-theory">
        <h2>Spadki ciśnienia w ogrzewaniu podłogowym – szczegółowa analiza</h2>
        <p>Obliczenie strat ciśnienia (oporów hydraulicznych) w ogrzewaniu podłogowym to moment, w którym decyduje się, czy Twoja pompa obiegowa zdoła „przepchnąć” wodę przez gąszcz rur. Na opór pętli składają się <strong>straty liniowe</strong> (wynikające z ocierania się wody o ścianki rury na danej długości) oraz <strong>straty miejscowe</strong> (łuki, załamania, zawory w <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu</a>).</p>
        
        <div class="rk-pres-rules">
            <div class="rk-pres-rule-card">
                <div class="rk-pres-rule-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 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>
                </div>
                <h3>Granica 20 kPa</h3>
                <p>Łączne opory pętli nie mogą przekroczyć 15–20 kPa (ok. 2,0 m słupa wody). Powyżej tej wartości zrównoważenie hydrauliczne staje się niemożliwe, a pompa drastycznie dławi układ.</p>
            </div>
            
            <div class="rk-pres-rule-card">
                <div class="rk-pres-rule-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <h3>Odpowietrzenie (>0,15 m/s)</h3>
                <p>Prędkość wody nie może spaść poniżej 0,15 m/s. Jeśli woda płynie wolniej, nie jest w stanie wypchnąć pęcherzyków powietrza do separatora.</p>
            </div>
            
            <div class="rk-pres-rule-card">
                <div class="rk-pres-rule-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 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Szumy i Erozja (<0,6 m/s)</h3>
                <p>Przekroczenie prędkości 0,6 m/s wywołuje głośne szumy w instalacji, a siła tarcia przyspiesza destrukcję struktury wewnętrznej pętli.</p>
            </div>
        </div>
        
        <p>W praktyce inżynierskiej opieramy się na tabelach jednostkowych spadków ciśnienia (R) producentów rur. Widzimy z nich dobitnie, że przy wyższych przepływach (wymaganych przez pompy ciepła), <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rura PEX 16 mm</a> zaczyna stawiać gigantyczny opór w porównaniu do rury 20 mm.</p>
    </div>

    <div class="rk-pres-analyzer">
        <div class="rk-analyzer-header">
            <h3>Analizator Hydrauliczny: Wybór Średnicy</h3>
        </div>

        <div class="rk-analyzer-grid">
            <div class="rk-analyzer-controls">
                
                <div class="rk-control-block">
                    <div class="rk-control-label">
                        <span>Zapotrzebowanie na ciepło salonu</span>
                        <span class="rk-control-val" id="dispWatt">1500 W</span>
                    </div>
                    <input type="range" id="rngWatt" class="rk-slider-pres" min="800" max="2500" step="50" value="1500">
                </div>

                <div class="rk-control-block">
                    <div class="rk-control-label">
                        <span>Długość pętli grzewczej</span>
                        <span class="rk-control-val" id="dispLen">85 m</span>
                    </div>
                    <input type="range" id="rngLen" class="rk-slider-pres" min="50" max="150" step="5" value="85">
                </div>

                <div class="rk-control-block">
                    <div class="rk-control-label">
                        <span>Źródło ciepła (Dynamika przepływu)</span>
                    </div>
                    <div class="rk-switch-group">
                        <div class="rk-switch-btn active" id="modeGas">Kocioł Gaz (ΔT=10K)</div>
                        <div class="rk-switch-btn" id="modeHP">Pompa Ciepła (ΔT=5K)</div>
                    </div>
                </div>

                <div class="rk-control-block">
                    <div class="rk-control-label">
                        <span>Średnica badanej rury</span>
                    </div>
                    <div class="rk-switch-group">
                        <div class="rk-switch-btn active" id="pipe16">16 x 2.0 mm</div>
                        <div class="rk-switch-btn" id="pipe20">20 x 2.0 mm</div>
                    </div>
                </div>

            </div>

            <div class="rk-results-box">
                <div class="rk-result-metric">
                    <div class="rk-metric-title">Przepływ masowy w pętli</div>
                    <div class="rk-metric-value-wrap">
                        <span class="rk-metric-num" id="resMass" style="color:#ffffff;">130</span>
                        <span class="rk-metric-unit">kg/h</span>
                    </div>
                </div>

                <div class="rk-result-metric">
                    <div class="rk-metric-title">Łączny spadek ciśnienia (z oporem miejscowym)</div>
                    <div class="rk-metric-value-wrap">
                        <span class="rk-metric-num" id="resKpa">20.4</span>
                        <span class="rk-metric-unit">kPa</span>
                    </div>
                    <div id="badgeKpa" class="rk-status-badge">W GRANICACH NORMY</div>
                </div>

                <div class="rk-result-metric" style="border:none; padding:0;">
                    <div class="rk-metric-title">Prędkość przepływu</div>
                    <div class="rk-metric-value-wrap">
                        <span class="rk-metric-num" id="resVel">0.30</span>
                        <span class="rk-metric-unit">m/s</span>
                    </div>
                    <div id="badgeVel" class="rk-status-badge rk-badge-ok">OPTYMALNA PRĘDKOŚĆ</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // UI Elements
    var rngWatt = document.getElementById('rngWatt');
    var dispWatt = document.getElementById('dispWatt');
    var rngLen = document.getElementById('rngLen');
    var dispLen = document.getElementById('dispLen');
    
    var modeGas = document.getElementById('modeGas');
    var modeHP = document.getElementById('modeHP');
    var pipe16 = document.getElementById('pipe16');
    var pipe20 = document.getElementById('pipe20');
    
    // Result Elements
    var resMass = document.getElementById('resMass');
    var resKpa = document.getElementById('resKpa');
    var badgeKpa = document.getElementById('badgeKpa');
    var resVel = document.getElementById('resVel');
    var badgeVel = document.getElementById('badgeVel');

    // State Variables
    var currentDt = 10; // 10K (Gaz) domyślnie
    var currentPipe = 16; // 16mm domyślnie

    // Event Listeners
    modeGas.addEventListener('click', function() {
        modeGas.classList.add('active');
        modeHP.classList.remove('active');
        currentDt = 10;
        updateSim();
    });

    modeHP.addEventListener('click', function() {
        modeHP.classList.add('active');
        modeGas.classList.remove('active');
        currentDt = 5;
        updateSim();
    });

    pipe16.addEventListener('click', function() {
        pipe16.classList.add('active');
        pipe20.classList.remove('active');
        currentPipe = 16;
        updateSim();
    });

    pipe20.addEventListener('click', function() {
        pipe20.classList.add('active');
        pipe16.classList.remove('active');
        currentPipe = 20;
        updateSim();
    });

    rngWatt.addEventListener('input', function() {
        dispWatt.innerText = this.value + ' W';
        updateSim();
    });

    rngLen.addEventListener('input', function() {
        dispLen.innerText = this.value + ' m';
        updateSim();
    });

    // Core Simulation Logic
    function updateSim() {
        var q = parseInt(rngWatt.value, 10);
        var len = parseInt(rngLen.value, 10);

        // 1. Obliczenie przepływu masowego [kg/h]
        // Wzór uproszczony: Q / (cw * dt) gdzie cw wody ok 1.16 Wh/kgK
        var flow = q / (1.16 * currentDt);
        
        // 2. Estymacja oporu jednostkowego z tabel inżynierskich (R w Pa/m)
        var R = 0;
        var vel = 0;

        if(currentPipe === 16) {
            // Estymacja krzywej dla 16x2.0 (wew 12mm)
            // ok. 120 Pa/m przy 100 kg/h, drastycznie rośnie
            R = Math.pow((flow / 10), 1.85) * 0.16;
            vel = flow * 0.00245; 
        } else {
            // Estymacja krzywej dla 20x2.0 (wew 16mm)
            // ok. 25 Pa/m przy 100 kg/h
            R = Math.pow((flow / 10), 1.75) * 0.04;
            vel = flow * 0.00138;
        }

        // 3. Spadek ciśnienia całkowity = (Liniowy * Długość) + Opory miejscowe(20%)
        var totalPa = (R * len) * 1.2;
        var totalKpa = totalPa / 1000;

        // 4. Aktualizacja UI Wyników
        resMass.innerText = Math.round(flow);
        resKpa.innerText = totalKpa.toFixed(1);
        resVel.innerText = vel.toFixed(2);

        // 5. Zmiana Statusów i Kolorów kPa
        var isKpaCritical = false;
        if(totalKpa > 20) { isKpaCritical = true; }

        if(isKpaCritical === false) {
            resKpa.style.color = "var(--rk-pres-green)";
            badgeKpa.className = "rk-status-badge rk-badge-ok";
            if(totalKpa > 15) {
                badgeKpa.innerText = "NA GRANICY (wymaga regulacji)";
                badgeKpa.className = "rk-status-badge rk-badge-gold";
                resKpa.style.color = "var(--rk-pres-gold)";
            } else {
                badgeKpa.innerText = "IDEALNE OPORY HYDRAULICZNE";
            }
        } else {
            resKpa.style.color = "var(--rk-pres-red)";
            badgeKpa.className = "rk-status-badge rk-badge-warn";
            badgeKpa.innerText = "KRYTYCZNE OPORY (Zmień rurę/Podziel pętlę)";
        }

        // 6. Zmiana Statusów i Kolorów Prędkości
        var velState = 0; // 0=OK, 1=Slow, 2=Fast
        if(vel < 0.15) { velState = 1; }
        if(vel > 0.6) { velState = 2; }

        if(velState === 0) {
            resVel.style.color = "var(--rk-pres-green)";
            badgeVel.className = "rk-status-badge rk-badge-ok";
            badgeVel.innerText = "PRAWIDŁOWA (Dobre odpowietrzenie)";
        } else if (velState === 1) {
            resVel.style.color = "var(--rk-pres-gold)";
            badgeVel.className = "rk-status-badge rk-badge-gold";
            badgeVel.innerText = "ZBYT WOLNO (Ryzyko zapowietrzenia)";
        } else {
            resVel.style.color = "var(--rk-pres-red)";
            badgeVel.className = "rk-status-badge rk-badge-warn";
            badgeVel.innerText = "ZA SZYBKO (Szumy i Erozja)";
        }
    }

    // Init run
    updateSim();
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-accent: #38bdf8;
    --rk-proj-bg: #ffffff;
    --rk-proj-gray: #f8fafc;
    --rk-proj-text: #334155;
    --rk-proj-border: #e2e8f0;
    --rk-proj-gold: #eab308;
}

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

/* Nagłówek Sekcji */
.rk-proj-header {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-proj-gray) 100%);
    border-bottom: 1px solid var(--rk-proj-border);
}

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

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

.rk-proj-header a {
    color: var(--rk-proj-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.3s;
}

.rk-proj-header a:hover {
    border-color: var(--rk-proj-blue);
}

/* Moduł Interaktywny */
.rk-proj-interactive {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: var(--rk-proj-dark);
    color: #ffffff;
}

.rk-proj-sidebar {
    padding: 30px;
    border-right: 1px solid rgba(255,255,255,0.1);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-proj-tab-btn {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px;
    border-radius: 12px;
    color: #94a3b8;
    font-size: 15px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-proj-tab-btn:hover {
    background: rgba(255,255,255,0.1);
    color: #ffffff;
}

.rk-proj-tab-btn.active {
    background: var(--rk-proj-blue);
    border-color: var(--rk-proj-accent);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-proj-icon-wrap {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: rgba(0,0,0,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-proj-tab-btn.active .rk-proj-icon-wrap {
    background: rgba(255,255,255,0.2);
}

/* Wyświetlacz Treści */
.rk-proj-display {
    padding: 40px;
    position: relative;
    overflow: hidden;
}

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

.rk-proj-content-panel.active {
    display: block;
}

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

.rk-proj-content-panel h3 {
    margin: 0 0 15px 0;
    font-size: 24px;
    color: #ffffff;
}

.rk-proj-content-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin-bottom: 25px;
}

.rk-proj-data-box {
    background: #1e293b;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid #334155;
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-proj-svg-illustrator {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}

.rk-proj-data-text h4 {
    margin: 0 0 5px 0;
    color: var(--rk-proj-accent);
    font-size: 16px;
}

.rk-proj-data-text p {
    margin: 0;
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
}

/* Wielkie CTA Sprzedażowe */
.rk-proj-cta-section {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
}

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

.rk-btn-sell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--rk-proj-blue) 0%, #0369a1 100%);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-sell:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.6);
    border-color: var(--rk-proj-accent);
}

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

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

@media (max-width: 768px) {
    .rk-proj-interactive { grid-template-columns: 1fr; }
    .rk-proj-sidebar { padding: 25px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); flex-direction: column; }
    /* Akordeonowy pionowy układ na mobile */
    .rk-proj-header, .rk-proj-display, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-data-box { flex-direction: column; text-align: center; }
    .rk-btn-sell { width: 100%; padding: 18px 20px; font-size: 16px; }
    .rk-proj-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak średnica rury wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Profesjonalne równoważenie hydrauliczne, precyzyjne wyliczenia OZC oraz dobór pompy obiegowej chronią przed niedogrzaniem i zbędnymi kosztami. Dowiedz się, co zawiera inżynierski projekt.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-optymalizacja",
    "name": "Zestawienie optymalizacji kosztów instalacji płaszczyznowej",
    "description": "Dane z modelu inżynierskiego obrazujące tzw. złoty środek: balans między nakładem na materiał (rury 16/20 mm) a kosztami eksploatacyjnymi (pobór prądu przez pompę ciepła).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczeniowe zapotrzebowanie na ciepło ozc",
      "równoważenie hydrauliczne podłogówki",
      "dobór pompy obiegowej",
      "optymalizacja kosztów instalacji",
      "projekt ogrzewania podłogowego"
    ],
    "measurementTechnique": "Algorytm kalkulujący optymalną moc z metra kwadratowego na podstawie rozstawu rur w strefach przyokiennych oraz oporów układu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC: Wymusza zagęszczenie rur w strefach brzegowych.",
        "Hydraulika: Wymusza większe średnice na długich odcinkach (np. 20 mm).",
        "Balans: Optymalizacja zabezpiecza przed przewymiarowaniem systemu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-inżynier",
    "name": "Wirtualny Asystent Projektanta HVAC",
    "description": "Interaktywny eksplorator demonstrujący wpływ obliczeń OZC, równoważenia układu i wyboru materiału na rentowność inwestycji w ogrzewanie.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container">
    <div class="rk-proj-header">
        <h2>Jak średnica rury wpływa na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Profesjonalny projekt ogrzewania to znacznie więcej niż tylko radosne zliczanie metrów bieżących. Serce systemu to precyzyjne <strong>równoważenie hydrauliczne</strong> układu. Jeśli w Twoim domu pętle mają drastycznie różną długość i przypadkowe przekroje rur, nie osiągniesz komfortu bez kłopotliwego, manualnego dławienia rotametrów. Zobacz, co kryje się za rzetelnym opracowaniem inżynierskim.</p>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-sidebar" id="rkTabControls">
            <button class="rk-proj-tab-btn active" data-target="tab-ozc">
                <div class="rk-proj-icon-wrap">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                Wyliczenia OZC i Moc
            </button>
            <button class="rk-proj-tab-btn" data-target="tab-pompa">
                <div class="rk-proj-icon-wrap">
                    <svg width="22" height="22" 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 16v-4"></path><path d="M12 8h.01"></path></svg>
                </div>
                Dobór Pompy i Opory
            </button>
            <button class="rk-proj-tab-btn" data-target="tab-koszty">
                <div class="rk-proj-icon-wrap">
                    <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 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>
                Optymalizacja Kosztów
            </button>
        </div>

        <div class="rk-proj-display">
            <!-- Panel 1: OZC -->
            <div class="rk-proj-content-panel active" id="tab-ozc">
                <h3>Obliczeniowe Zapotrzebowanie na Ciepło (OZC)</h3>
                <p>Nie układamy rur wszędzie tak samo. Średnica rury i jej gęstość są dobierane tak, aby idealnie zrekompensować straty budynku. W strefach przyokiennych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:var(--rk-proj-accent);">wyliczenia OZC</a> wymuszają gęstszy rozstaw (np. co 10 cm), aby zapewnić pożądaną moc z każdego metra kwadratowego podłogi.</p>
                <div class="rk-proj-data-box">
                    <svg class="rk-proj-svg-illustrator" viewBox="0 0 100 100">
                        <rect x="20" y="20" width="60" height="60" rx="8" fill="none" stroke="var(--rk-proj-accent)" stroke-width="4" stroke-dasharray="8 4"/>
                        <path d="M 30 50 Q 50 20 70 50 T 110 50" fill="none" stroke="#ef4444" stroke-width="6"/>
                    </svg>
                    <div class="rk-proj-data-text">
                        <h4>Precyzja grzewcza</h4>
                        <p>Dopasowujemy przekaz energii bezpośrednio do wymagań normatywnych pomieszczenia. Zero stref chłodu.</p>
                    </div>
                </div>
            </div>

            <!-- Panel 2: Pompa -->
            <div class="rk-proj-content-panel" id="tab-pompa">
                <h3>Dobór pompy obiegowej</h3>
                <p>Każda pętla stawia opór wodzie. Średnica 16 mm na odcinku 100 metrów dusi układ. Na podstawie wyliczonych spadków ciśnień inżynier dopasowuje <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color:var(--rk-proj-accent);">wysokość podnoszenia pompy</a>. Wymusza to nierzadko wdrożenie grubszej rury 20 mm w obiegach krytycznych.</p>
                <div class="rk-proj-data-box">
                    <svg class="rk-proj-svg-illustrator" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="35" fill="none" stroke="var(--rk-proj-accent)" stroke-width="4"/>
                        <path d="M50 15 L50 40 L65 55" fill="none" stroke="#ffffff" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="8" fill="#eab308"/>
                    </svg>
                    <div class="rk-proj-data-text">
                        <h4>Płynna hydraulika</h4>
                        <p>Odciążenie serca instalacji gwarantuje bezszelestną pracę oraz wydłuża żywotność podzespołów urządzenia grzewczego.</p>
                    </div>
                </div>
            </div>

            <!-- Panel 3: Koszty -->
            <div class="rk-proj-content-panel" id="tab-koszty">
                <h3>Inżynierski Złoty Środek Kosztów</h3>
                <p>Projektowanie to sztuka balansu. Zbyt duża średnica rur to potężny, całkowicie zbędny koszt materiałowy na etapie wylewki. Z kolei rury zbyt wąskie wymuszą wysokie rachunki za prąd. Profesjonalny dokument pozwala znaleźć punkt przecięcia inwestycji z maksymalnym ROI.</p>
                <div class="rk-proj-data-box">
                    <svg class="rk-proj-svg-illustrator" viewBox="0 0 100 100">
                        <path d="M10 80 L90 80" stroke="var(--rk-proj-border)" stroke-width="4"/>
                        <path d="M20 70 L40 30 L60 50 L80 20" fill="none" stroke="var(--rk-proj-gold)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
                        <circle cx="80" cy="20" r="6" fill="#ffffff"/>
                    </svg>
                    <div class="rk-proj-data-text">
                        <h4>Maksymalne ROI</h4>
                        <p>Oszczędności, które uzyskujesz dzięki zrównoważeniu instalacji, zwracają koszt wykonania projektu zazwyczaj już w pierwszym sezonie.</p>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie zgaduj. Zbuduj system oparty na liczbach.</h3>
        <p style="color: #64748b; margin-bottom: 25px;">Decyzje podejmowane "na budowie" kosztują najwięcej. Zabezpiecz swój kapitał i zleć obliczenia specjalistom.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-sell">
            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() {
    var tabs = document.querySelectorAll('.rk-proj-tab-btn');
    var panels = document.querySelectorAll('.rk-proj-content-panel');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Czyszczenie klas active
            tabs.forEach(function(t) { t.classList.remove('active'); });
            panels.forEach(function(p) { p.classList.remove('active'); });
            
            // Dodanie klasy active do klikniętego elementu
            this.classList.add('active');
            
            // Pobranie id panelu i jego wyświetlenie (zabezpieczone ifem, bez operatorów &&)
            var targetId = this.getAttribute('data-target');
            if(targetId) {
                var targetPanel = document.getElementById(targetId);
                if(targetPanel) {
                    targetPanel.classList.add('active');
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-algo-dark: #1e293b;
    --rk-algo-card: #ffffff;
    --rk-algo-bg: #f8fafc;
    --rk-algo-blue: #0284c7;
    --rk-algo-accent: #38bdf8;
    --rk-algo-red: #ef4444;
    --rk-algo-green: #10b981;
    --rk-algo-border: #e2e8f0;
    --rk-algo-text: #475569;
}

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

/* Sekcja Teorii i Algorytmu */
.rk-algo-theory {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--rk-algo-bg));
}

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

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

.rk-algo-steps {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-step {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-algo-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-algo-step-num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background: var(--rk-algo-blue);
    color: #ffffff;
    font-weight: 800;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.rk-algo-step-content h3 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-algo-dark);
}

.rk-algo-step-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}

.rk-algo-step-content a {
    color: var(--rk-algo-blue);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 rgba(2, 132, 199, 0.2);
}

.rk-algo-step-content code {
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-weight: 700;
    color: var(--rk-algo-dark);
}

/* Sekcja Kalkulatora Live */
.rk-live-calc-wrapper {
    background: var(--rk-algo-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-calc-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-calc-header h3 {
    margin: 0;
    font-size: 24px;
    color: #ffffff;
}

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

/* Kontrolki Suwaków */
.rk-control-group {
    margin-bottom: 25px;
}

.rk-control-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-weight: 700;
    font-size: 14px;
    color: #cbd5e1;
}

.rk-control-val {
    color: var(--rk-algo-accent);
    font-size: 16px;
}

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

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-algo-accent);
    cursor: pointer;
    border: 4px solid var(--rk-algo-dark);
    box-shadow: 0 0 0 2px var(--rk-algo-accent);
    transition: transform 0.1s;
}

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

.rk-toggle-group {
    display: flex;
    background: #334155;
    border-radius: 12px;
    padding: 4px;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 12px;
    color: #94a3b8;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
}

.rk-toggle-btn.active {
    background: var(--rk-algo-blue);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Wyniki Live */
.rk-results-panel {
    background: #0f172a;
    border: 1px solid #334155;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-result-item {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #1e293b;
}

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

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
    margin-bottom: 8px;
}

.rk-result-value {
    font-size: 32px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    gap: 8px;
    transition: color 0.3s;
}

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

.rk-status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 10px;
}

.status-ok { background: rgba(16, 185, 129, 0.2); color: var(--rk-algo-green); }
.status-warn { background: rgba(239, 68, 68, 0.2); color: var(--rk-algo-red); }

@media (max-width: 768px) {
    .rk-algo-theory, .rk-live-calc-wrapper { padding: 30px 20px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-algo-theory h2 { font-size: 24px; }
    .rk-result-value { font-size: 28px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Algorytm doboru średnicy rur w projekcie ogrzewania podłogowego",
    "description": "5-etapowy inżynierski algorytm doboru rur (Q_obl, strumień masy, straty ciśnienia). Symulator na żywo weryfikujący parametry rury 16x2.0.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-algorytm",
    "name": "Zmienne równania hydraulicznego dla instalacji pętlowych",
    "description": "Baza parametrów dla algorytmu doboru rur: moc cieplna, współczynnik Delta T, ciepło właściwe wody oraz jednostkowe spadki ciśnienia dla pętli PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ wody w ogrzewaniu podłogowym",
      "algorytm doboru rur",
      "obliczanie strat ciśnienia w podłogówce",
      "różnica temperatur delta T",
      "prędkość przepływu wody w rurach"
    ],
    "measurementTechnique": "Algorytmiczne przeliczanie strumienia masy (Q / cw * Delta T) na opór w kPa na podstawie długości pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ograniczenie prędkości: od 0.15 do 0.6 m/s.",
        "Ograniczenie oporu całkowitego pętli: poniżej 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Algorytmu Hydraulicznego",
    "description": "Narzędzie symulacyjne czasu rzeczywistego, pozwalające inwestorom na wizualizację wzrostu oporów w rurze 16 mm podczas manipulacji mocą grzewczą i różnicą temperatur.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container">
    <div class="rk-algo-theory">
        <h2>Algorytm doboru średnicy rur w projekcie ogrzewania podłogowego</h2>
        <p>Precyzyjny dobór średnicy rury musi poprzedzać dokładny projekt inżynierski. Decyzje podejmowane przed momentem, w którym wylewana jest <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa</a>, są nieodwracalne. Zgodnie z normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>, oto pełen proces decyzyjny projektanta:</p>
        
        <div class="rk-algo-steps">
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">1</div>
                <div class="rk-algo-step-content">
                    <h3>Wyznaczenie strat ciepła (Q_obl)</h3>
                    <p>Obliczamy straty dla każdego pomieszczenia indywidualnie, uwzględniając przenikanie przez przegrody oraz wentylację.</p>
                </div>
            </div>
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">2</div>
                <div class="rk-algo-step-content">
                    <h3>Przyjęcie parametru Delta T</h3>
                    <p>Ustalamy różnicę temperatur między zasilaniem a powrotem. Dla pompy ciepła to najczęściej 5K (np. 35/30 st. C), a dla instalacji mających <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> wynosi ona zazwyczaj 10K.</p>
                </div>
            </div>
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">3</div>
                <div class="rk-algo-step-content">
                    <h3>Obliczenie strumienia masy</h3>
                    <p>Korzystamy z fundamentalnego wzoru: <code>Przepływ = Moc (Q) / (Ciepło właściwe * Delta T)</code>. Zmiana Delta T z 10K na 5K podwaja ilość wody, którą trzeba przepompować.</p>
                </div>
            </div>
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">4</div>
                <div class="rk-algo-step-content">
                    <h3>Wybór średnicy i analiza oporów (R)</h3>
                    <p>Sumaryczny opór danej pętli <code>S = (Opór liniowy R * Długość pętli L * 1.2) + Opory miejscowe</code> nie może przekroczyć granicy bezpieczeństwa <strong>20 kPa</strong>.</p>
                </div>
            </div>
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">5</div>
                <div class="rk-algo-step-content">
                    <h3>Weryfikacja prędkości</h3>
                    <p>Woda musi płynąć z prędkością w przedziale <strong>0.15 – 0.6 m/s</strong>. Poniżej 0.15 układ się nie odpowietrzy, powyżej 0.6 pojawią się szumy uderzające w komfort mieszkańców.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-live-calc-wrapper">
        <div class="rk-calc-header">
            <h3>Symulacja dla rury 16x2.0 mm</h3>
            <p style="color: #94a3b8; font-size: 15px; margin-top: 10px;">Sprawdź samodzielnie, jak parametry wpływają na opory układu.</p>
        </div>

        <div class="rk-calc-grid">
            <!-- Interfejs Wprowadzania Danych -->
            <div class="rk-calc-controls">
                
                <div class="rk-control-group">
                    <div class="rk-control-label">
                        <span>Zapotrzebowanie na ciepło (Q)</span>
                        <span class="rk-control-val" id="valQ">1000 W</span>
                    </div>
                    <input type="range" id="sliderQ" class="rk-slider" min="300" max="2500" step="50" value="1000">
                </div>

                <div class="rk-control-group">
                    <div class="rk-control-label">
                        <span>Długość projektowanej pętli</span>
                        <span class="rk-control-val" id="valL">80 m</span>
                    </div>
                    <input type="range" id="sliderL" class="rk-slider" min="40" max="150" step="5" value="80">
                </div>

                <div class="rk-control-group">
                    <div class="rk-control-label">
                        <span>Źródło ciepła (Parametr Delta T)</span>
                    </div>
                    <div class="rk-toggle-group">
                        <div class="rk-toggle-btn active" id="btnDt5" data-dt="5">Pompa Ciepła (5K)</div>
                        <div class="rk-toggle-btn" id="btnDt10" data-dt="10">Kocioł Gazowy (10K)</div>
                    </div>
                </div>

            </div>

            <!-- Panel Wyników Czasu Rzeczywistego -->
            <div class="rk-results-panel">
                
                <div class="rk-result-item">
                    <div class="rk-result-title">Wymagany przepływ czynnika</div>
                    <div class="rk-result-value" style="color: #ffffff;">
                        <span id="resFlow">2.87</span>
                        <span class="rk-result-unit">l/min</span>
                    </div>
                </div>

                <div class="rk-result-item">
                    <div class="rk-result-title">Opory hydrauliczne pętli</div>
                    <div class="rk-result-value" id="resPressure">
                        <span id="valPressure">14.2</span>
                        <span class="rk-result-unit">kPa</span>
                    </div>
                    <div class="rk-status-indicator" id="statPressure">W NORMIE</div>
                </div>

                <div class="rk-result-item" style="border:none; padding:0;">
                    <div class="rk-result-title">Prędkość przepływu</div>
                    <div class="rk-result-value" id="resVelocity">
                        <span id="valVelocity">0.42</span>
                        <span class="rk-result-unit">m/s</span>
                    </div>
                    <div class="rk-status-indicator" id="statVelocity">W NORMIE</div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje UI
    var sliderQ = document.getElementById('sliderQ');
    var valQ = document.getElementById('valQ');
    var sliderL = document.getElementById('sliderL');
    var valL = document.getElementById('valL');
    var btnDt5 = document.getElementById('btnDt5');
    var btnDt10 = document.getElementById('btnDt10');
    
    // Referencje Wyników
    var resFlow = document.getElementById('resFlow');
    var valPressure = document.getElementById('valPressure');
    var statPressure = document.getElementById('statPressure');
    var colorPressure = document.getElementById('resPressure');
    var valVelocity = document.getElementById('valVelocity');
    var statVelocity = document.getElementById('statVelocity');
    var colorVelocity = document.getElementById('resVelocity');

    var currentDt = 5;

    // Obsługa Toggli Delta T
    btnDt5.addEventListener('click', function() {
        btnDt5.classList.add('active');
        btnDt10.classList.remove('active');
        currentDt = 5;
        calculatePhysics();
    });

    btnDt10.addEventListener('click', function() {
        btnDt10.classList.add('active');
        btnDt5.classList.remove('active');
        currentDt = 10;
        calculatePhysics();
    });

    // Obsługa Suwaków
    sliderQ.addEventListener('input', function() {
        valQ.innerText = this.value + ' W';
        calculatePhysics();
    });

    sliderL.addEventListener('input', function() {
        valL.innerText = this.value + ' m';
        calculatePhysics();
    });

    // Silnik Obliczeniowy (Bezpieczny JS)
    function calculatePhysics() {
        var q = parseInt(sliderQ.value);
        var len = parseInt(sliderL.value);
        
        // Strumień masy: Q / (cw * Delta T)
        // Dla ułatwienia cw_wody = 1.16 Wh/kgK
        var flowKgH = q / (1.16 * currentDt);
        var flowLMin = flowKgH / 60;
        
        // Estymacja fizyki dla rury 16x2.0 (wew. 12mm)
        var velocity = flowKgH * 0.00245; 
        
        // Empiryczne uproszczenie oporów liniowych dla prezentacji (rośnie wykładniczo)
        var oporLiniowyM = Math.pow(flowKgH / 10, 1.85) * 0.15; 
        var oporCalkowityPa = (oporLiniowyM * len * 1.2) + (flowKgH * 15); // + złączki/rozdzielacz
        var oporKpa = oporCalkowityPa / 1000;

        // Aktualizacja UI
        resFlow.innerText = flowLMin.toFixed(2);
        valPressure.innerText = oporKpa.toFixed(1);
        valVelocity.innerText = velocity.toFixed(2);

        // Statusy Oporów (z pominięciem "&&" dla bezpieczeństwa HTML parserów)
        var isPressureOk = true;
        if (oporKpa > 20) {
            isPressureOk = false;
        }

        if (isPressureOk) {
            statPressure.innerText = "W NORMIE";
            statPressure.className = "rk-status-indicator status-ok";
            colorPressure.style.color = "#10b981";
        } else {
            statPressure.innerText = "KRYTYCZNE OPORY";
            statPressure.className = "rk-status-indicator status-warn";
            colorPressure.style.color = "#ef4444";
        }

        // Statusy Prędkości (z pominięciem "&&")
        var velStatus = 0; // 0=OK, 1=Za wolno, 2=Za szybko
        if (velocity < 0.15) { velStatus = 1; }
        if (velocity > 0.6) { velStatus = 2; }

        if (velStatus === 0) {
            statVelocity.innerText = "W NORMIE";
            statVelocity.className = "rk-status-indicator status-ok";
            colorVelocity.style.color = "#10b981";
        } else {
            statVelocity.className = "rk-status-indicator status-warn";
            colorVelocity.style.color = "#ef4444";
            if (velStatus === 1) {
                statVelocity.innerText = "BRAK ODPOWIETRZENIA";
            }
            if (velStatus === 2) {
                statVelocity.innerText = "SZUMY / EROZJA";
            }
        }
    }

    // Inicjalne wywołanie
    calculatePhysics();
});
</script>



<style>
:root {
    --rk-chart-dark: #0f172a;
    --rk-chart-panel: #1e293b;
    --rk-chart-blue: #0284c7;
    --rk-chart-accent: #38bdf8;
    --rk-chart-bg: #f8fafc;
    --rk-chart-border: #cbd5e1;
    --rk-chart-text: #334155;
    --rk-chart-r16: #ef4444; /* Czerwony - wysokie opory */
    --rk-chart-r17: #eab308; /* Złoty - średnie opory */
    --rk-chart-r20: #10b981; /* Zielony - niskie opory */
}

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

/* Część Opisowa */
.rk-chart-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-chart-bg) 100%);
    border-bottom: 1px solid var(--rk-chart-border);
}

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

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

.rk-chart-header a {
    color: var(--rk-chart-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(14, 165, 233, 0.2);
    transition: all 0.3s;
}

.rk-chart-header a:hover {
    border-color: var(--rk-chart-accent);
}

/* Interaktywny Plotter SVG */
.rk-chart-plotter {
    background: var(--rk-chart-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-plotter-title {
    text-align: center;
    margin-bottom: 25px;
}

.rk-plotter-title h3 {
    margin: 0;
    font-size: 20px;
    color: #ffffff;
}

/* Legenda i Kontrolki */
.rk-chart-legend {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-legend-btn {
    background: #334155;
    border: 2px solid transparent;
    padding: 12px 20px;
    border-radius: 12px;
    color: #ffffff;
    font-weight: 800;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
    opacity: 0.5;
}

.rk-legend-btn.active {
    opacity: 1;
    background: var(--rk-chart-panel);
}

.rk-legend-btn[data-line="16"].active { border-color: var(--rk-chart-r16); box-shadow: 0 4px 15px rgba(239, 68, 68, 0.2); }
.rk-legend-btn[data-line="17"].active { border-color: var(--rk-chart-r17); box-shadow: 0 4px 15px rgba(234, 179, 8, 0.2); }
.rk-legend-btn[data-line="20"].active { border-color: var(--rk-chart-r20); box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2); }

.rk-legend-color {
    width: 14px;
    height: 14px;
    border-radius: 50%;
}
.rk-legend-btn[data-line="16"] .rk-legend-color { background: var(--rk-chart-r16); }
.rk-legend-btn[data-line="17"] .rk-legend-color { background: var(--rk-chart-r17); }
.rk-legend-btn[data-line="20"] .rk-legend-color { background: var(--rk-chart-r20); }

/* Kontener Wykresu */
.rk-svg-wrapper {
    width: 100%;
    background: var(--rk-chart-panel);
    border: 1px solid #334155;
    border-radius: 16px;
    padding: 20px 20px 10px 10px;
    position: relative;
}

.rk-chart-svg {
    width: 100%;
    height: auto;
    display: block;
}

/* Oś i Siatka */
.rk-axis-line { stroke: #475569; stroke-width: 2; }
.rk-grid-line { stroke: #334155; stroke-width: 1; stroke-dasharray: 4 4; }
.rk-axis-text { fill: #94a3b8; font-family: 'Inter', sans-serif; font-size: 12px; }
.rk-axis-title { fill: #cbd5e1; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: bold; }

/* Linie Wykresu */
.rk-path-line {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: opacity 0.4s ease, stroke-width 0.2s;
}

.rk-path-line:hover {
    stroke-width: 6;
}

.rk-path-16 { stroke: var(--rk-chart-r16); }
.rk-path-17 { stroke: var(--rk-chart-r17); }
.rk-path-20 { stroke: var(--rk-chart-r20); }

/* Kropki danych */
.rk-data-point {
    transition: r 0.2s, opacity 0.4s;
    cursor: crosshair;
}
.rk-data-point:hover { r: 7; }

.rk-pt-16 { fill: var(--rk-chart-r16); }
.rk-pt-17 { fill: var(--rk-chart-r17); }
.rk-pt-20 { fill: var(--rk-chart-r20); }

/* Tooltip informacyjny z boku */
.rk-chart-info {
    margin-top: 20px;
    text-align: center;
    color: #94a3b8;
    font-size: 14px;
    padding: 15px;
    background: rgba(255,255,255,0.02);
    border-radius: 8px;
}

@media (max-width: 768px) {
    .rk-chart-header, .rk-chart-plotter { padding: 30px 20px; }
    .rk-chart-legend { flex-direction: column; gap: 10px; }
    .rk-legend-btn { justify-content: center; }
    .rk-chart-header h2 { font-size: 24px; }
    .rk-svg-wrapper { padding: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-wykres",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Wykres SVG: Spadek ciśnienia a przepływ w rurach 16, 17 i 20 mm",
    "description": "Interaktywny wykres hydrauliczny obrazujący wykładniczy wzrost oporów w rurach 16x2.0 względem wydajnych systemów 20x2.0 w instalacjach płaszczyznowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-krzywe",
    "name": "Krzywe charakterystyki oporów hydraulicznych rur ogrzewania podłogowego",
    "description": "Zbiór danych użyty do renderowania wektorowego wykresu SVG. Pokazuje przyrost spadku ciśnienia w Pa/m w funkcji przepływu od 40 do 200 kg/h.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wykres oporów hydraulicznych podłogówki",
      "spadek ciśnienia rura 16 vs 20",
      "charakterystyka rur pex",
      "przepływ wody a spadek ciśnienia",
      "opory liniowe rur wielowarstwowych"
    ],
    "measurementTechnique": "Wizualizacja graficzna zaimplementowana natywnie w SVG, transformująca dane hydrauliczne na krzywe wykładnicze ciśnienia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "16mm krzywa: Przy 200 kg/h opór osiąga skrajne 480 Pa/m.",
        "20mm krzywa: Przy 200 kg/h opór oscyluje w bezpiecznej granicy 100 Pa/m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-plotter",
    "name": "Wizualizator Krzywych Hydraulicznych (SVG)",
    "description": "Natywna, interaktywna aplikacja webowa do dynamicznego porównywania wykresów oporów instalacji grzewczych bez użycia zewnętrznych wtyczek.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS, SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chart-container">
    <div class="rk-chart-header">
        <h2>Wykres: Spadek ciśnienia a przepływ w rurach 16, 17 i 20 mm</h2>
        <p>Nic tak nie obrazuje problemów z hydrauliką, jak suche dane przedstawione na wektorowym wykresie. Wzrost oporów przepływu wody nie jest liniowy – jest krzywą wykładniczą. Im mniejsza średnica rury, tym szybciej linia „wystrzeliwuje” w górę, co wprost przekłada się na dławienie <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</p>
        <p style="margin-top: 15px;">Na poniższym interaktywnym wykresie przeanalizuj, co się dzieje z instalacją, gdy przepływ (wymuszony np. przez pompę ciepła) przekracza próg 120 kg/h. Użyj przycisków, aby włączać i wyłączać badane przekroje.</p>
    </div>

    <div class="rk-chart-plotter">
        <div class="rk-plotter-title">
            <h3>Porównanie Oporów Liniowych [Pa/m]</h3>
        </div>

        <div class="rk-chart-legend">
            <button class="rk-legend-btn active" data-line="16">
                <div class="rk-legend-color"></div> Rura 16x2.0
            </button>
            <button class="rk-legend-btn active" data-line="17">
                <div class="rk-legend-color"></div> Rura 17x2.0
            </button>
            <button class="rk-legend-btn active" data-line="20">
                <div class="rk-legend-color"></div> Rura 20x2.0
            </button>
        </div>

        <div class="rk-svg-wrapper">
            <!-- 
                Wykres SVG 
                X = Przepływ [kg/h] (40, 80, 120, 160, 200) => Odwzorowane na pozycje X: 80, 200, 320, 440, 560
                Y = Opór [Pa/m] (0 - 500) => Odwzorowane na Y od 300 (dół) do 40 (góra)
            -->
            <svg viewBox="0 0 620 360" class="rk-chart-svg" preserveAspectRatio="xMidYMid meet">
                
                <!-- Siatka i osie -->
                <line x1="60" y1="300" x2="600" y2="300" class="rk-axis-line" /> <!-- Oś X -->
                <line x1="60" y1="300" x2="60" y2="30" class="rk-axis-line" />  <!-- Oś Y -->
                
                <!-- Oznaczenia osi Y (Co 100 Pa/m. 500Pa/m = 40px, 0Pa/m = 300px. Skok co 52px) -->
                <line x1="60" y1="248" x2="600" y2="248" class="rk-grid-line" />
                <text x="50" y="252" class="rk-axis-text" text-anchor="end">100</text>
                
                <line x1="60" y1="196" x2="600" y2="196" class="rk-grid-line" />
                <text x="50" y="200" class="rk-axis-text" text-anchor="end">200</text>
                
                <line x1="60" y1="144" x2="600" y2="144" class="rk-grid-line" />
                <text x="50" y="148" class="rk-axis-text" text-anchor="end">300</text>
                
                <line x1="60" y1="92" x2="600" y2="92" class="rk-grid-line" />
                <text x="50" y="96" class="rk-axis-text" text-anchor="end">400</text>
                
                <line x1="60" y1="40" x2="600" y2="40" class="rk-grid-line" />
                <text x="50" y="44" class="rk-axis-text" text-anchor="end">500</text>

                <!-- Oznaczenia osi X (40, 80, 120, 160, 200 kg/h) -->
                <text x="80" y="325" class="rk-axis-text" text-anchor="middle">40</text>
                <text x="200" y="325" class="rk-axis-text" text-anchor="middle">80</text>
                <text x="320" y="325" class="rk-axis-text" text-anchor="middle">120</text>
                <text x="440" y="325" class="rk-axis-text" text-anchor="middle">160</text>
                <text x="560" y="325" class="rk-axis-text" text-anchor="middle">200</text>

                <!-- Tytuły Osi -->
                <text x="340" y="350" class="rk-axis-title" text-anchor="middle">Przepływ masowy [kg/h]</text>
                <text x="20" y="170" class="rk-axis-title" transform="rotate(-90 20,170)" text-anchor="middle">Opór jednostkowy [Pa/m]</text>

                <!-- KRZYWA: Rura 20mm (Zielona) - Punkty: 40->2, 80->15, 120->35, 160->65, 200->100 -->
                <!-- Y = 300 - (Value * 0.52) -->
                <g id="grp-20">
                    <path class="rk-path-line rk-path-20" d="M 80 299 C 140 295, 160 292, 200 292 S 280 282, 320 282 S 400 266, 440 266 S 520 248, 560 248" />
                    <circle cx="80" cy="299" r="4" class="rk-data-point rk-pt-20" />
                    <circle cx="200" cy="292" r="4" class="rk-data-point rk-pt-20" />
                    <circle cx="320" cy="282" r="4" class="rk-data-point rk-pt-20" />
                    <circle cx="440" cy="266" r="4" class="rk-data-point rk-pt-20" />
                    <circle cx="560" cy="248" r="4" class="rk-data-point rk-pt-20" />
                </g>

                <!-- KRZYWA: Rura 17mm (Złota) - Punkty: 40->10, 80->45, 120->120, 160->230, 200->350 -->
                <g id="grp-17">
                    <path class="rk-path-line rk-path-17" d="M 80 295 C 140 285, 160 276, 200 276 S 280 237, 320 237 S 400 180, 440 180 S 520 118, 560 118" />
                    <circle cx="80" cy="295" r="4" class="rk-data-point rk-pt-17" />
                    <circle cx="200" cy="276" r="4" class="rk-data-point rk-pt-17" />
                    <circle cx="320" cy="237" r="4" class="rk-data-point rk-pt-17" />
                    <circle cx="440" cy="180" r="4" class="rk-data-point rk-pt-17" />
                    <circle cx="560" cy="118" r="4" class="rk-data-point rk-pt-17" />
                </g>

                <!-- KRZYWA: Rura 16mm (Czerwona) - Punkty: 40->15, 80->70, 120->170, 160->330, 200->480 -->
                <g id="grp-16">
                    <path class="rk-path-line rk-path-16" d="M 80 292 C 140 275, 160 263, 200 263 S 280 211, 320 211 S 400 128, 440 128 S 520 50, 560 50" />
                    <circle cx="80" cy="292" r="4" class="rk-data-point rk-pt-16" />
                    <circle cx="200" cy="263" r="4" class="rk-data-point rk-pt-16" />
                    <circle cx="320" cy="211" r="4" class="rk-data-point rk-pt-16" />
                    <circle cx="440" cy="128" r="4" class="rk-data-point rk-pt-16" />
                    <circle cx="560" cy="50" r="4" class="rk-data-point rk-pt-16" />
                </g>
                
            </svg>
        </div>
        
        <div class="rk-chart-info">
            Zwróć uwagę, jak po przekroczeniu 120 kg/h rura 16 mm wpada w strefę krytycznych oporów (>170 Pa/m), podczas gdy rura 20 mm wciąż utrzymuje parametry niemal liniowe.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-legend-btn');

    // Brak jakichkolwiek operatorów zakazanych (&& lub ||)
    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var lineId = this.getAttribute('data-line');
            var group = document.getElementById('grp-' + lineId);
            
            if (this.classList.contains('active')) {
                // Wyłączanie
                this.classList.remove('active');
                if (group !== null) {
                    group.style.opacity = '0.1';
                }
            } else {
                // Włączanie
                this.classList.add('active');
                if (group !== null) {
                    group.style.opacity = '1';
                }
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-accent: #0ea5e9;
    --rk-case-bg: #f8fafc;
    --rk-case-card: #ffffff;
    --rk-case-border: #cbd5e1;
    --rk-case-text: #334155;
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #ecfdf5;
    --rk-case-gold: #eab308;
    --rk-case-gold-bg: #fefce8;
}

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

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

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-case-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

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

.rk-case-story {
    display: flex;
    gap: 25px;
    background: #ffffff;
    padding: 25px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-case-avatar {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--rk-case-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-case-blue);
    border: 2px solid var(--rk-case-accent);
}

.rk-case-story-text {
    flex: 1;
}

.rk-case-story-text h3 {
    margin: 0 0 10px 0;
    font-size: 18px;
    color: var(--rk-case-dark);
}

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

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

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

/* Panel Interaktywny */
.rk-case-interactive {
    padding: 40px 50px;
    background: var(--rk-case-dark);
    color: #ffffff;
}

.rk-case-interactive h3 {
    text-align: center;
    margin: 0 0 30px 0;
    font-size: 22px;
    color: #ffffff;
}

.rk-case-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-tab-btn {
    flex: 1;
    background: #1e293b;
    border: 2px solid #334155;
    padding: 16px;
    border-radius: 12px;
    color: #cbd5e1;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-case-tab-btn span {
    font-size: 12px;
    font-weight: normal;
    color: #94a3b8;
}

.rk-case-tab-btn.active {
    background: var(--rk-case-blue);
    border-color: var(--rk-case-accent);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-case-tab-btn.active span {
    color: #e0f2fe;
}

/* Panele Wynikowe */
.rk-case-panel {
    display: none;
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 16px;
    padding: 30px;
    animation: fadeInCase 0.4s ease forwards;
}

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

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

.rk-panel-grid {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 25px;
    align-items: start;
}

.rk-panel-icon {
    width: 80px;
    height: 80px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-danger { background: rgba(239, 68, 68, 0.1); color: var(--rk-case-red); border: 1px solid rgba(239, 68, 68, 0.3); }
.icon-warn { background: rgba(234, 179, 8, 0.1); color: var(--rk-case-gold); border: 1px solid rgba(234, 179, 8, 0.3); }
.icon-success { background: rgba(16, 185, 129, 0.1); color: var(--rk-case-green); border: 1px solid rgba(16, 185, 129, 0.3); }

.rk-panel-content h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #ffffff;
}

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

.rk-panel-stats {
    display: flex;
    gap: 20px;
    border-top: 1px dashed #334155;
    padding-top: 20px;
}

.rk-panel-stat-item {
    flex: 1;
}

.rk-stat-lbl {
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
}

.val-red { color: var(--rk-case-red); }
.val-gold { color: var(--rk-case-gold); }
.val-green { color: var(--rk-case-green); }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive { padding: 30px 20px; }
    .rk-case-story { flex-direction: column; gap: 15px; text-align: center; }
    .rk-case-avatar { margin: 0 auto; }
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-panel-grid { grid-template-columns: 1fr; text-align: center; }
    .rk-panel-icon { margin: 0 auto; }
    .rk-panel-stats { flex-direction: column; gap: 15px; }
    .rk-case-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Studium przypadku: 16 mm czy 20 mm do pompy ciepła?",
    "description": "Analiza błędu projektowego na przykładzie inwestora z Wejherowa. Dlaczego ślepe zaufanie do jednego wymiaru rury może kosztować zniszczenie pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-casestudy",
    "name": "Analiza wariantowa doboru rur dla obiektu 150m2",
    "description": "Porównanie parametrów hydraulicznych (opór kPa, prędkość m/s) dla trzech różnych koncepcji wykonawczych systemu płaszczyznowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy rura 16mm wystarczy do pompy ciepła",
      "błędy hydrauliczne w podłogówce",
      "jaka rura do ogrzewania podłogowego",
      "hybrydowy dobór rur podłogowych",
      "studium przypadku ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Ewaluacja empiryczna i obliczeniowa (OZC + opory) 3 koncepcji: Monokultura 16mm, Monokultura 20mm oraz Układ Hybrydowy inżynierski.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Tylko 16mm generuje opór rzędu 45 kPa (krytyczne dławienie pompy).",
        "Błąd 2: Tylko 20mm we wszystkich małych strefach generuje przewymiarowanie kosztów.",
        "Rozwiązanie: Hybryda - 16mm w sypialniach (krótkie pętle), 20mm w salonie (opór poniżej 18 kPa)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-casestudy",
    "name": "Interaktywne Akta Projektowe (Wizualizator Decyzji)",
    "description": "Moduł symulacyjny pozwalający czytelnikowi sprawdzić hydrauliczne i kosztowe skutki porad powszechnie stosowanych przez wykonawców na budowach.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container">
    <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
        </div>
        <h2>Instalator A kontra Instalator B. Kto ma rację w doborze rur?</h2>
        
        <div class="rk-case-story">
            <div class="rk-case-avatar">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
            </div>
            <div class="rk-case-story-text">
                <h3>Pan Tomasz (Wejherowo, woj. pomorskie)</h3>
                <p>Pan Tomasz buduje dom o powierzchni 150 m². Źródłem ciepła ma być nowoczesna pompa ciepła. Na etapie stanu surowego zamkniętego zaprosił na budowę dwóch wykonawców, co zrodziło ogromny dylemat.</p>
                <p><strong>Wykonawca A (starszej daty):</strong> "Panie Tomaszu, dajemy wszędzie standardową rurę 16 mm. Robię tak od 20 lat, wszyscy tak robią, będzie Pan zadowolony."</p>
                <p><strong>Wykonawca B:</strong> "Absolutnie nie! Do pompy ciepła to tylko i wyłącznie rura 20 mm w całym domu, inaczej woda nie przepłynie i pompa padnie w dwa lata."</p>
                <p>Zdezorientowany Inwestor zgłosił się do Projekt-Ogrzewania.pl z prośbą o audyt i rozstrzygnięcie sporu. Prawda okazała się bolesna dla obu wykonawców.</p>
            </div>
        </div>
    </div>

    <div class="rk-case-interactive">
        <h3>Sprawdź wynik audytu dla instalacji Pana Tomasza</h3>

        <div class="rk-case-tabs">
            <button class="rk-case-tab-btn active" data-scenario="instA">
                Wizja Instalatora A
                <span>Wszędzie rura 16 mm</span>
            </button>
            <button class="rk-case-tab-btn" data-scenario="instB">
                Wizja Instalatora B
                <span>Wszędzie rura 20 mm</span>
            </button>
            <button class="rk-case-tab-btn" data-scenario="projekt">
                Werdykt Inżynierski
                <span>System hybrydowy (16+20)</span>
            </button>
        </div>

        <!-- Panel Instalator A -->
        <div class="rk-case-panel active" id="panel-instA">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon icon-danger">
                    <svg width="36" height="36" 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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-panel-content">
                    <h4>Poważny błąd hydrauliczny</h4>
                    <p>Zastosowanie rury 16 mm na otwartej przestrzeni salonu (45 m²), który przy pompie ciepła wymaga potężnego przepływu (ok. 240 kg/h na pętlę), generuje drastyczny opór. Woda zasilająca pompę "dusi się" w cienkiej rurze, co skutkuje brakiem możliwości wyregulowania układu i permanentnym niedogrzaniem salonu.</p>
                    
                    <div class="rk-panel-stats">
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Opór w salonie</div>
                            <div class="rk-stat-val val-red">45,0 kPa</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Przekroczona granica 20 kPa!</div>
                        </div>
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Koszty eksploatacji pompy</div>
                            <div class="rk-stat-val val-red">+ 35%</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Urządzenie pracuje na 100% mocy.</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel Instalator B -->
        <div class="rk-case-panel" id="panel-instB">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon icon-warn">
                    <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-panel-content">
                    <h4>Bezpiecznie, ale absurdalnie drogo</h4>
                    <p>Zastosowanie grubej rury 20 mm rozwiązuje problem hydrauliki w salonie, ale w małych sypialniach (10-12 m²) to gigantyczne marnotrawstwo. Gruba rura 20 mm jest twardsza i trudniejsza w ułożeniu (szczególnie w ciasnych łazienkach), a koszty materiału (droższe złączki, grubsza wylewka, droższa rura) niepotrzebnie windują budżet Pana Tomasza.</p>
                    
                    <div class="rk-panel-stats">
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Opór w układzie</div>
                            <div class="rk-stat-val val-gold">12,0 kPa</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Poniżej normy.</div>
                        </div>
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Zbędne koszty wdrożenia</div>
                            <div class="rk-stat-val val-gold">+ 4 500 PLN</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Przewymiarowanie materiałowe.</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel Projekt (Werdykt) -->
        <div class="rk-case-panel" id="panel-projekt">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon icon-success">
                    <svg width="36" height="36" 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>
                <div class="rk-panel-content">
                    <h4>Rozwiązanie Inżynierskie (Złoty Środek)</h4>
                    <p>W wykonanym dla Pana Tomasza profesjonalnym projekcie zastosowaliśmy podejście hybrydowe. W małych łazienkach, korytarzach i sypialniach z krótkimi pętlami (do 70m) wykorzystano elastyczną i tańszą rurę 16 mm. W potężnym salonie i kuchni (wymagających potężnego zładu wody dla pompy ciepła) wyliczyliśmy i zastosowaliśmy rurę 20 mm.</p>
                    
                    <div class="rk-panel-stats">
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Zrównoważenie układu</div>
                            <div class="rk-stat-val val-green">Idealne</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Opory we wszystkich pętlach < 18 kPa.</div>
                        </div>
                        <div class="rk-panel-stat-item">
                            <div class="rk-stat-lbl">Żywotność pompy</div>
                            <div class="rk-stat-val val-green">Maksymalna</div>
                            <div style="font-size:12px; color:#cbd5e1; margin-top:5px;">Optymalny strumień masy wody.</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    // Bezpieczny JS bez zakazanych operatorów
    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            
            // Czyszczenie aktywacji
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Ustawienie aktywności
            this.classList.add('active');
            
            var targetId = 'panel-' + this.getAttribute('data-scenario');
            var targetPanel = document.getElementById(targetId);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0369a1;
    --rk-auth-accent: #0ea5e9;
    --rk-auth-bg: #f8fafc;
    --rk-auth-card: #ffffff;
    --rk-auth-border: #cbd5e1;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-card);
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(3, 105, 161, 0.15);
    border: 1px solid var(--rk-auth-border);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-auth-header {
    padding: 35px 50px 25px;
    background: var(--rk-auth-bg);
    border-bottom: 1px solid var(--rk-auth-border);
}

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

/* Interaktywny Panel Ekspercki */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #ffffff;
}

/* Lewa kolumna: Profil */
.rk-auth-profile {
    padding: 40px 30px;
    background: var(--rk-auth-dark);
    color: #ffffff;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,0.1);
}

.rk-auth-photo-wrap {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    margin: 0 auto 20px auto;
    padding: 5px;
    background: linear-gradient(135deg, var(--rk-auth-blue) 0%, var(--rk-auth-accent) 100%);
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--rk-auth-dark);
}

.rk-auth-name {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: #ffffff;
}

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

/* Linki Social Media */
.rk-auth-socials {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(255,255,255,0.05);
    color: #cbd5e1;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-auth-social-link:hover,
.rk-auth-social-link:focus {
    background: var(--rk-auth-blue);
    color: #ffffff;
    border-color: var(--rk-auth-accent);
}

/* Prawa kolumna: Interaktywne Tabele Wiedzy */
.rk-auth-content {
    padding: 40px;
}

.rk-auth-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--rk-auth-bg);
    padding-bottom: 15px;
}

.rk-auth-tab-btn {
    background: transparent;
    border: none;
    padding: 10px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    border-radius: 8px;
}

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

/* Panele Treści (Brak animacji wg wytycznych) */
.rk-auth-panel {
    display: none;
}

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

.rk-quote-box {
    position: relative;
    padding-left: 25px;
    border-left: 4px solid var(--rk-auth-accent);
}

.rk-quote-icon {
    position: absolute;
    top: -15px;
    left: -15px;
    color: var(--rk-auth-bg);
    z-index: 0;
}

.rk-quote-text {
    font-size: 18px;
    line-height: 1.7;
    color: var(--rk-auth-dark);
    font-weight: 700;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

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

/* Tabela Standardów */
.rk-std-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-std-item {
    background: var(--rk-auth-bg);
    padding: 15px 20px;
    border-radius: 10px;
    border: 1px solid var(--rk-auth-border);
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-std-icon {
    color: var(--rk-auth-blue);
    background: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid var(--rk-auth-border);
}

.rk-std-text {
    font-size: 15px;
    color: var(--rk-auth-dark);
    font-weight: 600;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { padding: 30px 25px; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-tabs { flex-wrap: wrap; }
    .rk-auth-tab-btn { flex: 1; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o kluczowym błędzie w doborze rur",
    "description": "Filozofia inżynierska Roberta Kucharskiego, CEO Projekt-Ogrzewania.pl. Podsumowanie technicznych wymogów dla niezawodnej instalacji płaszczyznowej.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-standardy",
    "name": "Standardy Inżynierskie Projekt-Ogrzewania.pl (2026)",
    "description": "Zbiór rygorystycznych zasad projektowych i wykonawczych stosowanych przez Roberta Kucharskiego przy doborze średnic rur ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie instalacji grzewczych",
      "dobór rur podłogówka",
      "inżynieria sanitarna",
      "wytyczne projektowe ogrzewanie",
      "audyt instalacji hydraulicznej"
    ],
    "measurementTechnique": "Weryfikacja projektu instalacji na podstawie normatywnych limitów ciśnień i prędkości przepływu dla danych pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwzględny wymóg: Obliczenia OZC jako fundament doboru średnicy.",
        "Reguła graniczna: Zakaz przekraczania 20 kPa na rozdzielaczu.",
        "Priorytet materiałowy: Stosowanie rur 20mm przy niskim parametrze zasilania pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-autorytet",
    "name": "Panel Weryfikacji Kompetencji Głównego Projektanta",
    "description": "Interaktywna karta profilowa umożliwiająca użytkownikom zapoznanie się z filozofią projektową oraz weryfikację profili społecznościowych inżyniera.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container">
    <div class="rk-auth-header">
        <h2>Zdaniem eksperta: Robert Kucharski o kluczowym błędzie w doborze rur</h2>
    </div>

    <div class="rk-auth-grid">
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-auth-photo">
            </div>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">CEO & Główny Projektant</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-auth-social-link" target="_blank" rel="noopener" aria-label="Facebook">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-auth-social-link" target="_blank" rel="noopener" aria-label="LinkedIn">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" class="rk-auth-social-link" target="_blank" rel="noopener" aria-label="Platforma X">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            <div class="rk-auth-tabs" id="rkAuthTabs">
                <button class="rk-auth-tab-btn active" data-panel="cytat">Filozofia Projektowa</button>
                <button class="rk-auth-tab-btn" data-panel="standardy">Standardy Inżynierskie</button>
            </div>

            <div class="rk-auth-panel active" id="panel-cytat">
                <div class="rk-quote-box">
                    <svg class="rk-quote-icon" width="60" height="60" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                    <p class="rk-quote-text">
                        Ślepe trzymanie się rury 16 mm w całej instalacji, bez wykonania rzetelnych obliczeń oporów hydraulicznych, to najczęstszy powód, dla którego nowoczesne pompy ciepła pracują na skraju swoich fizycznych możliwości.
                    </p>
                    <p class="rk-quote-desc">
                        Beton wylewki ukrywa te błędy na lata. Jako inżynier powtarzam inwestorom jedno: rury dobieramy na podstawie twardych obliczeń OZC i parametru Delta T, a nie przyzwyczajeń wykonawców, którym wygodniej rozwija się cieńszą rurkę.
                    </p>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-standardy">
                <div class="rk-std-grid">
                    <div class="rk-std-item">
                        <div class="rk-std-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>
                        <p class="rk-std-text">OZC (Obliczeniowe Zapotrzebowanie) to punkt wyjścia.</p>
                    </div>
                    <div class="rk-std-item">
                        <div class="rk-std-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>
                        <p class="rk-std-text">Maksymalny opór pętli zawsze poniżej granicy 20 kPa.</p>
                    </div>
                    <div class="rk-std-item">
                        <div class="rk-std-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>
                        <p class="rk-std-text">Rury 20mm jako standard dla długich obiegów przy pompie ciepła.</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

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

    // Brak jakichkolwiek operatorów && oraz || dla maksymalnego bezpieczeństwa parserów
    for (var i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            
            // Usunięcie aktywnych klas ze wszystkich przycisków i paneli
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Aktywacja klikniętego przycisku
            this.classList.add('active');

            // Odnalezienie i aktywacja odpowiedniego panelu
            var targetPanelId = 'panel-' + this.getAttribute('data-panel');
            var targetPanel = document.getElementById(targetPanelId);
            
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-green: #10b981;
    --rk-err-green-bg: #ecfdf5;
    --rk-err-bg: #f8fafc;
    --rk-err-card: #ffffff;
    --rk-err-border: #cbd5e1;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-err-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-err-red);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-err-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-err-red-bg) 100%);
    border-bottom: 1px solid rgba(239, 68, 68, 0.2);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-err-red);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    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;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

/* Interaktywny Skaner Błędów */
.rk-err-body {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

.rk-err-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-err-item {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

.rk-err-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.3s;
}

.rk-err-btn:hover {
    background: var(--rk-err-red-bg);
}

.rk-err-icon-wrap {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--rk-err-red-bg);
    color: var(--rk-err-red);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-err-item.active .rk-err-icon-wrap {
    background: var(--rk-err-red);
    color: #ffffff;
    transform: rotate(180deg);
}

.rk-err-title {
    flex: 1;
}

.rk-err-title h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-err-dark);
}

.rk-err-title span {
    font-size: 13px;
    color: var(--rk-err-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-err-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-err-content-inner {
    padding: 0 25px 25px 89px; /* wyrównanie do tekstu, ominięcie ikony */
}

.rk-err-explanation {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0 0 20px 0;
    padding-top: 10px;
    border-top: 1px dashed var(--rk-err-border);
}

.rk-err-solution {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--rk-err-green-bg);
    padding: 15px 20px;
    border-radius: 8px;
    border-left: 4px solid var(--rk-err-green);
}

.rk-err-solution svg {
    color: var(--rk-err-green);
    flex-shrink: 0;
    margin-top: 2px;
}

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

.rk-err-explanation a {
    color: var(--rk-err-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-err-explanation a:hover {
    border-color: var(--rk-err-blue);
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-body { padding: 30px 20px; }
    .rk-err-btn { padding: 15px; gap: 15px; }
    .rk-err-icon-wrap { width: 36px; height: 36px; }
    .rk-err-title h3 { font-size: 16px; }
    .rk-err-content-inner { padding: 0 15px 20px 15px; } /* Usunięcie lewego marginesu na mobile */
    .rk-err-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Najczęstsze błędy przy doborze średnic rur ogrzewania podłogowego",
    "description": "Lista 5 krytycznych błędów wykonawczych: od pętli 150m dla rury 16mm po brak projektu hydraulicznego. Uniknij awarii pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-bledy",
    "name": "Katalog błędów wykonawczych instalacji płaszczyznowych",
    "description": "Baza najczęstszych usterek projektowych i wykonawczych wpływających na drastyczny wzrost oporów hydraulicznych i spadek wydajności układu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy w ogrzewaniu podłogowym",
      "za długa pętla podłogówki 16mm",
      "brak projektu hydraulicznego",
      "różnice długości pętli rozdzielacz",
      "złe rury do pompy ciepła"
    ],
    "measurementTechnique": "Identyfikacja odchyleń od normy PN-EN 1264 w zakresie ciśnień, długości obwodów oraz równoważenia na belkach rozdzielacza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stosowanie rury 16mm przy przepływach wykraczających poza 2 l/min.",
        "Przekraczanie długości 120m dla pojedynczej pętli (skutkuje niedogrzaniem).",
        "Asymetria pętli powyżej 30m na jednym rozdzielaczu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-skaner",
    "name": "Interaktywny Skaner Błędów Instalacyjnych",
    "description": "Moduł typu akordeon pozwalający użytkownikom na szybką weryfikację propozycji wykonawców z inżynierskimi standardami bezpieczeństwa.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Czarna lista inwestora
        </div>
        <h2>Najczęstsze błędy przy doborze rur</h2>
        <p>Betonowa wylewka wybacza wiele błędów wizualnych, ale fizyka przepływów nie wybacza niczego. Zobacz 5 najczęstszych „grzechów głównych” hydraulików, które po uruchomieniu instalacji prowadzą do nierównomiernego ogrzewania, szumów i gigantycznych rachunków za prąd.</p>
    </div>

    <div class="rk-err-body">
        <div class="rk-err-accordion" id="rkErrAccordion">
            
            <!-- Błąd 1 -->
            <div class="rk-err-item">
                <button class="rk-err-btn">
                    <div class="rk-err-icon-wrap">
                        <svg width="24" height="24" 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>
                    <div class="rk-err-title">
                        <h3>Cienka rura 16 mm do pompy ciepła</h3>
                        <span>Błąd nr 1: Ślepe przyzwyczajenie</span>
                    </div>
                </button>
                <div class="rk-err-content">
                    <div class="rk-err-content-inner">
                        <p class="rk-err-explanation">
                            Pompa ciepła pracuje wydajnie przy małej różnicy temperatur (ΔT = 5K), co wymusza przetłoczenie dwukrotnie większej masy wody niż kocioł gazowy. Użycie wszędzie rury 16 mm drastycznie dławi system.
                        </p>
                        <div class="rk-err-solution">
                            <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>
                            <p><strong>Standard Inżynierski:</strong> W salonach i dużych przestrzeniach otwarych napędzanych pompą ciepła projektuj pętle z wykorzystaniem grubszej rury 20x2.0 mm.</p>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Błąd 2 -->
            <div class="rk-err-item">
                <button class="rk-err-btn">
                    <div class="rk-err-icon-wrap">
                        <svg width="24" height="24" 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>
                    <div class="rk-err-title">
                        <h3>Rozwijanie pętli na 130–150 metrów</h3>
                        <span>Błąd nr 2: Oszczędzanie na rozdzielaczu</span>
                    </div>
                </button>
                <div class="rk-err-content">
                    <div class="rk-err-content-inner">
                        <p class="rk-err-explanation">
                            Wykonawcy często robią <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długie pętle podłogówki</a>, aby oszczędzić na wielkości rozdzielacza i ilości rury dobiegowej. Dla rury 16 mm odcinek 150m oznacza przekroczenie 50-60 kPa oporu! Woda ledwo z niej kapie.
                        </p>
                        <div class="rk-err-solution">
                            <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>
                            <p><strong>Standard Inżynierski:</strong> Trzymaj się żelaznej reguły: dla rury 16 mm długość maksymalna to 90–100 m. Jeśli masz większe pomieszczenie – podziel je na dwa odrębne obiegi grzewcze.</p>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Błąd 3 -->
            <div class="rk-err-item">
                <button class="rk-err-btn">
                    <div class="rk-err-icon-wrap">
                        <svg width="24" height="24" 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>
                    <div class="rk-err-title">
                        <h3>Asymetria pętli na poziomie 30–50 metrów</h3>
                        <span>Błąd nr 3: Brak balansu hydraulicznego</span>
                    </div>
                </button>
                <div class="rk-err-content">
                    <div class="rk-err-content-inner">
                        <p class="rk-err-explanation">
                            Gdy pod jeden <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">rozdzielacz</a> podpinasz pętlę łazienkową o długości 40 m oraz pętlę salonową 110 m, woda zawsze wybierze drogę najmniejszego oporu. Salon będzie wiecznie zimny.
                        </p>
                        <div class="rk-err-solution">
                            <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>
                            <p><strong>Standard Inżynierski:</strong> Pilnuj, aby różnica w długości pętli zasilanych z jednej belki rozdzielacza nie przekraczała 10–15%. Wymaga to mądrego poprowadzenia stref zasilających.</p>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Błąd 4 -->
            <div class="rk-err-item">
                <button class="rk-err-btn">
                    <div class="rk-err-icon-wrap">
                        <svg width="24" height="24" 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>
                    <div class="rk-err-title">
                        <h3>Rozkładanie rur "z głowy" (brak projektu)</h3>
                        <span>Błąd nr 4: Zgadywanie strat ciepła</span>
                    </div>
                </button>
                <div class="rk-err-content">
                    <div class="rk-err-content-inner">
                        <p class="rk-err-explanation">
                            Wykonawca mówi "dajemy wszędzie co 15 cm i będzie dobrze". Tymczasem duże okna w salonie wymagają potężnej mocy (strefy brzegowe co 10 cm), a dobrze ocieplona sypialnia może wymagać rzadszego rozstawu.
                        </p>
                        <div class="rk-err-solution">
                            <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>
                            <p><strong>Standard Inżynierski:</strong> <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Profesjonalny projekt z obliczeniami OZC</a> wyznacza dokładne zapotrzebowanie każdego pomieszczenia. To nie jest koszt, to inwestycja chroniąca Twój kapitał.</p>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Błąd 5 -->
            <div class="rk-err-item">
                <button class="rk-err-btn">
                    <div class="rk-err-icon-wrap">
                        <svg width="24" height="24" 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>
                    <div class="rk-err-title">
                        <h3>Dobór rur wyłącznie według najniższej ceny</h3>
                        <span>Błąd nr 5: Ukryte koszty tanich materiałów</span>
                    </div>
                </button>
                <div class="rk-err-content">
                    <div class="rk-err-content-inner">
                        <p class="rk-err-explanation">
                            Kupowanie rur bez certyfikowanej <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">bariery antydyfuzyjnej EVOH</a> lub no-name'ów z marketu budowlanego. Skutkuje to przenikaniem tlenu do instalacji, korozją rozdzielaczy i zatykaniem się wymiennika w pompie ciepła.
                        </p>
                        <div class="rk-err-solution">
                            <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>
                            <p><strong>Standard Inżynierski:</strong> W betonie zalewasz element, którego nie wymienisz przez 50 lat. Wybieraj wyłącznie rury wielowarstwowe z pełną barierą tlenową o potwierdzonych parametrach technicznych.</p>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var errorBtns = document.querySelectorAll('.rk-err-btn');
    var errorItems = document.querySelectorAll('.rk-err-item');

    // Bezpieczna pętla bez zakazanych znaków logicznych
    for (var i = 0; i < errorBtns.length; i++) {
        errorBtns[i].addEventListener('click', function() {
            var parentItem = this.parentElement;
            var isActive = false;

            if (parentItem.classList.contains('active')) {
                isActive = true;
            }

            // Zamknięcie wszystkich paneli
            for (var j = 0; j < errorItems.length; j++) {
                errorItems[j].classList.remove('active');
                var content = errorItems[j].querySelector('.rk-err-content');
                if (content !== null) {
                    content.style.maxHeight = null;
                }
            }

            // Otwarcie jeśli był zamknięty
            if (isActive === false) {
                parentItem.classList.add('active');
                var myContent = parentItem.querySelector('.rk-err-content');
                if (myContent !== null) {
                    myContent.style.maxHeight = myContent.scrollHeight + "px";
                }
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0369a1;
    --rk-faq-light: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-hover: #f1f5f9;
    --rk-faq-accent: #0ea5e9;
    --rk-faq-text: #334155;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, blinkmacsystemfont, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(3, 105, 161, 0.12);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

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

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

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

.rk-faq-body {
    padding: 30px 50px;
    background: var(--rk-faq-light);
}

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

.rk-accordion-item:hover {
    border-color: var(--rk-faq-accent);
    box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.1);
}

.rk-accordion-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.3s;
}

.rk-accordion-btn:hover {
    background: var(--rk-faq-hover);
}

.rk-accordion-btn h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    padding-right: 20px;
    line-height: 1.4;
}

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

.rk-accordion-btn.active .rk-faq-icon {
    transform: rotate(180deg);
    background: var(--rk-faq-blue);
    color: #ffffff;
}

.rk-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-accordion-inner {
    padding: 0 30px 24px 30px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    border-top: 1px dashed transparent;
}

.rk-accordion-btn.active + .rk-accordion-content .rk-accordion-inner {
    border-top-color: var(--rk-faq-border);
    padding-top: 20px;
}

.rk-accordion-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 rgba(3, 105, 161, 0.2);
    transition: all 0.2s;
}

.rk-accordion-inner a:hover {
    box-shadow: inset 0 -10px 0 rgba(3, 105, 161, 0.2);
    color: var(--rk-faq-dark);
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 25px; }
    .rk-faq-body { padding: 25px 20px; }
    .rk-accordion-btn { padding: 20px; }
    .rk-accordion-btn h3 { font-size: 16px; }
    .rk-accordion-inner { padding: 0 20px 20px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące średnic rur",
    "description": "Zbiór najważniejszych inżynierskich pytań i odpowiedzi na temat rur 16 mm i 20 mm, pomp ciepła, oporów hydraulicznych i prędkości przepływu wody.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy rura 16x2,0 mm jest zawsze wystarczająca do pompy ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, w przypadku dużych pętli lub salonów o dużej powierzchni, rura 16 mm może generować zbyt wysokie opory, dlatego zalecamy rurę 20 mm."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest maksymalna długość pętli dla rury 16 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla zapewnienia swobodnej regulacji hydraulicznej, maksymalna długość pętli nie powinna przekraczać 90–100 metrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można łączyć rury o różnych średnicach w jednej instalacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, stosowanie różnych średnic w zależności od strefy (np. 20 mm w salonie, 16 mm w małych sypialniach) jest praktyką profesjonalną i zalecaną."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie są dopuszczalne opory hydrauliczne pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sumaryczne opory jednej pętli nie powinny przekraczać 20 kPa, aby zachować możliwość sprawnej regulacji przepływu na rozdzielaczu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy prędkość wody powyżej 0,6 m/s jest szkodliwa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przekroczenie prędkości 0,6 m/s powoduje szumy hydrauliczne w instalacji i przyspiesza erozję wewnętrzną rur."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-faq",
    "name": "Baza wiedzy inżynierskiej: Parametry graniczne dla rur grzewczych",
    "description": "Zestawienie parametrów granicznych takich jak maksymalna prędkość (0.6 m/s), opory (20 kPa) i długości pętli rur ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dopuszczalne opory hydrauliczne",
      "maksymalna prędkość wody w podłogówce",
      "rura 16 czy 20 mm",
      "maksymalna długość pętli rury 16 mm",
      "regulacja przepływu na rozdzielaczu"
    ],
    "measurementTechnique": "Określenie krytycznych wartości brzegowych w projektowaniu instalacji OZE (np. ciśnienie w kPa, prędkość w m/s).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór graniczny pętli: Maksymalnie 20 kPa.",
        "Prędkość graniczna przepływu: Maksymalnie 0,6 m/s, aby uniknąć szumów i erozji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-faq",
    "name": "Interaktywny Panel FAQ Hydrauliki",
    "description": "Dynamiczny komponent przeglądarkowy pozwalający inwestorom na błyskawiczne odnajdywanie precyzyjnych parametrów hydraulicznych systemu grzewczego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p>Ekspercka wiedza techniczna podana bez lania wody. Kliknij pytanie, aby poznać odpowiedź.</p>
    </div>

    <div class="rk-faq-body">
        
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <h3>Czy rura 16x2,0 mm jest zawsze wystarczająca do pompy ciepła?</h3>
                <div class="rk-faq-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-accordion-content">
                <div class="rk-accordion-inner">
                    Nie, w przypadku dużych pętli lub salonów o dużej powierzchni, rura 16 mm może generować zbyt wysokie opory, dlatego zalecamy rurę 20 mm. Więcej na ten temat znajdziesz w artykule o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur przy pompie ciepła</a>.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <h3>Jaka jest maksymalna długość pętli dla rury 16 mm?</h3>
                <div class="rk-faq-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-accordion-content">
                <div class="rk-accordion-inner">
                    Dla zapewnienia swobodnej regulacji hydraulicznej, <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli</a> nie powinna przekraczać 90–100 metrów.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <h3>Czy można łączyć rury o różnych średnicach w jednej instalacji?</h3>
                <div class="rk-faq-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-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, stosowanie różnych średnic w zależności od strefy (np. 20 mm w salonie, 16 mm w małych sypialniach) jest praktyką profesjonalną i zalecaną przy zaawansowanym inżynierskim podejściu.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <h3>Jakie są dopuszczalne opory hydrauliczne pętli?</h3>
                <div class="rk-faq-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-accordion-content">
                <div class="rk-accordion-inner">
                    Sumaryczne opory jednej pętli nie powinny przekraczać 20 kPa, aby zachować możliwość sprawnej regulacji przepływu na zaworach, w które wyposażony jest <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do podłogówki</a>.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <h3>Czy prędkość wody powyżej 0,6 m/s jest szkodliwa?</h3>
                <div class="rk-faq-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-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, przekroczenie prędkości 0,6 m/s powoduje szumy hydrauliczne w instalacji i znacznie przyspiesza erozję wewnętrzną zastosowanych rur grzewczych.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var accordionBtns = document.querySelectorAll('.rk-accordion-btn');

    accordionBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var isActive = this.classList.contains('active');
            
            // Zamykanie wszystkich otwartych paneli (opcjonalne - dla zachowania porządku)
            accordionBtns.forEach(function(otherBtn) {
                otherBtn.classList.remove('active');
                var otherPanel = otherBtn.nextElementSibling;
                otherPanel.style.maxHeight = null;
            });

            // Jeśli panel nie był aktywny, otwórz go
            if (isActive === false) {
                this.classList.add('active');
                var panel = this.nextElementSibling;
                panel.style.maxHeight = panel.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-accent: #0ea5e9;
    --rk-dl-bg: #f8fafc;
    --rk-dl-card: #ffffff;
    --rk-dl-border: #cbd5e1;
    --rk-dl-text: #334155;
    --rk-dl-muted: #64748b;
    --rk-dl-red: #ef4444;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-card);
    border-radius: 16px;
    border: 1px solid var(--rk-dl-blue);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-dl-header {
    padding: 35px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-accent);
}

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

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

/* Grid Główny */
.rk-dl-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-dl-card);
}

/* Lewa Kolumna - Podgląd Infografiki */
.rk-dl-preview-col {
    padding: 30px;
    background: var(--rk-dl-bg);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumb-wrap {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 8px;
    padding: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-dl-thumb {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    border: 1px dashed var(--rk-dl-muted);
}

.rk-dl-thumb-label {
    margin-top: 15px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-dl-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
}

/* Prawa Kolumna - Akcje i Interfejs */
.rk-dl-actions-col {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-dl-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    border-bottom: 2px solid var(--rk-dl-bg);
    padding-bottom: 15px;
}

.rk-dl-tab-btn {
    background: transparent;
    border: 1px solid transparent;
    padding: 10px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dl-muted);
    cursor: pointer;
    border-radius: 8px;
}

/* Brak animacji wg wytycznych - zmiana stanu jest natychmiastowa */
.rk-dl-tab-btn:hover {
    background: var(--rk-dl-bg);
    color: var(--rk-dl-dark);
}

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

/* Panele */
.rk-dl-panel {
    display: none;
    flex: 1;
}

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

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

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

/* Przyciski Pobierania */
.rk-dl-btn-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 25px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    border: 2px solid transparent;
}

.rk-dl-btn-primary {
    background: var(--rk-dl-blue);
    color: #ffffff;
}

.rk-dl-btn-primary:hover {
    background: #0369a1;
}

.rk-dl-btn-secondary {
    background: #ffffff;
    color: var(--rk-dl-dark);
    border-color: var(--rk-dl-border);
}

.rk-dl-btn-secondary:hover {
    background: var(--rk-dl-bg);
    border-color: var(--rk-dl-muted);
}

/* Notka Prawna */
.rk-dl-copyright {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px dashed var(--rk-dl-border);
    font-size: 12px;
    line-height: 1.5;
    color: var(--rk-dl-muted);
}

.rk-dl-copyright strong {
    color: var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-grid { grid-template-columns: 1fr; }
    .rk-dl-preview-col { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 25px; }
    .rk-dl-actions-col { padding: 25px; }
    .rk-dl-header { padding: 25px; }
    .rk-dl-header h2 { font-size: 22px; }
    .rk-dl-tabs { flex-direction: column; }
    .rk-dl-tab-btn { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Materiały do pobrania: Średnice rur w pigułce",
    "description": "Autorska infografika oraz techniczny plik PDF zestawiający kluczowe parametry rur wielowarstwowych stosowanych w inżynierii ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Srednice-rur-w-ogrzewaniu-podlogowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset-materialy",
    "name": "Infografika techniczna: Średnice rur w ogrzewaniu podłogowym",
    "description": "Dokumentacja wideo/graficzna i plik PDF do pobrania, zawierający ustandaryzowane wymiary, spadki ciśnień i długości graniczne obiegów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "tabela średnic rur pdf",
      "parametry instalacyjne do druku",
      "projekt podłogówki schemat",
      "wymiarowanie pętli grzewczych pdf"
    ],
    "measurementTechnique": "Wizualne odwzorowanie twardych danych liczbowych z normy PN-EN 1264 w formacie WebP oraz ustrukturyzowanym dokumencie PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik PDF: Gotowy do druku schemat do weryfikacji pracy instalatora.",
        "Obraz WebP: Szybki podgląd przeglądarkowy kluczowych różnic między rurą 16 a 20 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp-biblioteka",
    "name": "Interaktywna Biblioteka Materiałów HVAC",
    "description": "Natywny moduł interfejsu umożliwiający użytkownikowi podgląd i bezpieczne pobieranie autorskich materiałów inżynierskich bezpośrednio ze strony.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container">
    <div class="rk-dl-header">
        <h2>Materiały do pobrania: Średnice rur w pigułce</h2>
        <p>Przygotowałem dla Ciebie czytelną infografikę oraz dokument PDF, które podsumowują całą wiedzę inżynierską z tego artykułu. Idealne rozwiązanie do zapisania na smartfonie lub wydrukowania przed rozmową z wykonawcą.</p>
    </div>

    <div class="rk-dl-grid">
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Srednice-rur-w-ogrzewaniu-podlogowym.webp" alt="Podgląd infografiki - Średnice rur w ogrzewaniu podłogowym" class="rk-dl-thumb">
            </div>
            <div class="rk-dl-thumb-label">Podgląd dokumentu</div>
        </div>

        <div class="rk-dl-actions-col">
            
            <div class="rk-dl-tabs">
                <button class="rk-dl-tab-btn active" data-dl="pliki">Pliki do pobrania</button>
                <button class="rk-dl-tab-btn" data-dl="licencja">Zasady korzystania</button>
            </div>

            <div class="rk-dl-panel active" id="dl-pliki">
                <h3>Wybierz format pliku</h3>
                <p>Dokument PDF świetnie sprawdzi się do druku (jest wektorowy i nie traci na jakości). Infografika WebP to najlepszy format do szybkiego wysłania instalatorowi w wiadomości MMS lub na WhatsApp.</p>
                
                <div class="rk-dl-btn-group">
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Srednice-rur-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-primary">
                        <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 dokument (PDF)
                    </a>
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Srednice-rur-w-ogrzewaniu-podlogowym.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-secondary">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        Otwórz infografikę (WebP)
                    </a>
                </div>
            </div>

            <div class="rk-dl-panel" id="dl-licencja">
                <h3>Prawa autorskie</h3>
                <p>Przygotowanie tych wyliczeń oraz oprawy graficznej wymagało wielu godzin pracy. Zezwalam na bezpłatne korzystanie z materiałów na użytek własny oraz przesyłanie ich wykonawcom w celu edukacyjnym.</p>
                <p style="color: var(--rk-dl-red); font-weight: 700;">
                    Zabrania się usuwania logotypu Projekt-Ogrzewania.pl oraz edytowania zawartości pliku.
                </p>
            </div>

            <div class="rk-dl-copyright">
                <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
                Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var dlTabs = document.querySelectorAll('.rk-dl-tab-btn');
    var dlPanels = document.querySelectorAll('.rk-dl-panel');

    // Kod pozbawiony znaków && oraz || dla bezpieczeństwa strukturalnego
    for (var i = 0; i < dlTabs.length; i++) {
        dlTabs[i].addEventListener('click', function() {
            
            // Usunięcie klasy active z przycisków
            for (var j = 0; j < dlTabs.length; j++) {
                dlTabs[j].classList.remove('active');
            }
            
            // Usunięcie klasy active z paneli
            for (var k = 0; k < dlPanels.length; k++) {
                dlPanels[k].classList.remove('active');
            }

            // Ustawienie aktywności
            this.classList.add('active');
            
            var targetId = 'dl-' + this.getAttribute('data-dl');
            var targetPanel = document.getElementById(targetId);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-base-dark: #0f172a;
    --rk-base-blue: #0369a1;
    --rk-accent-blue: #0ea5e9;
    --rk-light-bg: #f8fafc;
    --rk-alert-red: #dc2626;
    --rk-success-green: #059669;
    --rk-border: #cbd5e1;
    --rk-tag-bg: #e0f2fe;
    --rk-tag-text: #0284c7;
}

.rk-summary-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, blinkmacsystemfont, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(3, 105, 161, 0.15);
    border: 1px solid var(--rk-accent-blue);
    overflow: hidden;
}

/* Sekcja Treści */
.rk-summary-content {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--rk-light-bg));
}

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

.rk-summary-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-base-blue);
    margin: 25px 0 15px 0;
}

.rk-summary-content p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 20px;
}

.rk-summary-content strong {
    color: var(--rk-base-dark);
    font-weight: 800;
}

.rk-summary-content a {
    color: var(--rk-accent-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(14, 165, 233, 0.3);
    transition: all 0.2s;
}

.rk-summary-content a:hover {
    border-bottom-color: var(--rk-accent-blue);
}

/* Tagi Długi Ogon */
.rk-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px dashed var(--rk-border);
}

.rk-mat-tag {
    background: var(--rk-tag-bg);
    color: var(--rk-tag-text);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.3s;
}

.rk-mat-tag:hover {
    background: var(--rk-base-blue);
    color: #ffffff;
}

/* Interaktywny Moduł (Dashboard) */
.rk-dashboard-widget {
    background: var(--rk-base-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-dash-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-dash-header h4 {
    margin: 0;
    font-size: 22px;
    color: #ffffff;
}

.rk-dash-controls {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-dash-btn {
    flex: 1;
    padding: 18px;
    background: rgba(255,255,255,0.05);
    border: 2px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    color: #ffffff;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-dash-btn.active-pro {
    background: rgba(5, 150, 105, 0.2);
    border-color: var(--rk-success-green);
    color: #34d399;
}

.rk-dash-btn.active-amateur {
    background: rgba(220, 38, 38, 0.2);
    border-color: var(--rk-alert-red);
    color: #f87171;
}

/* Wykres / Liczniki SVG */
.rk-dash-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #1e293b;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid #334155;
    align-items: center;
}

.rk-gauge-box {
    text-align: center;
}

.rk-gauge-svg {
    width: 100%;
    max-width: 140px;
    margin: 0 auto 15px auto;
}

.gauge-bg { fill: none; stroke: #334155; stroke-width: 12; stroke-linecap: round; }
.gauge-val { fill: none; stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s; stroke-dasharray: 0, 100; }
.state-pro .gauge-val { stroke: var(--rk-success-green); stroke-dasharray: 25, 100; } /* Niskie opory */
.state-amateur .gauge-val { stroke: var(--rk-alert-red); stroke-dasharray: 90, 100; } /* Ekstremalne opory */

.rk-dash-stats h5 { margin: 0 0 10px 0; font-size: 18px; color: #94a3b8; }
.rk-dash-stats .stat-value { font-size: 32px; font-weight: 900; margin-bottom: 5px; transition: color 0.3s; }
.rk-dash-stats .stat-desc { font-size: 14px; color: #cbd5e1; line-height: 1.5; }

.state-pro .stat-value { color: var(--rk-success-green); }
.state-amateur .stat-value { color: var(--rk-alert-red); }

/* Wielkie CTA */
.rk-cta-final {
    padding: 50px;
    text-align: center;
    background: var(--rk-light-bg);
}

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

.rk-btn-epic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-base-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 15px 30px -10px rgba(3, 105, 161, 0.5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-epic:hover {
    transform: translateY(-4px);
    background: #0284c7;
    box-shadow: 0 20px 40px -10px rgba(3, 105, 161, 0.6);
}

@media (max-width: 768px) {
    .rk-summary-content, .rk-dashboard-widget, .rk-cta-final { padding: 30px 20px; }
    .rk-dash-controls { flex-direction: column; gap: 15px; } /* Stack vertically on mobile, no horizontal scroll */
    .rk-dash-display { grid-template-columns: 1fr; gap: 20px; text-align: center; }
    .rk-summary-content h2 { font-size: 24px; }
    .rk-btn-epic { 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/srednice-rur-w-ogrzewaniu-podlogowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Podsumowanie: Świadomy dobór średnicy rur to gwarancja niskich rachunków",
    "description": "Profesjonalne obliczenia hydrauliczne i dobór rur 16 mm lub 20 mm decydują o żywotności pompy ciepła i kosztach ogrzewania. Uniknij błędów instalatorów robionych na oko.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-19",
    "dateModified": "2026-07-19"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset",
    "name": "Porównanie oporów hydraulicznych rur w podłogówce 2026",
    "description": "Zestawienie parametrów technicznych pokazujące drastyczny wzrost oporów przy zastosowaniu rury 16 mm na zbyt długich odcinkach w stosunku do mieszanych obiegów inżynierskich.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opory hydrauliczne w podłogówce",
      "rura 16 czy 20 do ogrzewania podłogowego",
      "dobór pompy obiegowej",
      "optymalny przepływ w ogrzewaniu podłogowym",
      "obliczenia hydrauliczne podłogówki"
    ],
    "measurementTechnique": "Symulacja strat ciśnienia (kPa) i prędkości przepływu dla pętli pow. 100 m przy różnych przekrojach z uwzględnieniem mocy pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Model Na Oko: Zastosowanie wyłącznie rury 16 mm powoduje opory powyżej 60 kPa, dławiąc pompę obiegową.",
        "Model Inżynierski: Dobór średnic (mix 16/20 mm) obniża straty poniżej 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp",
    "name": "Symulator Obciążenia Pompy Obiegowej (Hydraulika)",
    "description": "Interaktywny wizualizator przedstawiający wpływ wyboru średnicy rury (16 mm vs 20 mm) i długości pętli na wysilenie instalacji oraz pobór prądu przez urządzenie grzewcze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-module">
    <div class="rk-summary-content">
        <h2>Podsumowanie: Świadomy dobór średnicy rur to gwarancja niskich rachunków</h2>
        <p>Świadomy dobór średnic rur to absolutny fundament i inwestycja, która zwraca się nie tylko w postaci <strong>wieloletniej trwałości komponentów</strong>, ale przede wszystkim w ekstremalnie niskich rachunkach za ogrzewanie. Jako praktyk na budowach widzę to codziennie: inwestorzy wydają dziesiątki tysięcy na zaawansowaną pompę ciepła, a następnie pozwalają, aby wykonawca dławił jej potencjał, rozkładając kilometry rury „na oko”.</p>
        
        <h3>Koniec z montażem „na oko” – dlaczego inżynieria wygrywa?</h3>
        <p>Zbyt mały przekrój rury na długich pętlach powoduje gigantyczny wzrost oporów hydraulicznych. W efekcie Twoja <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompa obiegowa</a> musi pracować na maksymalnych obrotach, zużywając znacznie więcej prądu i skracając swoją żywotność. Z kolei profesjonalne, inżynierskie obliczenia hydrauliczne pozwalają precyzyjnie zbilansować system – tak, aby woda płynęła swobodnie, a posadzka oddawała ciepło równomiernie, zgodnie z rygorystycznymi standardami nowoczesnego, energooszczędnego budownictwa.</p>
        
        <div class="rk-tags-container">
            <span class="rk-mat-tag"># średnica rury do pompy ciepła</span>
            <span class="rk-mat-tag"># opory hydrauliczne w podłogówce</span>
            <span class="rk-mat-tag"># rura 16 czy 20 do ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego cena</span>
            <span class="rk-mat-tag"># źle dobrane rury w podłogówce objawy</span>
            <span class="rk-mat-tag"># jak zmniejszyć rachunki za prąd z pompą ciepła</span>
            <span class="rk-mat-tag"># obliczenia hydrauliczne podłogówki</span>
            <span class="rk-mat-tag"># optymalny przepływ w ogrzewaniu podłogowym</span>
            <span class="rk-mat-tag"># wydajność pompy obiegowej podłogówka</span>
            <span class="rk-mat-tag"># koszt poprawek po zalaniu wylewki</span>
        </div>
    </div>

    <div class="rk-dashboard-widget">
        <div class="rk-dash-header">
            <h4>Symulator Obciążenia Instalacji Hydraulicznej</h4>
        </div>
        
        <div class="rk-dash-controls" id="rkPipeControls">
            <button class="rk-dash-btn active-pro" data-mode="pro">
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Projekt Inżynierski OZC
                <span style="font-size: 12px; font-weight: normal; opacity: 0.8;">Obliczone przekroje rur</span>
            </button>
            <button class="rk-dash-btn" data-mode="amateur">
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Montaż "Na Oko"
                <span style="font-size: 12px; font-weight: normal; opacity: 0.8;">Wszędzie rura 16 mm</span>
            </button>
        </div>

        <div class="rk-dash-display state-pro" id="rkDashDisplay">
            <div class="rk-gauge-box">
                <svg class="rk-gauge-svg" viewBox="0 0 100 50">
                    <path class="gauge-bg" d="M 10 45 A 40 40 0 0 1 90 45" />
                    <path class="gauge-val" d="M 10 45 A 40 40 0 0 1 90 45" pathLength="100" />
                </svg>
            </div>
            <div class="rk-dash-stats" id="rkDashStats">
                <h5>Obciążenie pompy obiegowej</h5>
                <div class="stat-value">Poniżej 20 kPa</div>
                <div class="stat-desc">Idealne środowisko pracy. System zrównoważony hydraulicznie. Pompa pracuje na niskim biegu, minimalizując zużycie energii i maksymalizując współczynnik COP pompy ciepła.</div>
            </div>
        </div>
    </div>

    <div class="rk-cta-final">
        <h3>Nie ryzykuj setek tysięcy na błędach instalatorów</h3>
        <p style="color: #64748b; font-size: 16px; margin-bottom: 30px;">
            Jeśli chcesz mieć absolutną pewność, że Twoja instalacja będzie działać zgodnie z zasadami rzemiosła, a wybrane średnice rur uchronią Cię przed drogimi usterkami – przestań zgadywać.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-epic">
            ZBUDUJ SWOJĄ WIEDZĘ INŻYNIERSKĄ
            <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() {
    const buttons = document.querySelectorAll('.rk-dash-btn');
    const displayArea = document.getElementById('rkDashDisplay');
    const statsArea = document.getElementById('rkDashStats');

    buttons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zmiana przycisków
            buttons.forEach(function(b) {
                b.classList.remove('active-pro');
                b.classList.remove('active-amateur');
            });
            
            let mode = this.getAttribute('data-mode');
            
            if (mode === 'pro') {
                this.classList.add('active-pro');
                displayArea.className = 'rk-dash-display state-pro';
                statsArea.innerHTML = `
                    <h5>Opory hydrauliczne pętli</h5>
                    <div class="stat-value">Poniżej 20 kPa</div>
                    <div class="stat-desc">Idealne środowisko pracy. Zastosowanie odpowiednich średnic rur zapewnia zrównoważony system. Pompa obiegowa pracuje lekko, minimalizując zużycie prądu w domu.</div>
                `;
            } else {
                this.classList.add('active-amateur');
                displayArea.className = 'rk-dash-display state-amateur';
                statsArea.innerHTML = `
                    <h5>Opory hydrauliczne pętli</h5>
                    <div class="stat-value">Powyżej 65 kPa</div>
                    <div class="stat-desc">Krytyczne dławienie systemu! Zbyt wąska rura 16 mm na pętlach o dużej długości wymusza ekstremalną pracę pompy. Oczekuj niedogrzanych stref i wyższych rachunków za prąd.</div>
                `;
            }
        });
    });
});
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

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

  /* RWD - Mobile (układ pionowy, akordeon, brak przycisków obok siebie) */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>


<p>Artykuł <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">Średnice rur w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego z pompą ciepła.</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 09:42:12 +0000</pubDate>
				<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[budownictwo nowoczesne]]></category>
		<category><![CDATA[chłodzenie płaszczyznowe]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje hvac]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[niskie parametry zasilania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3414</guid>

					<description><![CDATA[<p>Wybór systemu grzewczego to jedna z najważniejszych decyzji podczas budowy nowoczesnego domu. Samo urządzenie to jednak tylko połowa sukcesu. Aby instalacja była naprawdę energooszczędna, niezbędny jest rzetelny i precyzyjnie wykonany projekt ogrzewania podłogowego z pompą ciepła, który połączy fizykę budowli z charakterystyką pracy inwertera. W tym artykule wchodzimy głęboko w techniczne aspekty synergii systemów niskotemperaturowych. Analizujemy wpływ temperatury zasilania na współczynnik COP, wyjaśniamy znaczenie bezwładności jastrychu dla żywotności sprężarki oraz podpowiadamy, jak uniknąć błędów hydraulicznych, które mogą drastycznie podnieść Twoje rachunki za prąd. To obowiązkowa lektura dla każdego świadomego inwestora.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-primary: #06b6d4; /* Cyjan/Teal - idealny do tematów pomp ciepła */
    --rk-intro-primary-glow: rgba(6, 182, 212, 0.4);
    --rk-intro-success: #10b981;
    --rk-intro-danger: #f43f5e;
    --rk-intro-text: #e2e8f0;
    --rk-intro-muted: #94a3b8;
    --rk-intro-bg: #ffffff;
}

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

/* Sekcja Wstępu - Ciemny motyw dla kontrastu */
.rk-intro-hero {
    background: linear-gradient(145deg, var(--rk-intro-dark), var(--rk-intro-card));
    padding: 50px 45px;
    color: #ffffff;
    position: relative;
}

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

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

.rk-intro-title span {
    color: var(--rk-intro-primary);
}

.rk-intro-text-block {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-intro-text);
}

.rk-intro-text-block p {
    margin: 0 0 15px 0;
}

.rk-intro-text-block strong {
    color: #ffffff;
    font-weight: 800;
}

.rk-intro-text-block a {
    color: var(--rk-intro-primary);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--rk-intro-primary);
    transition: all 0.3s;
}

.rk-intro-text-block a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

/* Interaktywny Dashboard */
.rk-intro-dashboard {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-intro-dash-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
    gap: 20px;
}

.rk-intro-dash-title h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-dash-title p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-intro-muted);
}

/* Przełącznik (Toggle) */
.rk-toggle-wrapper {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 4px;
    position: relative;
}

.rk-toggle-btn {
    padding: 10px 20px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-muted);
    cursor: pointer;
    border-radius: 999px;
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}

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

.rk-toggle-pill {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    background: var(--rk-intro-danger);
    border-radius: 999px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Wskaźniki Grid */
.rk-gauge-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-gauge-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-gauge-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

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

.rk-gauge-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.4s;
}

/* SVG Animations */
.rk-svg-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px auto;
}

.svg-rotor {
    transform-origin: center;
}

/* State: Bad (No Project) */
.state-bad .svg-rotor {
    animation: spin-erratic 0.8s infinite;
    stroke: var(--rk-intro-danger);
}
.state-bad .val-cop { color: var(--rk-intro-danger); }
.state-bad .val-bill { color: var(--rk-intro-danger); }

/* State: Good (Project) */
.state-good .svg-rotor {
    animation: spin-smooth 3s linear infinite;
    stroke: var(--rk-intro-success);
}
.state-good .val-cop { color: var(--rk-intro-success); }
.state-good .val-bill { color: var(--rk-intro-success); }

@keyframes spin-smooth {
    100% { transform: rotate(360deg); }
}

@keyframes spin-erratic {
    0% { transform: rotate(0deg); }
    30% { transform: rotate(120deg); }
    50% { transform: rotate(100deg); }
    80% { transform: rotate(280deg); }
    100% { transform: rotate(360deg); }
}

/* Wskaźnik Łukowy (Gauge) SVG */
.gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 8;
    stroke-linecap: round;
}
.gauge-fill {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s;
}

@media (max-width: 768px) {
    .rk-intro-hero, .rk-intro-dashboard { padding: 35px 25px; }
    .rk-gauge-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-dash-header { flex-direction: column; align-items: flex-start; }
    .rk-toggle-wrapper { width: 100%; display: flex; }
    .rk-toggle-btn { flex: 1; text-align: center; padding: 12px 10px; font-size: 13px; }
    .rk-intro-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Wstęp – Synergia Pompy Ciepła i Ogrzewania Podłogowego",
    "description": "Kluczowy dokument techniczny definiujący synergię między źródłem ciepła a hydrauliką. Brak obliczeń to drastyczny spadek COP i taktowanie sprężarki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-wstep",
    "name": "Wpływ braku projektu na parametry pracy pompy ciepła",
    "description": "Dane wyjściowe pokazujące spadek współczynnika efektywności (COP) oraz wzrost kosztów operacyjnych przy braku optymalizacji hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik COP pompy ciepła",
      "taktowanie sprężarki",
      "zużycie prądu przez pompę ciepła",
      "optymalizacja hydrauliki instalacji",
      "projekt ogrzewania podłogowego z pompą ciepła"
    ],
    "measurementTechnique": "Porównanie deklarowanego wskaźnika COP pompy inwerterowej z rzeczywistym poborem prądu przy błędnie ułożonych pętlach i braku zładu wodnego (taktowanie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalizacja (Z Projektem): COP 4.5 - 5.0, płynna praca inwertera.",
        "Błąd wykonawczy (Bez Projektu): Spadek COP do 3.0, rachunki wyższe o 35%, taktowanie niszczące sprężarkę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-wstep",
    "name": "Symulator Taktowania i COP",
    "description": "Interaktywne narzędzie przełącznikowe (toggle) pokazujące wizualną różnicę w żywotności sprężarki i wartości COP w zależności od wykonania inżynieryjnego projektu hydraulicznego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-hero">
        <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>
            Wprowadzenie Techniczne
        </div>
        <h2 class="rk-intro-title">Osiągnij <span>Synergię</span> Źródła Ciepła i Podłogi</h2>
        
        <div class="rk-intro-text-block">
            <p>
                <strong>Projekt ogrzewania podłogowego z pompą ciepła</strong> to kluczowy dokument techniczny, który definiuje synergię między niskotemperaturowym źródłem ciepła a płaszczyznowym układem oddawania energii.
            </p>
            <p>
                Prawidłowo wykonany projekt optymalizuje hydraulikę instalacji, ustalając rozstaw rur, <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">przepływy masowe oraz nastawy zaworów</a>, co pozwala na osiągnięcie maksymalnego współczynnika <strong>COP na poziomie 4,5–5,0</strong>. 
            </p>
            <p>
                Ignorowanie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń inżynieryjnych (OZC)</a> w <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">systemach z pompą ciepła</a> prowadzi do drastycznego wzrostu rachunków za prąd (nawet o <strong>35%</strong>) oraz przedwczesnego zużycia sprężarki wskutek tzw. <strong>taktowania</strong>.
            </p>
        </div>
    </div>

    <div class="rk-intro-dashboard state-bad" id="rkDashState">
        <div class="rk-intro-dash-header">
            <div class="rk-intro-dash-title">
                <h3>Symulacja Pracy Sprężarki</h3>
                <p>Zobacz, jak projekt wpływa na żywotność i efektywność systemu.</p>
            </div>
            
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-pill" id="rkTogglePill" style="width: 145px; transform: translateX(0);"></div>
                <button class="rk-toggle-btn active" data-state="bad" id="btnBad">Montaż &#8222;Na oko&#8221;</button>
                <button class="rk-toggle-btn" data-state="good" id="btnGood">Projekt OZC</button>
            </div>
        </div>

        <div class="rk-gauge-grid">
            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Praca Sprężarki</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#e2e8f0" stroke-width="6"/>
                    <path class="svg-rotor" d="M50 15 L50 45 M50 55 L50 85 M15 50 L45 50 M55 50 L85 50 M25 25 L43 43 M57 57 L75 75 M75 25 L57 43 M43 57 L25 75" stroke-width="6" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="10" fill="#cbd5e1" />
                </svg>
                <div class="rk-gauge-value" id="valStatus" style="font-size: 24px;">Taktowanie!</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Szybkie zużycie</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Efektywność (COP)</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 80">
                    <path class="gauge-bg" d="M 10 70 A 40 40 0 0 1 90 70" />
                    <path id="svgCopGauge" class="gauge-fill" d="M 10 70 A 40 40 0 0 1 90 70" stroke="var(--rk-intro-danger)" stroke-dasharray="35 125"/>
                </svg>
                <div class="rk-gauge-value val-cop" id="valCop">3.1</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Zasilanie 45°C</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Koszty Prądu</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100" style="margin-bottom: 5px;">
                    <rect x="25" y="20" width="50" height="60" rx="8" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                    <line x1="40" y1="40" x2="60" y2="40" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                    <line x1="40" y1="55" x2="60" y2="55" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-gauge-value val-bill" id="valBill">+35%</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Straty finansowe</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    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: 50px 30px; text-align: center; background: #0f172a; color: #f43f5e; border: 2px solid #e11d48; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🚫</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane ustrukturyzowane (JSON-LD) stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Skrypt został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu / Przełącznika
    const dashContainer = document.getElementById('rkDashState');
    const pill = document.getElementById('rkTogglePill');
    const btnBad = document.getElementById('btnBad');
    const btnGood = document.getElementById('btnGood');
    
    // Zmienne DOM wartości
    const valStatus = document.getElementById('valStatus');
    const valCop = document.getElementById('valCop');
    const valBill = document.getElementById('valBill');
    const svgCopGauge = document.getElementById('svgCopGauge');

    // Funkcja zmieniająca stan
    function setState(state) {
        if (state === 'bad') {
            // Stylizacja przycisków
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-danger)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-bad';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Taktowanie!';
            valCop.innerText = '3.0';
            valCop.nextElementSibling.innerText = 'Zasilanie 40-45°C';
            valBill.innerText = '+35%';
            valBill.nextElementSibling.innerText = 'Straty finansowe';
            
            // Animacja Gauge COP (Mniej zielonego, mały obwód)
            // Obwód dla r=40 (półokrąg) to ok 125px
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-danger)');
            svgCopGauge.style.strokeDasharray = '35 125'; 

        } else {
            // Stylizacja przycisków
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-success)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-good';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Płynna praca';
            valCop.innerText = '4.8';
            valCop.nextElementSibling.innerText = 'Zasilanie 30°C';
            valBill.innerText = 'Optymalne';
            valBill.nextElementSibling.innerText = 'Niskie rachunki';
            
            // Animacja Gauge COP (Pełny łuk)
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-success)');
            svgCopGauge.style.strokeDasharray = '120 125'; 
        }
    }

    // Event Listenery
    btnBad.addEventListener('click', () => setState('bad'));
    btnGood.addEventListener('click', () => setState('good'));

    // Fix rozmiaru pigułki na start
    setTimeout(() => {
        pill.style.width = btnBad.offsetWidth + 'px';
    }, 100);
    
    // Inicjalizacja domyślnego widoku (Ostrzegawczy)
    setState('bad');
});
</script>



<style>
:root {
    --rk-temp-dark: #111827;
    --rk-temp-card: #1f2937;
    --rk-temp-brand: #3b82f6;
    --rk-temp-optimal: #10b981; /* Zielony (Optymalnie) */
    --rk-temp-warning: #f59e0b; /* Pomarańczowy (Ostrzeżenie) */
    --rk-temp-danger: #ef4444; /* Czerwony (Błąd) */
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
    --rk-temp-bg: #f8fafc;
    --rk-temp-border: #cbd5e1;
}

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

/* Nagłówek */
.rk-temp-header {
    background: var(--rk-temp-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-temp-brand);
}

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

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

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

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

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

/* Panel Kontrolny */
.rk-temp-control-panel {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-temp-slider-wrap {
    margin-bottom: 25px;
}

.rk-temp-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-temp-dark);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--rk-temp-optimal) 0%, var(--rk-temp-warning) 50%, var(--rk-temp-danger) 100%);
    outline: none;
    cursor: pointer;
}

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

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

/* Wyniki (Odczyty) */
.rk-temp-readings {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

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

.rk-reading-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    transition: color 0.3s;
}

/* Wizualizacja SVG (Termowizja podłogi) */
.rk-temp-visual {
    position: relative;
    width: 100%;
    height: 280px;
    background: var(--rk-temp-dark);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 4px solid #334155;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.rk-visual-title {
    position: absolute;
    top: 15px;
    left: 20px;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    z-index: 2;
}

.rk-svg-floor {
    width: 80%;
    height: auto;
    z-index: 1;
}

.svg-pipe {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.4s;
}

.svg-heat-glow {
    transition: stop-color 0.4s, stop-opacity 0.4s;
}

/* Tekst i Wyjaśnienie */
.rk-temp-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

.rk-temp-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-temp-content a {
    color: var(--rk-temp-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: border-color 0.3s;
}

.rk-temp-content a:hover {
    border-color: var(--rk-temp-brand);
}

.rk-alert-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-temp-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-alert-box p {
    margin: 0;
    color: #991b1b;
    font-size: 15px;
}

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-interactive, .rk-temp-content { padding: 30px 25px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-temp-title { font-size: 22px; }
    .rk-reading-value { font-size: 18px; }
    .rk-temp-visual { height: 220px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna temperatura zasilania w projekcie ogrzewania podłogowego z pompą ciepła",
    "description": "Optymalna temperatura zasilania (Tz) dla pompy ciepła to 28-32°C zgodnie z PN-EN 1264. Poznaj skutki finansowe błędnego rozstawu rur wymuszającego pracę na 40°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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-temperatura",
    "name": "Korelacja: Rozstaw rur a temperatura zasilania i koszty eksploatacji",
    "description": "Zestawienie wykazujące, jak oszczędności na rurach (rozstaw 15 cm zamiast 10 cm) wymuszają wyższą temperaturę zasilania (Tz), obniżając sprawność pompy ciepła o 2,5-3% na każdy stopień.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "norma PN-EN 1264 parametry",
      "rozstaw rur 10 czy 15 cm",
      "spadek COP pompy ciepła",
      "straty finansowe ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Symulacja strat finansowych w okresie 20 lat w oparciu o spadek współczynnika COP wywołany koniecznością podniesienia krzywej grzewczej dla zrekompensowania małej powierzchni grzewczej (rzadki rozstaw rur).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt zgodny z PN-EN 1264: Rozstaw 10 cm, Tz = 30°C, maksymalna sprawność sprężarki.",
        "Instalacja 'na oko': Rozstaw 15 cm, Tz = 40°C+, generuje od 25 000 do 40 000 PLN strat po 20 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-temperatura",
    "name": "Kalkulator Strat Termo-Ekonomicznych",
    "description": "Interaktywny suwak pozwalający użytkownikowi manipulować rozstawem rur (od 10 cm do 15 cm) i obserwować bezpośredni wzrost temperatury zasilania oraz skumulowaną stratę finansową w ciągu 20 lat pracy pompy ciepła.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "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="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            Termodynamika Układu
        </div>
        <h2 class="rk-temp-title">Maksymalna temperatura zasilania a <span>Koszty Ukryte</span></h2>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-control-panel">
                <div class="rk-temp-slider-wrap">
                    <div class="rk-temp-slider-label">
                        <span>Rozstaw Projektowy (10 cm)</span>
                        <span style="color: var(--rk-temp-danger);">Wykonawstwo &#8222;Na oko&#8221; (15 cm)</span>
                    </div>
                    <input type="range" min="0" max="100" value="0" class="rk-slider" id="rkTzSlider">
                </div>

                <div class="rk-temp-readings">
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Gęstość Rur (OZC)</span>
                        <span class="rk-reading-value" id="valSpacing">10 cm</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Wymagane Zasilanie (Tz)</span>
                        <span class="rk-reading-value" id="valTz" style="color: var(--rk-temp-optimal);">30.0 °C</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Strata po 20 latach</span>
                        <span class="rk-reading-value" id="valLoss" style="color: var(--rk-temp-optimal);">0 PLN</span>
                    </div>
                </div>
            </div>

            <div class="rk-temp-visual">
                <div class="rk-visual-title">Kamera Termowizyjna (Symulacja)</div>
                <svg class="rk-svg-floor" viewBox="0 0 200 120" preserveAspectRatio="xMidYMid meet">
                    <defs>
                        <linearGradient id="heatGradient" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#ef4444" stop-opacity="0.8" id="glowTop"/>
                            <stop offset="100%" stop-color="#ef4444" stop-opacity="0.1" id="glowBottom"/>
                        </linearGradient>
                    </defs>
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="url(#heatGradient)" />
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="none" stroke="#475569" stroke-width="2" />
                    
                    <path id="svgPipeHeat" class="svg-pipe" stroke="#ef4444" d="M 30 110 L 30 40 A 10 10 0 0 1 50 40 L 50 110 A 10 10 0 0 0 70 110 L 70 40 A 10 10 0 0 1 90 40 L 90 110 A 10 10 0 0 0 110 110 L 110 40 A 10 10 0 0 1 130 40 L 130 110 A 10 10 0 0 0 150 110 L 150 40 A 10 10 0 0 1 170 40 L 170 110" />
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-temp-content">
        <h3>Jaka jest maksymalna temperatura zasilania w projekcie?</h3>
        <p>
            Maksymalna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania podłogówki</a> w nowoczesnym projekcie z pompą ciepła nie powinna przekraczać <strong>35°C</strong> przy obliczeniowej temperaturze zewnętrznej (np. -20°C dla III strefy klimatycznej w Polsce). Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, optymalnym parametrem dla domów energooszczędnych jest zakres <strong>28–32°C</strong>, co gwarantuje najwyższą sprawność kompresora.
        </p>
        
        <p>
            Podniesienie temperatury zasilania o każde 1°C skutkuje drastycznym spadkiem sprawności pompy ciepła o około <strong>2,5–3%</strong>. Jeśli instalator „na oko” przyjmie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> co 15 cm zamiast obliczeniowych 10 cm, wymusi to na pompie pracę na parametrze 40°C lub wyższym, aby fizycznie pokryć straty ciepła budynku.
        </p>

        <div class="rk-alert-box">
            <p><strong>Konsekwencje Inwestycyjne:</strong> W <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">skali 20 lat eksploatacji</a>, brak precyzyjnego projektu generuje straty rzędu <strong>25 000 – 40 000 PLN</strong> wynikające wyłącznie z wyższych rachunków za energię. Fizyki nie da się oszukać rzadszym ułożeniem rury.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    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; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz dane ustrukturyzowane (JSON-LD) należą do serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka i Obliczeń
    const slider = document.getElementById('rkTzSlider');
    const valSpacing = document.getElementById('valSpacing');
    const valTz = document.getElementById('valTz');
    const valLoss = document.getElementById('valLoss');
    
    const svgPipe = document.getElementById('svgPipeHeat');
    const glowTop = document.getElementById('glowTop');
    const glowBottom = document.getElementById('glowBottom');

    // Funkcja aktualizująca interfejs
    function updateCalc(val) {
        // Obliczenia interpolowane (0 -> 100)
        // Spacing: 10cm do 15cm
        const spacing = 10 + (val / 20);
        // Tz: 30°C do 42°C
        const tz = 30 + (val * 0.12);
        // Strata finansowa: od 0 do 35 000 PLN (zaokrąglone do setek)
        const loss = Math.round((val / 100) * 35000 / 100) * 100;

        // Aktualizacja DOM tekst
        valSpacing.innerText = spacing.toFixed(1) + ' cm';
        valTz.innerText = tz.toFixed(1) + ' °C';
        
        if (loss > 0) {
            valLoss.innerText = '-' + loss.toLocaleString('pl-PL') + ' PLN';
        } else {
            valLoss.innerText = '0 PLN';
        }

        // ==========================================
        // Logika Kolorów dla Tekstu (Aspekt Finansowy)
        // ==========================================
        let colorText = '';
        
        if (val <= 33) {
            colorText = 'var(--rk-temp-optimal)'; // Zielony
        } else if (val <= 66) {
            colorText = 'var(--rk-temp-warning)'; // Pomarańczowy
        } else {
            colorText = 'var(--rk-temp-danger)'; // Czerwony
        }

        // Aplikacja kolorów dla wartości tekstowych
        valTz.style.color = colorText;
        valLoss.style.color = colorText;

        // ==========================================
        // Logika Kolorów Kamery (Efektywność cieplna)
        // ==========================================
        // Czerwień blednąca wraz ze spadkiem efektywności (wzrostem rozstawu)
        // val rośnie od 0 do 100, opacity spada od 1.0 do ok. 0.15
        const heatOpacity = 1 - (val / 115); 
        const pipeColor = `rgba(239, 68, 68, ${heatOpacity})`; // Używa czerwieni #ef4444
        
        // Aplikacja blaknącej czerwieni do kamery termowizyjnej
        svgPipe.setAttribute('stroke', pipeColor);
        glowTop.setAttribute('stop-color', '#ef4444');
        glowTop.setAttribute('stop-opacity', heatOpacity * 0.8); // Zmiana intensywności poświaty
        glowBottom.setAttribute('stop-color', '#ef4444');
        glowBottom.setAttribute('stop-opacity', heatOpacity * 0.1);
        
        // Zmiana gęstości rur na obrazku - ciągła linia dla wszystkich stanów
        if (val > 66) {
            svgPipe.style.strokeDasharray = 'none';
        } else if (val > 33) {
            svgPipe.style.strokeDasharray = 'none';
        } else {
            svgPipe.style.strokeDasharray = 'none';
        }
    }

    // Event Listener dla suwaka
    slider.addEventListener('input', function(e) {
        updateCalc(e.target.value);
    });

    // Inicjalizacja (Stan startowy)
    updateCalc(0);
});
</script>



<style>
:root {
    --rk-ozc-dark: #0f172a;
    --rk-ozc-card: #1e293b;
    --rk-ozc-brand: #f59e0b;
    --rk-ozc-brand-light: #fef3c7;
    --rk-ozc-blue: #3b82f6;
    --rk-ozc-text: #334155;
    --rk-ozc-muted: #64748b;
    --rk-ozc-bg: #ffffff;
    --rk-ozc-border: #e2e8f0;
}

.rk-ozc-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-ozc-bg);
    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;
}

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

.rk-ozc-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: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(245, 158, 11, 0.4);
}

.rk-ozc-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

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

/* Interaktywny Symulator OZC */
.rk-ozc-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-ozc-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
}

.rk-ozc-tab {
    flex: 1;
    padding: 16px 20px;
    background: transparent;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    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-ozc-tab:hover {
    color: var(--rk-ozc-dark);
}

.rk-ozc-tab.active {
    background: #ffffff;
    color: var(--rk-ozc-brand);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Grid Wyników i Wizualizacji */
.rk-ozc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-ozc-visual {
    background: var(--rk-ozc-dark);
    border-radius: 20px;
    padding: 25px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    min-height: 280px;
}

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

/* Elementy SVG */
.ozc-pipe {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, opacity 0.5s;
}

.ozc-window {
    fill: rgba(59, 130, 246, 0.2);
    stroke: var(--rk-ozc-blue);
    stroke-width: 4;
    transition: opacity 0.5s;
}

.ozc-bathtub {
    fill: none;
    stroke: rgba(255,255,255,0.4);
    stroke-width: 3;
    stroke-dasharray: 6 4;
    transition: opacity 0.5s;
}

/* Karta z danymi (OZC) */
.rk-ozc-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-ozc-card {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.3s;
}

.rk-ozc-card.highlight {
    border-left: 6px solid var(--rk-ozc-brand);
}

.rk-ozc-card-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-ozc-card-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    line-height: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
    transition: color 0.3s;
}

.rk-ozc-card-unit {
    font-size: 16px;
    color: var(--rk-ozc-muted);
}

/* Treść Merytoryczna */
.rk-ozc-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-ozc-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-ozc-text);
    margin: 0 0 20px 0;
}

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

.rk-ozc-content a {
    color: var(--rk-ozc-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}

.rk-ozc-content a:hover {
    color: #d97706;
    border-bottom-style: solid;
}

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

.rk-ozc-h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 4px;
    background: var(--rk-ozc-brand);
    border-radius: 2px;
}

/* Mocne CTA z animacją SVG */
.rk-ozc-cta-box {
    padding: 40px 50px;
    background: var(--rk-ozc-brand-light);
    text-align: center;
    border-top: 1px solid rgba(245, 158, 11, 0.2);
}

.rk-ozc-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-ozc-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 2px solid transparent;
}

.rk-ozc-cta-btn:hover {
    transform: translateY(-4px);
    background: #d97706;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fcd34d;
}

@keyframes ctaPulse {
    0% { stroke-opacity: 1; transform: scale(1); }
    50% { stroke-opacity: 0.4; transform: scale(1.1); }
    100% { stroke-opacity: 1; transform: scale(1); }
}

@keyframes ctaMove {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(4px); }
}

.cta-anim-circle {
    animation: ctaPulse 2s infinite ease-in-out;
    transform-origin: center;
}

.cta-anim-arrow {
    animation: ctaMove 2s infinite ease-in-out;
}

@media (max-width: 768px) {
    .rk-ozc-header, .rk-ozc-interactive, .rk-ozc-content, .rk-ozc-cta-box { padding: 30px 25px; }
    .rk-ozc-tabs { flex-direction: column; }
    .rk-ozc-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-ozc-title { font-size: 24px; }
    .rk-ozc-card-value { font-size: 28px; }
    .rk-ozc-cta-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego obliczenie OZC to fundament projektu instalacji podłogowej?",
    "description": "OZC (Projektowe Obciążenie Cieplne) to jedyna precyzyjna metoda doboru rozstawu rur w podłogówce i mocy pompy ciepła wg 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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-ozc",
    "name": "Porównanie Zapotrzebowania Cieplnego (OZC) dla typowych pomieszczeń",
    "description": "Analiza różnic w zapotrzebowaniu na moc grzewczą (W/m²) pomiędzy strefami o wysokich zyskach słonecznych a pomieszczeniami o podwyższonej temperaturze wymaganej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC podłogówka",
      "zapotrzebowanie na moc cieplną",
      "rozstaw rur w łazience",
      "strefa brzegowa podłogówka",
      "projekt ogrzewania podłogowego PN-EN 12831"
    ],
    "measurementTechnique": "Analiza porównawcza zapotrzebowania cieplnego (W/m²) dla różnych typów pomieszczeń z uwzględnieniem strat przez przegrody i zysków słonecznych w celu zrównoważenia hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon z dużymi przeszkleniami: Zapotrzebowanie ok. 30 W/m², temperatura 20°C, rozstaw rur 10-12.5 cm (zagęszczenie pod oknami do 5-7.5 cm).",
        "Łazienka: Zapotrzebowanie ok. 80 W/m², temperatura 24°C, rozstaw rur 10 cm, powierzchnia grzejna ograniczona armaturą."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-ozc",
    "name": "Symulator Zapotrzebowania Cieplnego (OZC) dla Pomieszczeń",
    "description": "Interaktywny panel przełączający schematy hydrauliczne (rozstaw rur) pomiędzy salonem a łazienką w oparciu o wyniki Projektowego Obciążenia Cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ozc-container" id="rk-ozc-app">
    
    <div class="rk-ozc-header">
        <div class="rk-ozc-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>
            Fundament Hydrauliki
        </div>
        <h2 class="rk-ozc-title">Dlaczego obliczenie <span>OZC</span> to absolutna podstawa projektu?</h2>
    </div>

    <div class="rk-ozc-interactive">
        
        <div class="rk-ozc-tabs">
            <button class="rk-ozc-tab active" data-room="salon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Salon z oknami HS (20°C)
            </button>
            <button class="rk-ozc-tab" data-room="lazienka">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 13v-2a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2"></path><path d="M3 13v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5"></path><path d="M6 20v2"></path><path d="M18 20v2"></path><path d="M8 9V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4"></path></svg>
                Łazienka (24°C)
            </button>
        </div>

        <div class="rk-ozc-grid">
            <div class="rk-ozc-visual">
                <svg class="rk-ozc-svg-room" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid meet">
                    <rect x="10" y="10" width="280" height="180" fill="none" stroke="#475569" stroke-width="4" rx="8" />
                    
                    <rect id="svgWindow" class="ozc-window" x="40" y="5" width="220" height="10" rx="2" />
                    
                    <rect id="svgBathtub" class="ozc-bathtub" x="180" y="15" width="100" height="70" rx="10" style="opacity: 0;" />
                    
                    <path id="pipeSalon" class="ozc-pipe" stroke="#f59e0b" stroke-width="6" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 20 A 10 10 0 0 1 200 20 L 200 180 A 10 10 0 0 0 220 180 L 220 20 A 10 10 0 0 1 240 20 L 240 180 A 10 10 0 0 0 260 180 L 260 20 A 10 10 0 0 1 280 20 L 280 180" />
                    
                    <path id="pipeLazienka" class="ozc-pipe" stroke="#ef4444" stroke-width="6" style="opacity: 0;" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 100 A 10 10 0 0 1 200 100 L 200 180 A 10 10 0 0 0 220 180 L 220 100 A 10 10 0 0 1 240 100 L 240 180 A 10 10 0 0 0 260 180 L 260 100 A 10 10 0 0 1 280 100 L 280 180" />
                </svg>
            </div>

            <div class="rk-ozc-data">
                <div class="rk-ozc-card highlight">
                    <div class="rk-ozc-card-title">Zapotrzebowanie na moc</div>
                    <div class="rk-ozc-card-value" id="valPower">
                        30 <span class="rk-ozc-card-unit">W/m²</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Wymagana Temperatura</div>
                    <div class="rk-ozc-card-value" id="valTemp">
                        20 <span class="rk-ozc-card-unit">°C</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Rozstaw Rur PEX/PERT</div>
                    <div class="rk-ozc-card-value" id="valSpacing" style="font-size: 22px;">
                        10–12.5 cm (Brzeg: 5 cm)
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-ozc-content">
        <p>
            <strong>OZC (Projektowe Obciążenie Cieplne)</strong> to jedyna metoda precyzyjnego określenia zapotrzebowania na moc grzewczą każdego pomieszczenia z osobna, wyrażona w W/m². Zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>, projektant musi uwzględnić przenikanie ciepła przez przegrody, mostki termiczne oraz straty na wentylację, aby dobrać odpowiednią gęstość rur w każdej strefie z uwzględnieniem <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>.
        </p>
        
        <p>
            Bez OZC projekt ogrzewania podłogowego jest jedynie ryzykownym zgadywaniem. W łazience, gdzie oczekujemy komfortowych <strong>24°C</strong>, a powierzchnia grzejna jest drastycznie ograniczona przez wannę czy duży brodzik, zapotrzebowanie może wynosić nawet <strong>80 W/m²</strong>. Dla kontrastu, w nowoczesnym salonie z dużymi przeszkleniami generującymi zyski słoneczne, to zapotrzebowanie może wynosić zaledwie <strong>30 W/m²</strong>. Projektant musi zrównoważyć te różnice hydraulicznie, dobierając odpowiednie długości pętli i przepływy na rotametrach.
        </p>

        <h3 class="rk-ozc-h3">Jak to wpływa na projekt wykonawczy?</h3>
        <p>
            Wynik OZC bezpośrednio determinuje wybór mocy pompy ciepła (np. zakup urządzenia <strong>5 kW</strong> zamiast przewymiarowanego <strong>7 kW</strong>) oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">gęstość ułożenia rur</a>. Przykładowo, w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach podokiennych (strefy brzegowe)</a> projektant planuje gęsty rozstaw co <strong>5–7,5 cm</strong>, aby zniwelować chłód napływający od szyb, podczas gdy w centrum pokoju wystarczy standardowe <strong>10–12,5 cm</strong>.
        </p>
    </div>

    <div class="rk-ozc-cta-box">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-ozc-cta-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="26" height="26" 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" class="cta-anim-circle"></circle>
                <polyline points="12 16 16 12 12 8" class="cta-anim-arrow"></polyline>
                <line x1="8" y1="12" x2="16" y2="12" class="cta-anim-arrow"></line>
            </svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-ozc-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz załączone dane ustrukturyzowane JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie na nieautoryzowanej domenie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Zakładek (OZC Symulator)
    const tabs = document.querySelectorAll('.rk-ozc-tab');
    const valPower = document.getElementById('valPower');
    const valTemp = document.getElementById('valTemp');
    const valSpacing = document.getElementById('valSpacing');
    
    // Elementy SVG
    const svgWindow = document.getElementById('svgWindow');
    const svgBathtub = document.getElementById('svgBathtub');
    const pipeSalon = document.getElementById('pipeSalon');
    const pipeLazienka = document.getElementById('pipeLazienka');

    function switchRoom(roomType) {
        // Reset aktywnych zakładek
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-ozc-tab[data-room="${roomType}"]`).classList.add('active');

        if (roomType === 'salon') {
            // Aktualizacja Danych
            valPower.innerHTML = '30 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '20 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10–12.5 cm (Brzeg: 5 cm)';
            
            valPower.style.color = '#f59e0b'; // Kolor umiarkowany
            
            // Animacja SVG
            svgWindow.style.opacity = '1';
            svgBathtub.style.opacity = '0';
            pipeSalon.style.opacity = '1';
            pipeLazienka.style.opacity = '0';
            
        } else if (roomType === 'lazienka') {
            // Aktualizacja Danych
            valPower.innerHTML = '80 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '24 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10 cm (Mniej powierzchni)';
            
            valPower.style.color = '#ef4444'; // Kolor wysoki/czerwony
            
            // Animacja SVG
            svgWindow.style.opacity = '0';
            svgBathtub.style.opacity = '1';
            pipeSalon.style.opacity = '0';
            pipeLazienka.style.opacity = '1';
        }
    }

    // Event Listenery
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchRoom(this.getAttribute('data-room'));
        });
    });
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-brand: #0284c7; /* Intensywny niebieski - hydraulika */
    --rk-flow-accent: #f59e0b; /* Pomarańczowy - wskaźnik przepływu */
    --rk-flow-light: #f0f9ff;
    --rk-flow-success: #10b981;
    --rk-flow-text: #334155;
    --rk-flow-muted: #64748b;
    --rk-flow-border: #e2e8f0;
}

.rk-flow-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(2, 132, 199, 0.12);
    border: 1px solid var(--rk-flow-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-flow-header {
    background: var(--rk-flow-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-flow-brand);
}

.rk-flow-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.2);
    color: #38bdf8;
    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(56, 189, 248, 0.3);
}

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

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

/* Interaktywny Kalkulator Przepływu */
.rk-flow-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

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

/* Panel Kontrolny */
.rk-flow-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-flow-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

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

.rk-label-wrap {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-flow-dark);
}

.rk-flow-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}

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

/* Wizualizacja Rotametru */
.rk-flow-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-flow-dark);
    border-radius: 20px;
    padding: 30px;
    min-height: 350px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}

.rotameter-svg {
    width: 120px;
    height: auto;
}

.rotameter-float {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-flow-result-text {
    margin-top: 25px;
    text-align: center;
    color: #ffffff;
}

.rk-flow-val-large {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-flow-brand);
}

/* Sekcja merytoryczna */
.rk-flow-content {
    padding: 45px 50px;
    background: #ffffff;
}

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

.rk-flow-formula {
    background: var(--rk-flow-light);
    padding: 25px;
    border-radius: 16px;
    border-left: 5px solid var(--rk-flow-brand);
    margin: 30px 0;
    font-family: 'Courier New', monospace;
}

.rk-flow-step {
    margin-bottom: 10px;
    display: flex;
    gap: 15px;
}

.rk-step-num {
    background: var(--rk-flow-brand);
    color: #ffffff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-flow-cta {
    padding: 40px 50px;
    background: #f8fafc;
    text-align: center;
    border-top: 1px solid var(--rk-flow-border);
}

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

.rk-btn-flow:hover {
    transform: translateY(-3px);
    background: #0369a1;
}

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-interactive, .rk-flow-content { padding: 30px 25px; }
    .rk-flow-grid { grid-template-columns: 1fr; }
    .rk-flow-title { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik inżynieryjny dotyczący obliczania strumienia wody (qm) w instalacji niskotemperaturowej. Poznaj wzór i algorytm nastaw rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Tabela korelacji mocy grzewczej i przepływu masowego",
    "description": "Zestawienie obliczonych wartości przepływu (l/h i l/min) dla typowych obciążeń cieplnych pętli ogrzewania podłogowego przy ΔT=5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy podłogówka wzór",
      "ustawienie rotametru l/min",
      "delta T pompa ciepła 5K",
      "obliczanie hydrauliki ogrzewania",
      "projektowanie pętli grzewczych"
    ],
    "measurementTechnique": "Algorytm obliczeniowy oparty na stałej fizycznej ciepła właściwego wody (1.163 Wh/kgK) i bilansie mocy cieplnej pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moc 1000W przy ΔT=5K: Przepływ 172 l/h (2.8 l/min)",
        "Moc 1500W przy ΔT=5K: Przepływ 258 l/h (4.3 l/min)",
        "Moc 2000W przy ΔT=5K: Przepływ 344 l/h (5.7 l/min) - Przekroczenie zakresu standardowego rotametru!"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Kalkulator Nastaw Rotametrów Podłogówki",
    "description": "Interaktywny symulator rotametru przeliczający moc cieplną pętli na wymaganą nastawę w litrach na minutę.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "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="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></svg>
            Hydraulika Projektowa
        </div>
        <h2 class="rk-flow-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach?</h2>
    </div>

    <div class="rk-flow-interactive">
        <div class="rk-flow-grid">
            
            <div class="rk-flow-controls">
                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Moc cieplna pętli (Q)</span>
                        <span id="valPowerLabel" style="color: var(--rk-flow-brand);">1400 W</span>
                    </div>
                    <input type="range" min="200" max="2500" step="50" value="1400" class="rk-flow-slider" id="inputPower">
                </div>

                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Delta T (&Delta;T)</span>
                        <span id="valDeltaLabel" style="color: var(--rk-flow-brand);">5 K</span>
                    </div>
                    <input type="range" min="3" max="10" step="1" value="5" class="rk-flow-slider" id="inputDelta">
                </div>

                <div style="background: var(--rk-flow-light); padding: 15px; border-radius: 12px; font-size: 13px; color: var(--rk-flow-muted);">
                    <strong>Wskazówka:</strong> Standardowy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr</a> ma skalę do 5 l/min. Jeśli wynik przekracza tę wartość, pętla musi zostać podzielona na dwie.
                </div>
            </div>

            <div class="rk-flow-visual">
                <svg class="rotameter-svg" viewBox="0 0 100 300">
                    <rect x="30" y="20" width="40" height="240" rx="5" fill="rgba(255,255,255,0.1)" stroke="#ffffff" stroke-width="2"/>
                    <line x1="30" y1="210" x2="45" y2="210" stroke="#ffffff" stroke-width="1"/> <text x="15" y="215" fill="#ffffff" font-size="10">1</text>
                    <line x1="30" y1="170" x2="45" y2="170" stroke="#ffffff" stroke-width="1"/> <text x="15" y="175" fill="#ffffff" font-size="10">2</text>
                    <line x1="30" y1="130" x2="45" y2="130" stroke="#ffffff" stroke-width="1"/> <text x="15" y="135" fill="#ffffff" font-size="10">3</text>
                    <line x1="30" y1="90" x2="45" y2="90" stroke="#ffffff" stroke-width="1"/> <text x="15" y="95" fill="#ffffff" font-size="10">4</text>
                    <line x1="30" y1="50" x2="45" y2="50" stroke="#ffffff" stroke-width="1"/> <text x="15" y="55" fill="#ffffff" font-size="10">5</text>
                    
                    <rect id="svgWater" x="32" y="258" width="36" height="0" fill="var(--rk-flow-brand)" fill-opacity="0.3"/>
                    
                    <g id="svgFloat" class="rotameter-float" transform="translate(0, 210)">
                        <rect x="35" y="0" width="30" height="15" rx="2" fill="var(--rk-flow-accent)"/>
                        <circle cx="50" cy="7.5" r="3" fill="#ffffff"/>
                    </g>
                </svg>
                <div class="rk-flow-result-text">
                    <div style="font-size: 14px; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Wymagany Przepływ:</div>
                    <div class="rk-flow-val-large" id="valResultFlow">4.0 l/min</div>
                    <div id="valResultLh" style="font-size: 16px; opacity: 0.8;">240.7 l/h</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-flow-content">
        <p>
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) wyliczoną w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a> oraz założonej różnicy temperatur (&Delta;T). Dla systemów z rewersyjną <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła</a> delta ta wynosi zazwyczaj <strong>5 K</strong>. 
        </p>
        
        <p>
            Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do masy betonu bez nagłego wzrostu temperatury powrotu, co skutkowałoby podnoszeniem ciśnienia w układzie chłodniczym i wyłączeniem sprężarki.
        </p>

        <div class="rk-flow-formula">
            <strong style="font-family: 'Inter', sans-serif;">Wzór Inżynierski:</strong><br>
            <span style="font-size: 18px; line-height: 2;">q<sub>m</sub> = Q / (c<sub>w</sub> &middot; &Delta;T)</span>
        </div>

        <div style="display: flex; flex-direction: column; gap: 10px;">
            <div class="rk-flow-step">
                <div class="rk-step-num">1</div>
                <div>Wyznacz moc pętli Q (np. <strong>1400 W</strong> dla salonu 40 m<sup>2</sup>).</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">2</div>
                <div>Przyjmij stałą c<sub>w</sub> = <strong>1.163 Wh/(kg&middot;K)</strong> dla wody.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">3</div>
                <div>Oblicz przepływ godzinowy: q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">4</div>
                <div>Przelicz na minuty: 240.7 / 60 &approx; <strong>4.0 l/min</strong> – to wartość, którą ustawisz na rotametrze.</div>
            </div>
        </div>

        <p style="margin-top: 25px;">
            Jeśli projektant zaplanuje zbyt długą pętlę (np. powyżej <strong>100-120 m</strong>), opory hydrauliczne wzrosną do poziomu, przy którym nawet nowoczesna <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie trwałym niedogrzaniem strefy.
        </p>
    </div>

    <div class="rk-flow-cta">
        <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-btn-flow">
            URUCHOM KOMPLEKSOWY KALKULATOR PRZEPŁYWÓW
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </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)) {
        document.getElementById('rk-flow-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Kalkulatora
    const inPower = document.getElementById('inputPower');
    const inDelta = document.getElementById('inputDelta');
    const labelPower = document.getElementById('valPowerLabel');
    const labelDelta = document.getElementById('valDeltaLabel');
    const resFlowMin = document.getElementById('valResultFlow');
    const resFlowH = document.getElementById('valResultLh');
    const svgFloat = document.getElementById('svgFloat');
    const svgWater = document.getElementById('svgWater');

    function updateFlow() {
        const Q = parseFloat(inPower.value);
        const DT = parseFloat(inDelta.value);
        const cw = 1.163;

        // Obliczenia
        const qmH = Q / (cw * DT);
        const qmMin = qmH / 60;

        // Aktualizacja etykiet
        labelPower.innerText = Q + ' W';
        labelDelta.innerText = DT + ' K';
        resFlowMin.innerText = qmMin.toFixed(1) + ' l/min';
        resFlowH.innerText = qmH.toFixed(1) + ' l/h';

        // Kolorowanie przy przekroczeniu skali
        if (qmMin > 5) {
            resFlowMin.style.color = '#ef4444';
        } else {
            resFlowMin.style.color = 'var(--rk-flow-brand)';
        }

        // Animacja Rotametru
        // 0 l/min = y: 250 (dół)
        // 5 l/min = y: 50 (góra)
        // Zakres 200px na 5 jednostek = 40px na jednostkę
        let floatY = 250 - (qmMin * 40);
        if (floatY < 30) floatY = 30; // Limit górny
        if (floatY > 250) floatY = 250; // Limit dolny

        svgFloat.setAttribute('transform', `translate(0, ${floatY})`);
        
        // Dynamiczny poziom "wody" w rurce
        const waterHeight = 250 - floatY;
        svgWater.setAttribute('y', floatY + 10);
        svgWater.setAttribute('height', waterHeight);
    }

    inPower.addEventListener('input', updateFlow);
    inDelta.addEventListener('input', updateFlow);

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



<style>
:root {
    --rk-mass-dark: #0f172a;
    --rk-mass-card: #1e293b;
    --rk-mass-brand: #0284c7; /* Hydrauliczny błękit */
    --rk-mass-accent: #38bdf8;
    --rk-mass-success: #10b981;
    --rk-mass-warning: #f59e0b;
    --rk-mass-danger: #ef4444;
    --rk-mass-text: #334155;
    --rk-mass-muted: #64748b;
    --rk-mass-bg: #f8fafc;
    --rk-mass-border: #cbd5e1;
}

.rk-mass-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(2, 132, 199, 0.15);
    border: 1px solid var(--rk-mass-border);
    overflow: hidden;
}

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

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

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

.rk-mass-title span { color: var(--rk-mass-accent); }

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

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

/* Panel sterowania */
.rk-mass-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-mass-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

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

.rk-mass-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-mass-dark);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

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

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

.rk-mass-readouts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-readout-card {
    background: var(--rk-mass-bg);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    text-align: center;
}

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

.rk-readout-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mass-dark);
}

/* Wizualizacja SVG */
.rk-mass-visual {
    background: var(--rk-mass-card);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-mass-status-overlay {
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 1px;
    z-index: 10;
    transition: all 0.3s;
}

.status-ok { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid #10b981; }
.status-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid #f59e0b; }
.status-err { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid #ef4444; }

.rk-svg-system {
    width: 100%;
    height: auto;
    max-height: 200px;
    margin-top: 20px;
}

/* SVG Animations */
.anim-pump-rotor {
    transform-origin: 50px 50px;
}
.spin-fast { animation: spin 0.8s linear infinite; }
.spin-slow { animation: spin 3s linear infinite; }
.spin-stall { animation: shake 0.5s ease-in-out infinite; stroke: var(--rk-mass-danger); }

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes shake {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(10deg); }
    75% { transform: rotate(-10deg); }
}

.anim-flow-line {
    stroke-dasharray: 10 10;
    animation: flowMove 1s linear infinite;
}
@keyframes flowMove { to { stroke-dashoffset: -20; } }

/* Treść Merytoryczna */
.rk-mass-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

.rk-mass-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-mass-text);
    margin-bottom: 25px;
}

.rk-mass-formula-box {
    background: var(--rk-mass-dark);
    color: #ffffff;
    padding: 20px 25px;
    border-radius: 12px;
    border-left: 5px solid var(--rk-mass-accent);
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-formula-text {
    font-family: 'Courier New', monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-mass-accent);
}

.rk-step-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-step-card {
    background: var(--rk-mass-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    position: relative;
}

.rk-step-number {
    position: absolute;
    top: -12px;
    left: -12px;
    width: 28px;
    height: 28px;
    background: var(--rk-mass-brand);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13px;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

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

.rk-alert-critical {
    background: #fef2f2;
    border-left: 4px solid var(--rk-mass-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
}

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

.rk-link {
    color: var(--rk-mass-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.3s;
}

.rk-link:hover {
    border-bottom-color: var(--rk-mass-brand);
}

@media (max-width: 768px) {
    .rk-mass-header, .rk-mass-interactive, .rk-mass-content { padding: 30px 25px; }
    .rk-mass-grid, .rk-step-grid { grid-template-columns: 1fr; }
    .rk-mass-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik obliczeniowy strumienia wody (qm). Dowiedz się, dlaczego zbyt długa pętla (np. 140 m) dławi pompę obiegową i uniemożliwia oddanie 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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Opory hydrauliczne a wydajność pompy obiegowej",
    "description": "Korelacja między długością pętli grzewczej, wymaganym przepływem w l/min, a zdolnością standardowej pompy obiegowej do pokonania oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy ogrzewanie podłogowe",
      "nastawa rotametru l/min",
      "za długa pętla podłogówki",
      "opory hydrauliczne pompy ciepła",
      "wzór na przepływ wody grzewczej"
    ],
    "measurementTechnique": "Algorytm bazujący na równaniu qm = Q / (cw * ΔT), uwzględniający krytyczne ograniczenia fizyczne pomp obiegowych przy pętlach przekraczających 100-120 metrów bieżących rury 16x2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan Optymalny: Pętla < 90m, przepływ ok. 2 l/min, niskie opory.",
        "Stan Krytyczny: Pętla 140m, wymagany przepływ 4 l/min, opory przekraczają wysokość podnoszenia standardowej pompy = strefa niedogrzana."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Symulator Oporów i Przepływu Hydraulicznego",
    "description": "Interaktywny kalkulator pozwalający manipulować mocą pętli (Q) oraz jej długością (L), wizualizujący ryzyko zadławienia pompy obiegowej przy przekroczeniu limitów hydraulicznych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mass-container" id="rk-mass-app">
    
    <div class="rk-mass-header">
        <div class="rk-mass-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 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><circle cx="12" cy="12" r="4"></circle></svg>
            Mechanika Płynów
        </div>
        <h2 class="rk-mass-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach podłogówki?</h2>
    </div>

    <div class="rk-mass-interactive">
        <div class="rk-mass-grid">
            
            <div class="rk-mass-controls">
                <div class="rk-mass-slider-group">
                    <div class="rk-mass-label">
                        <span>Zapotrzebowanie Pętli (Q)</span>
                        <span id="valQ" style="color: var(--rk-mass-brand);">1400 W</span>
                    </div>
                    <input type="range" min="300" max="2000" step="50" value="1400" class="rk-slider" id="slideQ">
                </div>

                <div class="rk-mass-slider-group" style="margin-bottom: 10px;">
                    <div class="rk-mass-label">
                        <span>Długość Pętli 16x2 (L)</span>
                        <span id="valL" style="color: var(--rk-mass-brand);">140 m</span>
                    </div>
                    <input type="range" min="40" max="180" step="5" value="140" class="rk-slider" id="slideL">
                </div>

                <div class="rk-mass-readouts">
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Przepływ (Rotametr)</div>
                        <div class="rk-readout-val" id="valFlow">4.0 <span style="font-size: 14px; font-weight:700;">l/min</span></div>
                    </div>
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Opory liniowe</div>
                        <div class="rk-readout-val" id="valPress">28 <span style="font-size: 14px; font-weight:700;">kPa</span></div>
                    </div>
                </div>
            </div>

            <div class="rk-mass-visual">
                <div id="statusOverlay" class="rk-mass-status-overlay status-err">
                    Krytyczne Opory - Pompa Zadławiona
                </div>
                
                <svg class="rk-svg-system" viewBox="0 0 200 100">
                    <path d="M 10 50 L 50 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    <path id="svgLoop" d="M 150 50 L 190 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    
                    <path id="svgFlowAnim" class="anim-flow-line" d="M 10 50 L 190 50" fill="none" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>

                    <circle cx="50" cy="50" r="25" fill="#1e293b" stroke="var(--rk-mass-accent)" stroke-width="4" id="svgPumpBorder"/>
                    <path id="svgPumpRotor" class="anim-pump-rotor spin-stall" d="M 50 25 L 50 45 M 50 55 L 50 75 M 25 50 L 45 50 M 55 50 L 75 50 M 32 32 L 46 46 M 54 54 L 68 68 M 68 32 L 54 46 M 46 54 L 32 68" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="6" fill="var(--rk-mass-accent)" id="svgPumpCenter"/>

                    <rect x="130" y="20" width="20" height="60" rx="4" fill="#334155" stroke="#64748b" stroke-width="2"/>
                    <rect x="135" y="10" width="10" height="30" rx="2" fill="#e2e8f0"/>
                    <rect id="svgRotameterFill" x="135" y="30" width="10" height="10" fill="var(--rk-mass-brand)"/>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-mass-content">
        <div class="rk-mass-intro">
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) oraz założonej delty temperatur (&Delta;T), która dla pomp ciepła wynosi zazwyczaj <strong>5 K</strong>. Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do betonu bez podnoszenia ciśnienia w układzie chłodniczym.
        </div>

        <div class="rk-mass-formula-box">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-mass-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="9" x2="15" y2="15"></line><line x1="15" y1="9" x2="9" y2="15"></line></svg>
            <div>
                <div style="font-size: 13px; text-transform: uppercase; letter-spacing: 1px; color: #94a3b8; margin-bottom: 5px;">Równanie Inżynierskie</div>
                <div class="rk-formula-text">q<sub>m</sub> = Q / (C<sub>w</sub> &middot; &Delta;T)</div>
            </div>
        </div>

        <div class="rk-step-grid">
            <div class="rk-step-card">
                <div class="rk-step-number">1</div>
                <p><strong>Moc całkowita pętli (Q):</strong> W naszym przykładzie dla salonu (40 m<sup>2</sup> przy 35 W/m<sup>2</sup>) wynosi <strong>1400 W</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">2</div>
                <p><strong>Delta T (&Delta;T):</strong> Założona różnica temperatur zasilanie/powrót (np. 35°C i 30°C) to <strong>5 K</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">3</div>
                <p><strong>Ciepło właściwe wody (C<sub>w</sub>):</strong> Stała fizyczna wynosi <strong>1.163 Wh/(kg&middot;K)</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">4</div>
                <p><strong>Obliczenie (l/h):</strong> q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</p>
            </div>
        </div>

        <div class="rk-alert-critical">
            <p>
                <strong>Konsekwencje wykonawcze:</strong> Przy przepływie rzędu 240 l/h, na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-link">rozdzielaczu</a> musisz ustawić rotametr na ok. <strong>4.0 l/min</strong>. 
                Jeśli projektant zaplanuje <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">zbyt długą pętlę</a> (np. 140 m), opory hydrauliczne wzrosną do poziomu, przy którym standardowa <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-link">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie niedogrzaniem salonu.
            </p>
        </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)) {
        document.getElementById('rk-mass-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold; background:#0f172a;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Symulatora
    const slideQ = document.getElementById('slideQ');
    const slideL = document.getElementById('slideL');
    const valQ = document.getElementById('valQ');
    const valL = document.getElementById('valL');
    const valFlow = document.getElementById('valFlow');
    const valPress = document.getElementById('valPress');
    
    // Elementy SVG i UI
    const statusOverlay = document.getElementById('statusOverlay');
    const svgPumpRotor = document.getElementById('svgPumpRotor');
    const svgPumpBorder = document.getElementById('svgPumpBorder');
    const svgPumpCenter = document.getElementById('svgPumpCenter');
    const svgFlowAnim = document.getElementById('svgFlowAnim');
    const svgRotameterFill = document.getElementById('svgRotameterFill');

    function calculateSystem() {
        const Q = parseFloat(slideQ.value);
        const L = parseFloat(slideL.value);
        const cw = 1.163;
        const dT = 5; // Stała dla pompy ciepła wg treści

        // 1. Przepływ (l/min)
        const qmH = Q / (cw * dT);
        const flowMin = qmH / 60;
        
        // 2. Szacunkowe opory (kPa) - Uproszczony model wizualny (Przepływ * Długość * wsp)
        // Zakładamy, że 4 l/min przy 140m daje ogromne opory rzędu 35-40 kPa
        const baseResistance = (flowMin * flowMin) * (L / 100) * 1.5; 
        const pressLoss = Math.max(1, baseResistance);

        // Aktualizacja UI Tekst
        valQ.innerText = Q + ' W';
        valL.innerText = L + ' m';
        valFlow.innerHTML = flowMin.toFixed(1) + ' <span style="font-size: 14px; font-weight:700;">l/min</span>';
        valPress.innerHTML = pressLoss.toFixed(0) + ' <span style="font-size: 14px; font-weight:700;">kPa</span>';

        // Logika Statusu (Kolory i animacje)
        // Pompki obiegowe standardowe radzą sobie do ok 20-25 kPa na najdłuższej pętli.
        
        let color = '';
        let rotorClass = '';
        
        if (pressLoss > 25 || flowMin > 5) {
            // STAN KRYTYCZNY (Czerwony)
            color = 'var(--rk-mass-danger)';
            statusOverlay.className = 'rk-mass-status-overlay status-err';
            statusOverlay.innerText = 'Krytyczne Opory - Pompa Zadławiona';
            rotorClass = 'anim-pump-rotor spin-stall';
            svgFlowAnim.style.animationDuration = '0s'; // Przepływ stoi
        } else if (pressLoss > 15 || flowMin > 3.5) {
            // OSTRZEŻENIE (Pomarańczowy)
            color = 'var(--rk-mass-warning)';
            statusOverlay.className = 'rk-mass-status-overlay status-warn';
            statusOverlay.innerText = 'Wysokie Opory - Ryzyko Szumów';
            rotorClass = 'anim-pump-rotor spin-fast';
            svgFlowAnim.style.animationDuration = '0.4s'; // Przepływ szybki, wymuszony
        } else {
            // OPTYMALNIE (Zielony)
            color = 'var(--rk-mass-success)';
            statusOverlay.className = 'rk-mass-status-overlay status-ok';
            statusOverlay.innerText = 'Przepływ Laminarny - Optymalnie';
            rotorClass = 'anim-pump-rotor spin-slow';
            svgFlowAnim.style.animationDuration = '1.5s'; // Przepływ spokojny
        }

        // Aplikacja kolorów do odczytów i SVG
        valFlow.style.color = color;
        valPress.style.color = color;
        
        svgPumpBorder.setAttribute('stroke', color);
        svgPumpCenter.setAttribute('fill', color);
        svgFlowAnim.setAttribute('stroke', color);
        
        // Klasy wirnika (animacja)
        svgPumpRotor.className.baseVal = rotorClass;
        
        // Zmiana wysokości słupka rotametru (0-30px, max 5 l/min to h=30)
        let fillHeight = (flowMin / 5) * 30;
        if (fillHeight > 30) fillHeight = 30;
        svgRotameterFill.setAttribute('height', fillHeight);
        svgRotameterFill.setAttribute('y', 40 - fillHeight);
        svgRotameterFill.setAttribute('fill', color);
    }

    slideQ.addEventListener('input', calculateSystem);
    slideL.addEventListener('input', calculateSystem);

    calculateSystem(); // Start
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-brand: #3b82f6; /* Niebieski - inżynieria */
    --rk-loop-accent: #06b6d4; /* Cyjan - przepływ */
    --rk-loop-success: #10b981;
    --rk-loop-warning: #f59e0b;
    --rk-loop-danger: #ef4444;
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-border: #e2e8f0;
}

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

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

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.15);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Simulator Section */
.rk-loop-interactive {
    padding: 40px 45px;
    background: #f1f5f9;
}

.rk-loop-sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

.rk-loop-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-loop-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    margin-bottom: 30px;
}

.rk-loop-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-loop-brand);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Gauge Visual */
.rk-loop-visual {
    background: var(--rk-loop-dark);
    padding: 30px;
    border-radius: 20px;
    text-align: center;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}

.rk-loop-indicator {
    font-size: 48px;
    font-weight: 900;
    margin: 10px 0;
    transition: color 0.4s;
}

.rk-loop-status-text {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 2px;
}

/* Dane Porównawcze */
.rk-loop-data-box {
    padding: 40px 45px;
}

.rk-loop-data-box h3 {
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 25px;
    color: var(--rk-loop-dark);
}

/* Układ Desktop - Tabela */
.rk-loop-table-wrapper {
    overflow-x: auto;
}

.rk-loop-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.rk-loop-table th {
    background: #f8fafc;
    text-align: left;
    padding: 18px;
    border-bottom: 2px solid var(--rk-loop-brand);
    font-weight: 800;
    color: var(--rk-loop-dark);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
}

.rk-loop-table td {
    padding: 18px;
    border-bottom: 1px solid #f1f5f9;
    color: #475569;
}

.rk-loop-table tr:hover td {
    background: #f0f9ff;
}

.rk-val-highlight {
    font-weight: 800;
    color: var(--rk-loop-brand);
}

/* Układ Mobilny - Kafelki (Domyślnie ukryte) */
.rk-loop-mobile-cards {
    display: none;
    grid-template-columns: 1fr;
    gap: 15px;
}

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

.rk-mc-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-loop-muted);
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-mc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 14px;
}

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

.rk-mc-label {
    color: #64748b;
}

.rk-mc-val {
    font-weight: 700;
    color: var(--rk-loop-dark);
}

.rk-mc-val.highlight {
    color: var(--rk-loop-brand);
    font-size: 16px;
    font-weight: 900;
}

/* SVG Anim */
.rk-pipe-svg {
    width: 100%;
    max-width: 250px;
    height: auto;
    margin-bottom: 15px;
}

.anim-flow {
    stroke-dasharray: 15 15;
    animation: flowMove 1s linear infinite;
}

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

/* Footer/CTA */
.rk-loop-cta {
    padding: 40px 45px;
    background: var(--rk-loop-bg);
    text-align: center;
}

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

.rk-btn-engineering:hover {
    background: #2563eb;
    transform: translateY(-4px);
    box-shadow: 0 20px 35px -5px rgba(59, 130, 246, 0.5);
}

/* Media Queries */
@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive, .rk-loop-data-box, .rk-loop-cta { padding: 30px 20px; }
    .rk-loop-sim-grid { grid-template-columns: 1fr; }
    .rk-loop-title { font-size: 22px; }
    
    /* Ukrycie tabeli i pokazanie kafelków na mobilce */
    .rk-loop-table-wrapper { display: none; }
    .rk-loop-mobile-cards { display: grid; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-loop-length",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna długość pętli i średnica rur w instalacji z pompą ciepła",
    "description": "Analiza inżynierska dopuszczalnych długości pętli (80-90m) dla rur 16x2mm. Poznaj wpływ oporów liniowych na sprawność układu hydraulicznego.",
    "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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-loops",
    "name": "Zestawienie parametrów hydraulicznych: Standard vs Pompa Ciepła",
    "description": "Dane porównawcze dotyczące temperatury zasilania, różnicy temperatur (Delta T) oraz granicznych długości pętli rur PEX/PERT dla niskotemperaturowych źródeł ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki",
      "średnica rury 16x2 opory",
      "delta T pompa ciepła",
      "projektowanie instalacji niskotemperaturowej",
      "opory liniowe w rurach PEX"
    ],
    "measurementTechnique": "Obliczenia strat ciśnienia na podstawie natężenia przepływu masowego wymaganego do utrzymania niskiej delty temperatur (5-7K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt Optymalny: Pętla 80-90m, Tz 30-33°C, Delta T 5K.",
        "System Standardowy: Pętla 100-120m, Tz 40-45°C, Delta T 10K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-hydraulics",
    "name": "Symulator Oporów Liniowych Pętli Grzewczej",
    "description": "Interaktywny kalkulator wizualizujący wzrost oporów hydraulicznych i obciążenia pompy obiegowej w funkcji długości rury grzewczej.",
    "applicationCategory": "Inżynieria/Kalkulator",
    "operatingSystem": "Wszystkie",
    "browserRequirements": "Obsługa JavaScript i SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-app">
    
    <div class="rk-loop-header">
        <div class="rk-loop-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"><circle cx="12" cy="12" r="10"></circle><path d="M12 16V12M12 8h.01"></path></svg>
            Inżynieria Hydrauliczna
        </div>
        <h2 class="rk-loop-title">Jaka powinna być maksymalna <span>długość pętli</span> i średnica rur?</h2>
    </div>

    <div class="rk-loop-interactive">
        <div class="rk-loop-sim-grid">
            
            <div class="rk-loop-controls">
                <div class="rk-slider-label">
                    <span>Długość Pętli (rura 16mm)</span>
                    <span id="valLoopLength" style="color: var(--rk-loop-brand);">85 m</span>
                </div>
                <input type="range" min="40" max="150" value="85" class="rk-loop-range" id="loopSlider">
                
                <p style="font-size: 14px; color: #64748b; line-height: 1.6; margin: 0;">
                    Zgodnie z normą <strong>PN-EN 1264</strong>, przekroczenie 90m przy rurze 16mm w układzie z pompą ciepła generuje opory, których standardowa pompa obiegowa nie jest w stanie pokonać przy niskiej delcie T.
                </p>
            </div>

            <div class="rk-loop-visual" id="rkVisualBox">
                <svg class="rk-pipe-svg" viewBox="0 0 200 60">
                    <path d="M 10 30 Q 100 0 190 30" fill="none" stroke="#334155" stroke-width="12" stroke-linecap="round"/>
                    <path id="svgFlowPath" class="anim-flow" d="M 10 30 Q 100 0 190 30" fill="none" stroke="var(--rk-loop-accent)" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-loop-status-text" id="statusLabel">Stan: Optymalny</div>
                <div class="rk-loop-indicator" id="resistanceVal">18 kPa</div>
                <div style="color: #94a3b8; font-size: 12px; font-weight: 700;">OPÓR LINII POWROTNEJ</div>
            </div>

        </div>
    </div>

    <div class="rk-loop-data-box">
        <h3>Porównanie standardu i optymalizacji PC</h3>
        
        <div class="rk-loop-table-wrapper">
            <table class="rk-loop-table">
                <thead>
                    <tr>
                        <th>Parametr Techniczny</th>
                        <th>Standard (Kocioł)</th>
                        <th>Optymalizacja (PC)</th>
                        <th>Różnica / Zysk</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Temperatura zasilania (Tz)</td>
                        <td>40–45°C</td>
                        <td class="rk-val-highlight">30–33°C</td>
                        <td><strong>+25% wyższy COP</strong></td>
                    </tr>
                    <tr>
                        <td>Delta T (Zas.-Powrót)</td>
                        <td>10 K</td>
                        <td class="rk-val-highlight">5–7 K</td>
                        <td>Stabilna praca inwertera</td>
                    </tr>
                    <tr>
                        <td>Max. długość pętli (16x2)</td>
                        <td>100–120 m</td>
                        <td class="rk-val-highlight">80–90 m</td>
                        <td>Opory niższe o 40%</td>
                    </tr>
                    <tr>
                        <td>Rozstaw rur (średni)</td>
                        <td>15 cm</td>
                        <td class="rk-val-highlight">10 cm</td>
                        <td>Niższa Tz o ok. 5°C</td>
                    </tr>
                    <tr>
                        <td>Rodzaj wylewki</td>
                        <td>Cementowa</td>
                        <td class="rk-val-highlight">Anhydrytowa</td>
                        <td>Przewodzenie k = 1,8</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rk-loop-mobile-cards">
            <div class="rk-mobile-card">
                <div class="rk-mc-title">Temperatura zasilania (Tz)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">40–45°C</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">30–33°C</span>
                </div>
                <div class="rk-mc-row" style="background:#f0fdf4; padding: 10px; border-radius: 8px; margin-top: 10px; border: 1px solid #bbf7d0;">
                    <span class="rk-mc-label" style="color: #15803d; font-weight:800;">ZYSK:</span>
                    <span class="rk-mc-val" style="color: #15803d;">+25% wyższy COP</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Delta T (Zas.-Powrót)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">10 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">5–7 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Stabilna praca inwertera</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Max. długość pętli (16x2)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">100–120 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">80–90 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Opory niższe o 40%</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rozstaw rur (średni)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">15 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">10 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Niższa Tz o ok. 5°C</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rodzaj wylewki</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">Cementowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">Anhydrytowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Przewodzenie k = 1,8</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-loop-cta">
        <p style="margin-bottom: 25px; color: #475569; font-size: 15px; max-width: 700px; margin-left: auto; margin-right: auto;">
            Maksymalna długość pętli dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">rury o średnicy 16x2 mm</a> w systemie z pompą ciepła to <strong>80–90 metrów</strong>. Przekroczenie tej wartości powoduje gwałtowny wzrost oporów liniowych, co zmusza <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">pompę obiegową</a> do pracy na najwyższym biegu, generując szumy i straty prądu.
        </p>
        <a href="https://projekt-ogrzewania.pl/sklep/" class="rk-btn-engineering">
            DOBIERZ MATERIAŁY PROJEKTOWE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    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-loop-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f87171; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Simulator Logic
    const slider = document.getElementById('loopSlider');
    const lengthLabel = document.getElementById('valLoopLength');
    const resistanceLabel = document.getElementById('resistanceVal');
    const statusLabel = document.getElementById('statusLabel');
    const visualBox = document.getElementById('rkVisualBox');
    const flowAnim = document.getElementById('svgFlowPath');

    function updateHydraulics(val) {
        lengthLabel.innerText = val + ' m';
        
        // Obliczenie oporu (model nieliniowy)
        // val 80 -> ok 18 kPa, val 120 -> ok 35 kPa, val 150 -> ok 55 kPa
        let baseRes = (val * val * 0.0025) + (val * 0.05);
        resistanceLabel.innerText = Math.round(baseRes) + ' kPa';

        if (val <= 95) {
            // Stan OK
            resistanceLabel.style.color = 'var(--rk-loop-success)';
            statusLabel.innerText = 'Stan: Optymalny';
            statusLabel.style.color = 'var(--rk-loop-success)';
            flowAnim.style.stroke = 'var(--rk-loop-success)';
            flowAnim.style.animationDuration = '1.5s';
        } else if (val <= 115) {
            // Stan Warning
            resistanceLabel.style.color = 'var(--rk-loop-warning)';
            statusLabel.innerText = 'Stan: Wysokie Opory';
            statusLabel.style.color = 'var(--rk-loop-warning)';
            flowAnim.style.stroke = 'var(--rk-loop-warning)';
            flowAnim.style.animationDuration = '0.7s';
        } else {
            // Stan Danger
            resistanceLabel.style.color = 'var(--rk-loop-danger)';
            statusLabel.innerText = 'Stan: Przeciążenie Pompy';
            statusLabel.style.color = 'var(--rk-loop-danger)';
            flowAnim.style.stroke = 'var(--rk-loop-danger)';
            flowAnim.style.animationDuration = '0.3s';
        }
    }

    slider.addEventListener('input', function(e) {
        updateHydraulics(e.target.value);
    });

    updateHydraulics(85);
});
</script>



<style>
:root {
    --rk-buf-dark: #0f172a;
    --rk-buf-card: #1e293b;
    --rk-buf-brand: #8b5cf6; /* Fiolet/Indygo - symbolizuje mieszanie ciepła i chłodu */
    --rk-buf-brand-light: #f5f3ff;
    --rk-buf-hot: #ef4444; /* Czerwony - zasilanie */
    --rk-buf-cold: #3b82f6; /* Niebieski - powrót */
    --rk-buf-mix: #d946ef; /* Róż/Fiolet - zmieszanie w sprzęgle */
    --rk-buf-success: #10b981;
    --rk-buf-warning: #f59e0b;
    --rk-buf-text: #334155;
    --rk-buf-muted: #64748b;
    --rk-buf-bg: #ffffff;
    --rk-buf-border: #e2e8f0;
}

.rk-buf-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-buf-bg);
    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-buf-header {
    background: linear-gradient(135deg, var(--rk-buf-dark) 0%, #2e1065 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-buf-brand);
}

.rk-buf-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.4);
}

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

.rk-buf-title span { color: #a78bfa; }

/* Interfejs Symulatora */
.rk-buf-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Przyciski Wyboru Schematu */
.rk-buf-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-buf-tab {
    background: #ffffff;
    border: 2px solid var(--rk-buf-border);
    padding: 15px 10px;
    border-radius: 16px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-buf-muted);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.rk-buf-tab:hover {
    border-color: #a78bfa;
    color: var(--rk-buf-brand);
    background: var(--rk-buf-brand-light);
}

.rk-buf-tab.active {
    background: var(--rk-buf-brand-light);
    border-color: var(--rk-buf-brand);
    color: var(--rk-buf-brand);
    box-shadow: 0 10px 15px -3px rgba(139, 92, 246, 0.1);
}

.rk-tab-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-buf-border);
    color: #ffffff;
    transition: all 0.3s;
}

.rk-buf-tab.active .rk-tab-icon {
    background: var(--rk-buf-brand);
}

/* Wizualizacja SVG */
.rk-buf-visual-box {
    background: var(--rk-buf-dark);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
    border: 4px solid #334155;
    position: relative;
}

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

/* Elementy SVG */
.svg-pipe {
    fill: none;
    stroke-width: 6;
    stroke-linecap: butt; /* Zapobiega efektowi nakładania fasolek */
    stroke-linejoin: round;
    transition: opacity 0.5s, stroke 0.5s;
}

.svg-flow-anim {
    fill: none;
    stroke-width: 4;
    stroke-dasharray: 8 8;
    stroke-linecap: butt;
    animation: flowMove 1.5s linear infinite;
    transition: opacity 0.5s, stroke 0.5s;
}

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

.svg-component {
    fill: #1e293b;
    stroke: #64748b;
    stroke-width: 3;
    transition: opacity 0.5s;
}

.svg-text {
    fill: #ffffff;
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 800;
}

/* Karta Wynikowa */
.rk-buf-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-buf-metric {
    background: #ffffff;
    border: 1px solid var(--rk-buf-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

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

.rk-metric-val {
    font-size: 18px;
    font-weight: 900;
    transition: color 0.3s;
}

/* Treść Merytoryczna */
.rk-buf-content {
    padding: 0 50px 45px 50px;
}

.rk-buf-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-buf-text);
    margin: 0 0 20px 0;
}

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

.rk-buf-list {
    list-style: none;
    padding: 0;
    margin: 30px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-buf-list-item {
    background: var(--rk-buf-bg);
    border: 1px solid var(--rk-buf-border);
    border-left: 5px solid var(--rk-buf-brand);
    padding: 20px 25px;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-item-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-buf-dark);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-item-badge {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.badge-rec { background: #dcfce7; color: #15803d; }
.badge-warn { background: #fef3c7; color: #b45309; }
.badge-alert { background: #fee2e2; color: #b91c1c; }

.rk-link {
    color: var(--rk-buf-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: all 0.3s;
}

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

@media (max-width: 768px) {
    .rk-buf-header, .rk-buf-interactive, .rk-buf-content { padding: 30px 25px; }
    .rk-buf-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-buf-results { grid-template-columns: 1fr; }
    .rk-buf-tab { flex-direction: row; justify-content: flex-start; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-bufor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jaką rolę pełni bufor ciepła w projekcie z pompą ciepła?",
    "description": "Przewodnik po schematach hydraulicznych: bufor szeregowy, równoległy (sprzęgło) i układ bezpośredni. Poznaj ich wpływ na sprawność i defrost pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-bufor",
    "name": "Wpływ schematu połączenia bufora na parametry pracy pompy ciepła",
    "description": "Zestawienie porównujące wpływ bufora szeregowego, równoległego oraz układu bezpośredniego na sprawność (COP), bezpieczeństwo defrostu oraz temperaturę zasilania (Tz).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor szeregowy czy sprzęgło",
      "zład wody w ogrzewaniu podłogowym",
      "defrost pompy ciepła bufor",
      "sprzęgło hydrauliczne pompa ciepła",
      "schemat instalacji pompa ciepła"
    ],
    "measurementTechnique": "Analiza wahań temperatury zasilania (Tz) oraz ocena bezpieczeństwa hydraulicznego podczas cyklu odszraniania (defrost) parownika w oparciu o dostępne pojemności zładu wodnego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szeregowy na powrocie: Najwyższy COP, brak mieszania Tz, pełne bezpieczeństwo defrostu (zład 15-20 l/kW).",
        "Równoległy (Sprzęgło): Spadek COP, wzrost Tz o 2-3 K z powodu mieszania strumieni w buforze.",
        "Bezpośredni (Open Loop): Wymaga idealnego projektu, ryzyko zablokowania przepływu przez siłowniki termoelektryczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-bufor",
    "name": "Symulator Przepływów w Schematach Buforowych",
    "description": "Interaktywne narzędzie wizualizujące kierunki przepływu i proces mieszania się wody grzewczej w zależności od wybranego sposobu wpięcia bufora ciepła do instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf-container" id="rk-buf-app">
    
    <div class="rk-buf-header">
        <div class="rk-buf-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="4" y="4" width="16" height="16" rx="2" ry="2"></rect><path d="M4 12h16"></path><path d="M12 4v16"></path></svg>
            Architektura Systemu
        </div>
        <h2 class="rk-buf-title">Jaką rolę pełni <span>bufor ciepła</span> w projekcie?</h2>
    </div>

    <div class="rk-buf-interactive">
        
        <div class="rk-buf-tabs">
            <div class="rk-buf-tab active" data-mode="szereg">
                <div class="rk-tab-icon">1</div>
                Szeregowy na powrocie
            </div>
            <div class="rk-buf-tab" data-mode="rownoleg">
                <div class="rk-tab-icon">2</div>
                Równoległy (Sprzęgło)
            </div>
            <div class="rk-buf-tab" data-mode="bezposred">
                <div class="rk-tab-icon">3</div>
                Układ Bezpośredni
            </div>
        </div>

        <div class="rk-buf-visual-box">
            <svg class="rk-buf-svg" viewBox="0 0 400 200">
                <rect class="svg-component" x="10" y="60" width="60" height="80" rx="6" />
                <text class="svg-text" x="25" y="105">PC</text>
                
                <rect class="svg-component" x="330" y="40" width="40" height="120" rx="4" />
                <text class="svg-text" x="342" y="105">OP</text>

                <g id="g-szereg" style="opacity: 1;">
                    <rect class="svg-component" x="170" y="110" width="60" height="70" rx="4" />
                    <text class="svg-text" x="180" y="150">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                </g>

                <g id="g-rownoleg" style="opacity: 0;">
                    <rect class="svg-component" x="170" y="40" width="60" height="120" rx="6" />
                    <text class="svg-text" x="180" y="105">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 70 L 170 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 70 L 170 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-mix)" d="M 230 70 L 330 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 230 70 L 330 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                </g>

                <g id="g-bezposred" style="opacity: 0;">
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 125 L 70 125" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 125 L 70 125" />
                    
                    <circle cx="200" cy="100" r="30" fill="none" stroke="#ef4444" stroke-width="4" stroke-dasharray="8 4"/>
                    <line x1="180" y1="80" x2="220" y2="120" stroke="#ef4444" stroke-width="4"/>
                </g>
            </svg>
        </div>

        <div class="rk-buf-results">
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Sprawność (COP)</div>
                <div class="rk-metric-val" id="valCop" style="color: var(--rk-buf-success);">Maksymalna</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Temperatura Zasilania</div>
                <div class="rk-metric-val" id="valTz" style="color: var(--rk-buf-success);">Bez strat (30°C)</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Odmrażanie (Defrost)</div>
                <div class="rk-metric-val" id="valDefrost" style="color: var(--rk-buf-success);">W 100% Bezpieczne</div>
            </div>
        </div>

    </div>

    <div class="rk-buf-content">
        <p>
            Wbrew obiegowym opiniom, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> w projekcie ogrzewania podłogowego pełni funkcję stricte hydrauliczną, a nie magazynową (rolę wielkiego akumulatora ciepła przejmuje wylewka betonowa lub anhydrytowa). 
        </p>
        <p>
            Jego głównym zadaniem jest zapewnienie <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">odpowiedniego zładu wody</a> wymaganego do procesu odmrażania parownika (tzw. <strong>defrostu</strong>). Pompa ciepła w tym trybie pobiera nagle dużą ilość energii z instalacji, aby stopić lód na jednostce zewnętrznej. Jeśli system nie zapewni stałego przepływu, pompa wyrzuci błąd.
        </p>

        <ul class="rk-buf-list">
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    1. Szeregowy na powrocie
                    <span class="rk-item-badge badge-rec">Zalecany</span>
                </div>
                <p>
                    Rozwiązanie najlepsze dla inwerterowych pomp powietrznych. Woda wracająca z podłogówki przepływa przez bufor (zbiornik 50–100 litrów), a zasilanie idzie bezpośrednio do rozdzielacza. <strong>Nie tracimy temperatury zasilania</strong> (brak zjawiska mieszania), a pompa ma zagwarantowany zład wody do odszraniania. Zalecana pojemność: ok. 15–20 litrów na każdy 1 kW mocy urządzenia.
                </p>
            </li>
            
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    2. Równoległy (Sprzęgło hydrauliczne)
                    <span class="rk-item-badge badge-warn">Wymusza spadek COP</span>
                </div>
                <p>
                    Stosowany najczęściej w układach z mieszaczami (np. gdy podłogówka działa razem z kaloryferami). Woda z pompy ciepła wpada do bufora, miesza się, i dopiero stamtąd jest tłoczona do obiegów przez <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">niezależne pompy obiegowe</a>. Niestety, wymieszanie wody zawsze <strong>podnosi wymaganą temperaturę pracy sprężarki o ok. 2–3 K</strong>, co bezpośrednio obniża współczynnik COP.
                </p>
            </li>

            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    3. Układ Bezpośredni
                    <span class="rk-item-badge badge-alert">Wymaga rygoru</span>
                </div>
                <p>
                    Całkowity brak bufora. Układ dopuszczalny <strong>wyłącznie</strong> jako tzw. "Open Loop". Inwestor i instalator muszą zagwarantować stały przepływ masowy przez podłogę. Wymaga to rezygnacji ze <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">strefowych siłowników termoelektrycznych</a> na rozdzielaczach, aby nie dopuścić do sytuacji, w której termostaty zamkną pętle, gdy pompa rozpocznie defrost.
                </p>
            </li>
        </ul>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    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-buf-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Logika Symulatora
    const tabs = document.querySelectorAll('.rk-buf-tab');
    const svgSzereg = document.getElementById('g-szereg');
    const svgRownoleg = document.getElementById('g-rownoleg');
    const svgBezposred = document.getElementById('g-bezposred');
    
    const valCop = document.getElementById('valCop');
    const valTz = document.getElementById('valTz');
    const valDefrost = document.getElementById('valDefrost');

    function switchMode(mode) {
        // Reset Tabs
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-buf-tab[data-mode="${mode}"]`).classList.add('active');

        // Reset SVGs
        svgSzereg.style.opacity = '0';
        svgRownoleg.style.opacity = '0';
        svgBezposred.style.opacity = '0';

        if (mode === 'szereg') {
            svgSzereg.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'rownoleg') {
            svgRownoleg.style.opacity = '1';
            
            valCop.innerText = 'Obniżona o ok. 8%';
            valCop.style.color = 'var(--rk-buf-warning)';
            
            valTz.innerText = 'Wzrost o 2–3 K';
            valTz.style.color = 'var(--rk-buf-warning)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'bezposred') {
            svgBezposred.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerHTML = 'Krytyczne Ryzyko!';
            valDefrost.style.color = 'var(--rk-buf-hot)';
        }
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchMode(this.getAttribute('data-mode'));
        });
    });
});
</script>



<style>
:root {
    --rk-screed-dark: #0f172a;
    --rk-screed-card: #1e293b;
    --rk-screed-brand: #ea580c; /* Ciepły pomarańczowy - symbolizujący przewodnictwo */
    --rk-screed-brand-light: #ffedd5;
    --rk-screed-concrete: #94a3b8; /* Szary beton */
    --rk-screed-anhydrite: #fcd34d; /* Jasny, płynny anhydryt */
    --rk-screed-success: #10b981;
    --rk-screed-danger: #ef4444;
    --rk-screed-bg: #f8fafc;
    --rk-screed-border: #e2e8f0;
    --rk-screed-text: #334155;
}

.rk-screed-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(234, 88, 12, 0.15);
    border: 1px solid rgba(234, 88, 12, 0.3);
    overflow: hidden;
}

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

.rk-screed-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-screed-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

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

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

/* Przełącznik Wylewki */
.rk-screed-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
}

.rk-screed-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-screed-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-screed-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-screed-concrete); /* Domyślny kolor betonu */
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

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

/* SVG Wizualizacja */
.rk-screed-visual {
    background: var(--rk-screed-dark);
    border-radius: 20px;
    padding: 20px;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-svg-crosssection {
    width: 100%;
    max-width: 250px;
    height: auto;
}

/* Style SVG */
.svg-screed-mass {
    transition: fill 0.5s, height 0.5s, y 0.5s;
}

.svg-air-gap {
    transition: stroke-width 0.5s, stroke 0.5s;
}

.svg-bubbles {
    transition: opacity 0.5s;
}

.svg-heat-wave {
    fill: none;
    stroke-linecap: round;
    transition: stroke 0.5s, stroke-width 0.5s;
}

.anim-heat-slow {
    stroke-dasharray: 10 20;
    animation: riseUp 3s linear infinite;
}

.anim-heat-fast {
    stroke-dasharray: 20 10;
    animation: riseUp 1s linear infinite;
}

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

/* Karty Danych */
.rk-screed-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

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

.rk-data-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-screed-text);
    opacity: 0.7;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-data-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-screed-dark);
    display: flex;
    align-items: baseline;
    gap: 4px;
    transition: color 0.3s;
}

.rk-data-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-screed-text);
    opacity: 0.6;
}

.card-full {
    grid-column: span 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--rk-screed-brand-light);
    border-color: rgba(234, 88, 12, 0.3);
}

.card-full .rk-data-val {
    color: var(--rk-screed-brand);
}

/* Treść Artykułu */
.rk-screed-content {
    padding: 45px 50px;
}

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

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

.rk-alert-error {
    background: #fef2f2;
    border-left: 4px solid var(--rk-screed-danger);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-alert-error h4 {
    margin: 0 0 10px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-alert-error p {
    margin: 0;
    color: #7f1d1d;
    font-size: 15px;
}

.rk-link {
    color: var(--rk-screed-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(234, 88, 12, 0.4);
    transition: all 0.3s;
}

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

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

.rk-btn-screed {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-screed-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.4);
}

.rk-btn-screed:hover {
    transform: translateY(-4px);
    background: #c2410c;
    box-shadow: 0 20px 35px -5px rgba(234, 88, 12, 0.5);
}

@media (max-width: 768px) {
    .rk-screed-header, .rk-screed-interactive, .rk-screed-content, .rk-screed-cta { padding: 30px 20px; }
    .rk-screed-grid { grid-template-columns: 1fr; }
    .rk-screed-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; text-align: center; }
    .rk-screed-title { font-size: 24px; }
    .card-full { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Jak rodzaj wylewki wpływa na wydajność pompy ciepła?",
    "description": "Porównanie przewodnictwa cieplnego jastrychu anhydrytowego i betonu. Anhydryt eliminuje pustki powietrzne, obniża temperaturę zasilania i zwiększa SCOP o 6-8%.",
    "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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-wylewki",
    "name": "Właściwości termofizyczne jastrychów grzewczych",
    "description": "Zestawienie współczynników przewodzenia ciepła oraz wpływu grubości wylewki na efektywność instalacji ogrzewania podłogowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jastrych anhydrytowy przewodzenie ciepła",
      "wylewka betonowa pod ogrzewanie podłogowe",
      "bezwładność cieplna podłogówki",
      "wzrost SCOP pompy ciepła",
      "grubość wylewki na podłogówkę"
    ],
    "measurementTechnique": "Analiza współczynnika lambda [W/(mK)] materiałów budowlanych oraz zjawiska oporu cieplnego wywołanego pustkami powietrznymi (złe otulenie rury w betonie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych Anhydrytowy: λ ≈ 1.8-2.0 W/(mK), idealne otulenie rury, wzrost SCOP o 6-8%, niska bezwładność.",
        "Tradycyjny Beton: λ ≈ 1.1-1.2 W/(mK), mikropory powietrzne działające jako izolator, duża bezwładność (szczególnie przy warstwie 10 cm)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-screed",
    "name": "Symulator Przewodnictwa Cieplnego Wylewki",
    "description": "Narzędzie interaktywne pokazujące różnice w otuleniu rury i propagacji ciepła pomiędzy betonem a anhydrytem w systemie płaszczyznowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-screed-container" id="rk-screed-app">
    
    <div class="rk-screed-header">
        <div class="rk-screed-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"><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>
            Fizyka Budowli
        </div>
        <h2 class="rk-screed-title">Jak rodzaj wylewki wpływa na <span>wydajność pompy ciepła?</span></h2>
    </div>

    <div class="rk-screed-interactive">
        
        <div class="rk-screed-toggle-wrapper">
            <div class="rk-screed-pill" id="screedPill"></div>
            <button class="rk-screed-btn active" data-type="beton" id="btnBeton">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><circle cx="15.5" cy="15.5" r="1.5"></circle><circle cx="15.5" cy="8.5" r="1.5"></circle><circle cx="8.5" cy="15.5" r="1.5"></circle></svg>
                Tradycyjny Beton
            </button>
            <button class="rk-screed-btn" data-type="anhydryt" id="btnAnhydryt">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 4.2c3.11 3.11 3.11 8.14 0 11.25a7.94 7.94 0 0 1-11.32 0c-3.11-3.11-3.11-8.14 0-11.25L12 2.69z"></path></svg>
                Jastrych Anhydrytowy
            </button>
        </div>

        <div class="rk-screed-grid">
            
            <div class="rk-screed-visual">
                <div style="color: #cbd5e1; font-size: 11px; font-weight: 800; letter-spacing: 1px; margin-bottom: 15px; text-transform: uppercase;">Przekrój - Promieniowanie</div>
                <svg class="rk-svg-crosssection" viewBox="0 0 200 160">
                    <rect x="10" y="130" width="180" height="30" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2" />
                    <line x1="10" y1="140" x2="190" y2="140" stroke="#94a3b8" stroke-dasharray="4 4"/>
                    
                    <rect id="svgScreed" class="svg-screed-mass" x="10" y="40" width="180" height="90" fill="var(--rk-screed-concrete)" />
                    
                    <g id="svgBubbles" class="svg-bubbles" fill="#ffffff" opacity="0.4">
                        <circle cx="30" cy="60" r="3"/><circle cx="50" cy="110" r="4"/><circle cx="80" cy="50" r="2"/>
                        <circle cx="150" cy="70" r="5"/><circle cx="170" cy="100" r="3"/><circle cx="120" cy="115" r="4"/>
                        <circle cx="40" cy="80" r="2"/><circle cx="140" cy="50" r="3"/><circle cx="100" cy="120" r="2"/>
                    </g>

                    <circle cx="100" cy="90" r="22" fill="none" class="svg-air-gap" id="svgAirGap" stroke="#ffffff" stroke-width="4"/>
                    <circle cx="100" cy="90" r="16" fill="#ef4444" stroke="#b91c1c" stroke-width="2"/>
                    
                    <g id="svgHeatWaves" stroke="#ef4444">
                        <path class="svg-heat-wave anim-heat-slow" d="M 60 70 Q 60 40 60 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 100 60 Q 100 30 100 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 140 70 Q 140 40 140 10" />
                    </g>
                </svg>
            </div>

            <div class="rk-screed-data-grid">
                <div class="rk-data-card">
                    <div class="rk-data-label">Przewodnictwo (&lambda;)</div>
                    <div class="rk-data-val" id="valLambda">1.2 <span class="rk-data-unit">W/(m&middot;K)</span></div>
                </div>
                <div class="rk-data-card">
                    <div class="rk-data-label">Otulenie Rury</div>
                    <div class="rk-data-val" id="valContact" style="color: var(--rk-screed-text); font-size: 20px;">Słabe (Izolator)</div>
                </div>
                <div class="rk-data-card card-full">
                    <div>
                        <div class="rk-data-label">Wpływ na pompę ciepła</div>
                        <div class="rk-data-val" id="valEffect" style="color: var(--rk-screed-text); font-size: 20px; display: block;">Wymaga wyższej o 3&deg;C Tz</div>
                    </div>
                    <div style="text-align: right;">
                        <div class="rk-data-label" style="color: var(--rk-screed-danger);" id="lblScop">Spadek SCOP</div>
                        <div class="rk-data-val" id="valScop" style="color: var(--rk-screed-danger);">Brak zysku</div>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-screed-content">
        <p>
            Wybór jastrychu to decyzja stricte inżynieryjna, a nie tylko kosmetyczna czy wykończeniowa. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-link">Jastrych anhydrytowy</a> posiada współczynnik przewodzenia ciepła &lambda; &approx; <strong>1,8&ndash;2,0 W/(m&middot;K)</strong>, podczas gdy dla tradycyjnego betonu z miksikreta wartość ta wynosi zaledwie <strong>1,1&ndash;1,2 W/(m&middot;K)</strong>.
        </p>

        <p>
            Dzięki płynnej, samopoziomującej konsystencji, anhydryt w 100% szczelnie otula rurę grzewczą. Eliminuje to puste mikropęcherzyki powietrza, które w betonie działają jak naturalny izolator hamujący przepływ energii. W efekcie, aby uzyskać tę samą temperaturę odczuwalną na powierzchni kafli, woda w układzie z anhydrytem może być o <strong>2&ndash;3&deg;C chłodniejsza</strong>. To z kolei przekłada się na mniejsze zużycie prądu i realny wzrost współczynnika SCOP pompy ciepła o około <strong>6&ndash;8%</strong>.
        </p>

        <div class="rk-alert-error">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Konsekwencje błędów wykonawczych
            </h4>
            <p>
                Wylanie zbyt grubej warstwy betonu (np. 10 cm, co często ma miejsce przy łataniu nierówności chudziaka) drastycznie zwiększa <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link">bezwładność cieplną</a>. System staje się ociężały, nie reaguje na chwilowe zyski słoneczne wpadające przez okna, co prowadzi do notorycznego przegrzewania pomieszczeń i ogromnych strat energii.
            </p>
        </div>
    </div>

    <div class="rk-screed-cta">
        <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-btn-screed">
            PRZECZYTAJ KOMPLETNY PRZEWODNIK O WYLEWKACH
            <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="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    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-screed-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Elementy DOM
    const btnBeton = document.getElementById('btnBeton');
    const btnAnhydryt = document.getElementById('btnAnhydryt');
    const pill = document.getElementById('screedPill');
    
    // SVG Elements
    const svgScreed = document.getElementById('svgScreed');
    const svgBubbles = document.getElementById('svgBubbles');
    const svgAirGap = document.getElementById('svgAirGap');
    const svgHeatWaves = document.querySelectorAll('.svg-heat-wave');
    
    // Data Elements
    const valLambda = document.getElementById('valLambda');
    const valContact = document.getElementById('valContact');
    const valEffect = document.getElementById('valEffect');
    const lblScop = document.getElementById('lblScop');
    const valScop = document.getElementById('valScop');

    // 3. Logika Przełączania
    function setScreedType(type) {
        if (type === 'beton') {
            // UI Toggle
            btnBeton.classList.add('active');
            btnAnhydryt.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBeton.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-concrete)';

            // SVG Update (Grubszy, z bąblami, powolne ciepło, air gap)
            svgScreed.setAttribute('fill', 'var(--rk-screed-concrete)');
            svgScreed.setAttribute('height', '90'); // Grubsza
            svgScreed.setAttribute('y', '40');
            svgBubbles.style.opacity = '0.4';
            svgAirGap.setAttribute('stroke-width', '4'); // Szpara powietrzna widoczna
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-slow';
                wave.setAttribute('stroke', '#f87171'); // Słabsze czerwone
            });

            // Data Update
            valLambda.innerHTML = '1.2 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'Słabe (Izolator)';
            valContact.style.color = 'var(--rk-screed-text)';
            valEffect.innerText = 'Wymaga wyższej o 3°C Tz';
            
            lblScop.innerText = 'Spadek efektywności';
            lblScop.style.color = 'var(--rk-screed-danger)';
            valScop.innerText = 'Brak zysku';
            valScop.style.color = 'var(--rk-screed-danger)';

        } else {
            // UI Toggle
            btnAnhydryt.classList.add('active');
            btnBeton.classList.remove('active');
            pill.style.transform = `translateX(${btnBeton.offsetWidth}px)`;
            pill.style.width = btnAnhydryt.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-brand)';

            // SVG Update (Cieńszy, bez bąbli, szybkie ciepło, idealne otulenie)
            svgScreed.setAttribute('fill', 'var(--rk-screed-anhydrite)');
            svgScreed.setAttribute('height', '60'); // Cieńsza wylewka
            svgScreed.setAttribute('y', '70');
            svgBubbles.style.opacity = '0';
            svgAirGap.setAttribute('stroke-width', '0'); // Brak szpary powietrznej
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-fast';
                wave.setAttribute('stroke', '#ea580c'); // Intensywne pomarańczowe
            });

            // Data Update
            valLambda.innerHTML = '2.0 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'W 100% Idealne';
            valContact.style.color = 'var(--rk-screed-success)';
            valEffect.innerText = 'Obniża Tz o 2-3°C';
            
            lblScop.innerText = 'Zysk dla pompy ciepła';
            lblScop.style.color = 'var(--rk-screed-brand)';
            valScop.innerText = '+ 8% SCOP';
            valScop.style.color = 'var(--rk-screed-brand)';
        }
    }

    // Inicjalizacja wymiarów pigułki (fix na start)
    setTimeout(() => {
        pill.style.width = btnBeton.offsetWidth + 'px';
    }, 100);

    // Event Listeners
    btnBeton.addEventListener('click', () => setScreedType('beton'));
    btnAnhydryt.addEventListener('click', () => setScreedType('anhydryt'));
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwony - sygnalizacja błędu/ostrzeżenia */
    --rk-err-accent: #f87171;
    --rk-err-warn: #f59e0b;
    --rk-err-info: #3b82f6;
    --rk-err-bg: #f8fafc;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-border: #e2e8f0;
}

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

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

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

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

.rk-err-title span { color: var(--rk-err-accent); }

.rk-err-intro {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 20px 0 0 0;
    max-width: 800px;
}

/* Sekcja Kafelków */
.rk-err-interactive {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

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

/* Pojedynczy Kafelek */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer;
}

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

.rk-err-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -5px rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.3);
}

.rk-err-card:hover::before {
    background: var(--rk-err-brand);
}

.rk-err-card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.rk-err-num {
    width: 36px;
    height: 36px;
    background: var(--rk-err-bg);
    color: var(--rk-err-muted);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.4s;
}

.rk-err-card:hover .rk-err-num {
    background: var(--rk-err-brand);
    color: #ffffff;
}

.rk-err-card h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-err-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-err-text);
    margin: 0 0 20px 0;
    flex-grow: 1;
}

/* Wizualizacje SVG */
.rk-err-visual {
    background: var(--rk-err-dark);
    height: 140px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

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

/* 1. Strefy Brzegowe */
.anim-cold-draft { stroke-dasharray: 5 10; animation: dropDown 2s linear infinite; opacity: 0.2; }
.rk-err-card:hover .anim-cold-draft { opacity: 1; stroke: #3b82f6; }
@keyframes dropDown { to { stroke-dashoffset: -30; } }

/* 2. Zbyt długa pętla */
.anim-pump-fail { transform-origin: center; }
.rk-err-card:hover .anim-pump-fail { animation: shakeErr 0.4s ease-in-out infinite; fill: var(--rk-err-brand); }
.pipe-fail-gradient { transition: stop-color 0.5s; }
.rk-err-card:hover .pipe-fail-gradient { stop-color: #3b82f6; } 
@keyframes shakeErr { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } }

/* 3. EVOH Bariera */
.anim-o2 { opacity: 0; transform: translateY(10px); transition: all 0.5s; }
.rk-err-card:hover .anim-o2 { opacity: 1; transform: translateY(0); animation: floatUp 2s infinite alternate; }
.pipe-rust { transition: fill 1s; }
.rk-err-card:hover .pipe-rust { fill: #9a3412; }
@keyframes floatUp { to { transform: translateY(-15px); } }

/* 4. Dylatacje */
.anim-crack { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out; }
.rk-err-card:hover .anim-crack { stroke-dashoffset: 0; }
.anim-expand-l { transition: transform 0.8s; }
.anim-expand-r { transition: transform 0.8s; }
.rk-err-card:hover .anim-expand-l { transform: translateX(-5px); }
.rk-err-card:hover .anim-expand-r { transform: translateX(5px); }

/* 5. Zabudowa Stała */
.anim-heat-trap { opacity: 0.3; transition: all 0.8s; }
.rk-err-card:hover .anim-heat-trap { opacity: 1; fill: #b91c1c; }
.anim-bounce { stroke-dasharray: 4 4; animation: bounceBack 1.5s infinite; opacity: 0;}
.rk-err-card:hover .anim-bounce { opacity: 1; }
@keyframes bounceBack { 0% { stroke-dashoffset: 0; } 50% { stroke-dashoffset: -10; } 100% { stroke-dashoffset: 0; } }

/* 6. Brak Równoważenia (Nowy) */
.anim-flow-imbalance { stroke-dasharray: 10 10; animation: flowRun 1s linear infinite; }
@keyframes flowRun { to { stroke-dashoffset: -20; } }
.rk-err-card:hover .flow-cold { stroke: #1e293b; transition: stroke 0.5s; }

.rk-err-consequence {
    background: #fef2f2;
    color: #991b1b;
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    margin-top: 15px;
    border-left: 3px solid var(--rk-err-brand);
}

.rk-link {
    color: var(--rk-err-info);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

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

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

.rk-btn-safe {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-err-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
}

.rk-btn-safe:hover {
    transform: translateY(-4px);
    background: #334155;
    box-shadow: 0 20px 35px -5px rgba(15, 23, 42, 0.5);
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-interactive, .rk-err-cta { padding: 30px 20px; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-err-title { font-size: 24px; }
}
</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-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Top 6 krytycznych błędów w projektach ogrzewania podłogowego",
    "description": "Lista najczęstszych błędów instalacyjnych: brak stref brzegowych, zbyt długie pętle, brak bariery EVOH, brak dylatacji, błędy zabudowy oraz brak równoważenia hydraulicznego.",
    "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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Zestawienie krytycznych błędów hydraulicznych i termicznych v2",
    "description": "Analiza skutków 6 najczęstszych pomyłek wykonawczych w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "błędy w ogrzewaniu podłogowym",
      "brak stref brzegowych",
      "rura bez bariery antydyfuzyjnej",
      "brak równoważenia podłogówki",
      "pękanie posadzki dylatacja"
    ],
    "measurementTechnique": "Wizualizacja procesów degradacji systemu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak stref brzegowych = wychłodzenie przy oknach.",
        "Zbyt długa pętla = brak przepływu.",
        "Rura bez EVOH = korozja pompy.",
        "Brak dylatacji = pękanie płytek.",
        "Zabudowa stała = uwięzienie ciepła.",
        "Brak równoważenia = zimne pokoje."
      ]
    }
  }
]
</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="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>
            Audyt Techniczny 2026
        </div>
        <h2 class="rk-err-title">Top 6 najczęstszych <span>błędów</span> w projektach</h2>
        <p class="rk-err-intro">Nawet najdroższa pompa ciepła nie zrekompensuje błędów popełnionych na etapie projektu i montażu. Poznaj 6 krytycznych pomyłek, które bezpowrotnie niszczą efektywność Twojego domu. Najedź na kafelek, aby zobaczyć fizykę problemu.</p>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">1</div>
                    <h3>Brak stref brzegowych</h3>
                </div>
                <p class="rk-err-desc">Niezagęszczenie rur pod oknami tarasowymi. Zimne powietrze swobodnie opada na podłogę bez bariery cieplnej.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="10" height="100" fill="#cbd5e1"/>
                        <rect x="30" y="20" width="40" height="80" fill="rgba(59, 130, 246, 0.2)" stroke="#3b82f6" stroke-width="2"/>
                        <circle cx="100" cy="115" r="5" fill="#f87171"/>
                        <circle cx="150" cy="115" r="5" fill="#f87171"/>
                        <path class="anim-cold-draft" d="M 60 100 Q 90 110 160 110" fill="none" stroke="#64748b" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: „Roszenie” szyb i chłód przy oknach. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">Czytaj o strefach</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">2</div>
                    <h3>Zbyt długie pętle</h3>
                </div>
                <p class="rk-err-desc">Pętle powyżej 100m przy rurze 16mm generują opory, których pompa obiegowa nie jest w stanie pokonać.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <path d="M 20 100 L 20 40 A 10 10 0 0 1 40 40 L 40 100 A 10 10 0 0 0 60 100 L 60 40 A 10 10 0 0 1 80 40 L 80 100 A 10 10 0 0 0 100 100 L 100 40 A 10 10 0 0 1 120 40 L 120 100 A 10 10 0 0 0 140 100 L 140 40 A 10 10 0 0 1 160 40 L 160 100" fill="none" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="20" cy="115" r="15" fill="#334155" class="anim-pump-fail"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Zimna podłoga mimo pracy pompy. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">Limity pętli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">3</div>
                    <h3>Brak bariery EVOH</h3>
                </div>
                <p class="rk-err-desc">Przenikanie tlenu przez ścianki rury powoduje rdzewienie wymienników ciepła i elementów PC.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="160" height="60" rx="10" fill="#38bdf8" class="pipe-rust"/>
                        <text x="80" y="25" fill="#94a3b8" font-size="12" font-weight="bold" class="anim-o2">O&sup2;</text>
                        <circle cx="50" cy="70" r="4" fill="#78350f" opacity="0.8"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Korozja i zapowietrzanie. <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-link">Znaczenie EVOH</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">4</div>
                    <h3>Brak dylatacji</h3>
                </div>
                <p class="rk-err-desc">Brak nacięć przy dużych powierzchniach uniemożliwia jastrychowi swobodną pracę termiczną.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-l"/>
                        <rect x="105" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-r"/>
                        <path d="M 95 30 L 100 60 L 90 80 L 105 110" fill="none" stroke="#ef4444" stroke-width="3" class="anim-crack"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Pękanie płytek i fug. <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">Zasady dylatacji</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">5</div>
                    <h3>Zabudowa Stała</h3>
                </div>
                <p class="rk-err-desc">Rury pod szafkami czy wyspami kuchennymi przegrzewają meble zamiast oddawać ciepło do pokoju.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="40" y="30" width="120" height="60" fill="#854d0e" rx="4"/>
                        <rect x="40" y="100" width="120" height="20" fill="#f87171" class="anim-heat-trap"/>
                        <path d="M 90 95 L 90 85 L 80 90" fill="none" stroke="#ef4444" stroke-width="2" class="anim-bounce"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Niszczenie mebli i strata energii. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/" class="rk-link">Wpływ mebli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">6</div>
                    <h3>Brak równoważenia</h3>
                </div>
                <p class="rk-err-desc">Brak nastaw na rotametrach rozdzielacza powoduje, że woda płynie tylko tam, gdzie ma najmniejszy opór.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="20" height="100" fill="#334155"/>
                        <path d="M 40 40 L 120 40 L 120 60 L 40 60" fill="none" stroke="#ef4444" stroke-width="6" class="anim-flow-imbalance"/>
                        <path d="M 40 80 L 170 80 L 170 100 L 40 100" fill="none" stroke="#64748b" stroke-width="6" class="flow-cold"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Jeden pokój przegrzany, drugi lodowaty. <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">Rola rotametrów</a>.</div>
            </div>

        </div>
    </div>

    <div class="rk-err-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-safe">
            PROJEKTUJ Z EKSPERTAMI - UNIKNIJ BŁĘDÓW
            <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
        </a>
    </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-err-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }
    const cards = document.querySelectorAll('.rk-err-card');
    cards.forEach(card => {
        card.addEventListener('touchstart', function() {
            this.classList.toggle('hovered'); 
        }, {passive: true});
    });
});
</script>



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



<style>
:root {
    --rk-inv-dark: #0f172a;
    --rk-inv-card: #1e293b;
    --rk-inv-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności i zysku */
    --rk-inv-brand-light: #dcfce7;
    --rk-inv-accent: #3b82f6; /* Zaufany niebieski */
    --rk-inv-warn: #f59e0b;
    --rk-inv-danger: #ef4444; /* Czerwony - straty */
    --rk-inv-danger-light: #fee2e2;
    --rk-inv-bg: #f8fafc;
    --rk-inv-border: #e2e8f0;
    --rk-inv-text: #334155;
    --rk-inv-muted: #64748b;
}

.rk-inv-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(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

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

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

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

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

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

.rk-inv-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
    position: relative;
}

.rk-inv-btn {
    flex: 1;
    padding: 18px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-inv-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-inv-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-inv-danger);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/* Grid layout dla wykresu i wyników */
.rk-inv-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
    align-items: center;
}

/* Animowany Wykres Słupkowy SVG */
.rk-inv-chart-box {
    background: #ffffff;
    border: 1px solid var(--rk-inv-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    height: 280px;
    display: flex;
    flex-direction: column;
}

.rk-chart-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-inv-muted);
    letter-spacing: 1px;
    text-align: center;
    margin-bottom: 15px;
}

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

.svg-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.4s;
    rx: 6;
}

.svg-bar-label {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 800;
    fill: var(--rk-inv-muted);
    text-anchor: middle;
    transition: fill 0.4s;
}

.svg-bar-val {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 900;
    fill: var(--rk-inv-dark);
    text-anchor: middle;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Wynikowe */
.rk-inv-data-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

.rk-inv-data-card.highlight {
    background: var(--rk-inv-danger-light);
    border-color: rgba(239, 68, 68, 0.4);
}

.rk-inv-data-info h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-inv-dark);
    text-transform: uppercase;
}

.rk-inv-data-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-inv-muted);
}

.rk-inv-data-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-inv-danger);
    transition: color 0.3s;
}

/* Treść Merytoryczna - Kafelki na Desktop i Mobile */
.rk-inv-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-inv-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-inv-text);
    margin-bottom: 30px;
}

.rk-benefit-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 35px;
}

.rk-b-card {
    background: var(--rk-inv-bg);
    border: 1px solid var(--rk-inv-border);
    border-top: 4px solid var(--rk-inv-brand);
    padding: 25px 20px;
    border-radius: 12px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

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

.rk-b-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
    color: var(--rk-inv-brand);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

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

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

.rk-subsidies-box {
    background: #f0f9ff;
    border-left: 4px solid var(--rk-inv-accent);
    padding: 25px;
    border-radius: 0 12px 12px 0;
}

.rk-subsidies-box h3 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #0369a1;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-link {
    color: var(--rk-inv-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

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

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

.rk-btn-inv {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-inv-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-inv:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-inv-header, .rk-inv-interactive, .rk-inv-content, .rk-inv-cta { padding: 30px 20px; }
    .rk-inv-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-benefit-cards { grid-template-columns: 1fr; } /* Kafelki pod sobą na mobile */
    .rk-inv-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; }
    .rk-inv-title { font-size: 24px; }
    .rk-inv-data-card { 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/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-inwestycja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego warto zamówić profesjonalny projekt? Zwrot z inwestycji",
    "description": "Profesjonalny projekt podłogówki zapobiega przewymiarowaniu pompy ciepła, eliminuje odpady rur i jest niezbędny do uzyskania dotacji Czyste Powietrze.",
    "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-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-inwestycja",
    "name": "Kalkulacja redukcji kosztów inwestycyjnych (CAPEX)",
    "description": "Zestawienie obrazujące oszczędności wynikające z optymalizacji OZC i dokładnego trasowania rur względem montażu 'na oko'.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "cena projektu ogrzewania podłogowego",
      "dotacje czyste powietrze 2026 wymogi",
      "przewymiarowana pompa ciepła koszty",
      "ile rury na podłogówkę",
      "zwrot z inwestycji OZC"
    ],
    "measurementTechnique": "Szacowanie oszczędności na podstawie redukcji mocy znamionowej pompy ciepła (np. z 9kW na 6kW) oraz eliminacji zakupu nadwyżek materiałowych (rury, izolacja).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Oszczędność 3000-5000 PLN na różnicy w cenie urządzenia.",
        "Materiały Hydrauliczne: Oszczędność rzędu 15% dzięki dokładnemu zestawieniu z programu CAD.",
        "Formalności: Zgodność z audytami programów Moje Ciepło i Czyste Powietrze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-inwestycja",
    "name": "Symulator Redukcji Kosztów Inwestycyjnych",
    "description": "Interaktywny wykres słupkowy ilustrujący różnice w nakładach finansowych pomiędzy instalacją intuicyjną a projektowaną inżynieryjnie.",
    "applicationCategory": "FinancialApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-inv-container" id="rk-inv-app">
    <div class="rk-inv-header">
        <div class="rk-inv-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"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Ekonomia i Opłacalność
        </div>
        <h2 class="rk-inv-title">Dlaczego profesjonalny projekt <span>zwraca się natychmiast?</span></h2>
    </div>

    <div class="rk-inv-interactive">
        
        <div class="rk-inv-toggle-wrap">
            <div class="rk-inv-pill" id="invPill"></div>
            <button class="rk-inv-btn active" data-type="bad" id="btnInvBad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Instalator "Na oko"
            </button>
            <button class="rk-inv-btn" data-type="good" id="btnInvGood">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Projekt Inżynierski
            </button>
        </div>

        <div class="rk-inv-grid">
            
            <div class="rk-inv-chart-box">
                <div class="rk-chart-title">Porównanie Kosztów (CAPEX)</div>
                <svg class="rk-svg-chart" viewBox="0 0 200 180">
                    <line x1="20" y1="30" x2="180" y2="30" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="80" x2="180" y2="80" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    
                    <rect id="barHeatPump" class="svg-bar" x="40" y="30" width="45" height="100" fill="var(--rk-inv-danger)"/>
                    <text id="valHeatPumpSvg" class="svg-bar-val" x="62.5" y="22">32 k</text>
                    <text class="svg-bar-label" x="62.5" y="148">Pompa C.</text>

                    <rect id="barMaterials" class="svg-bar" x="115" y="60" width="45" height="70" fill="var(--rk-inv-warn)"/>
                    <text id="valMaterialsSvg" class="svg-bar-val" x="137.5" y="52">12 k</text>
                    <text class="svg-bar-label" x="137.5" y="148">Rury</text>
                    
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#94a3b8" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-inv-data-group">
                <div class="rk-inv-data-card highlight" id="cardHp">
                    <div class="rk-inv-data-info">
                        <h4>Moc Pompy Ciepła</h4>
                        <p id="descHp">Przewymiarowana (np. 9 kW)</p>
                    </div>
                    <div class="rk-inv-data-val" id="valHpCost">32 000 zł</div>
                </div>
                
                <div class="rk-inv-data-card highlight" id="cardMat">
                    <div class="rk-inv-data-info">
                        <h4>Koszty Rur (Zapas)</h4>
                        <p id="descMat">Kupione "na górkę" + ścinki</p>
                    </div>
                    <div class="rk-inv-data-val" id="valMatCost">12 000 zł</div>
                </div>

                <div class="rk-inv-data-card" style="background: var(--rk-inv-dark); border-color: var(--rk-inv-dark);">
                    <div class="rk-inv-data-info">
                        <h4 style="color: #ffffff;">Bilans Inwestycji</h4>
                        <p style="color: #94a3b8;">Łączne koszty materiałowe</p>
                    </div>
                    <div class="rk-inv-data-val" id="valTotalCost" style="color: #ffffff;">44 000 zł</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-inv-content">
        <p class="rk-inv-intro">
            Profesjonalny projekt ogrzewania podłogowego to inwestycja, która zwraca się już w dniu wizyty w hurtowni instalacyjnej. Oszacowania "na oko" i przewymiarowywanie urządzeń z obawy przed niedogrzaniem to najdroższe błędy na budowie. Dzięki dokładnym wyliczeniom zyskujesz trzykrotnie:
        </p>

        <div class="rk-benefit-cards">
            <div class="rk-b-card">
                <div class="rk-b-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="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                </div>
                <h4>Zero Odpadów</h4>
                <p>Kupujesz dokładnie tyle <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/" class="rk-link">metrów rury grzewczej</a>, ile wynika z rzutu CAD, unikając zakupu drogich zwojów "na zapas".</p>
            </div>
            
            <div class="rk-b-card">
                <div class="rk-b-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"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                </div>
                <h4>Tańsza Pompa</h4>
                <p>Precyzyjne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> często wykazuje, że zamiast jednostki 9 kW, budynek obsłuży tańszy model 6 kW (oszczędność rzędu 4 000 PLN).</p>
            </div>

            <div class="rk-b-card">
                <div class="rk-b-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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h4>Idealny Komfort</h4>
                <p>Zrównoważone pętle i zaplanowane nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">rotametrach</a> eliminują problem "zimnej sypialni".</p>
            </div>
        </div>

        <div class="rk-subsidies-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Wymogi formalne dotacji 2026
            </h3>
            <p>
                Kompletna dokumentacja projektowa zawiera szczegółowe rysunki z trasowaniem rur, tabele nastaw rozdzielaczy oraz profesjonalny wynik OZC. Posiadanie takich dokumentów jest prawnie wymagane podczas audytów technicznych, by uzyskać dofinansowanie z programów takich jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/" class="rk-link">"Czyste Powietrze" czy "Moje Ciepło"</a>.
            </p>
        </div>
    </div>

    <div class="rk-inv-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-inv">
            ZAMÓW PROJEKT I ZACZNIJ OSZCZĘDZAĆ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domeny
    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-inv-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // Elementy DOM
    const btnBad = document.getElementById('btnInvBad');
    const btnGood = document.getElementById('btnInvGood');
    const pill = document.getElementById('invPill');
    
    const barHp = document.getElementById('barHeatPump');
    const barMat = document.getElementById('barMaterials');
    const valHpSvg = document.getElementById('valHeatPumpSvg');
    const valMatSvg = document.getElementById('valMaterialsSvg');
    
    const cardHp = document.getElementById('cardHp');
    const descHp = document.getElementById('descHp');
    const valHpCost = document.getElementById('valHpCost');
    
    const cardMat = document.getElementById('cardMat');
    const descMat = document.getElementById('descMat');
    const valMatCost = document.getElementById('valMatCost');
    
    const valTotalCost = document.getElementById('valTotalCost');

    function setMode(mode) {
        if (mode === 'bad') {
            // UI Toggle
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-danger)';

            // Animacja SVG Słupków (Wysokie koszty)
            barHp.setAttribute('y', '30');
            barHp.setAttribute('height', '100');
            barHp.style.fill = 'var(--rk-inv-danger)';
            valHpSvg.setAttribute('y', '22');
            valHpSvg.textContent = '32 k';

            barMat.setAttribute('y', '60');
            barMat.setAttribute('height', '70');
            barMat.style.fill = 'var(--rk-inv-warn)';
            valMatSvg.setAttribute('y', '52');
            valMatSvg.textContent = '12 k';

            // Animacja Kart HTML
            cardHp.classList.add('highlight');
            descHp.innerText = 'Przewymiarowana (np. 9 kW)';
            valHpCost.innerText = '32 000 zł';
            valHpCost.style.color = 'var(--rk-inv-danger)';

            cardMat.classList.add('highlight');
            descMat.innerText = 'Kupione "na górkę" + ścinki';
            valMatCost.innerText = '12 000 zł';
            valMatCost.style.color = 'var(--rk-inv-warn)';

            valTotalCost.innerText = '44 000 zł';

        } else {
            // UI Toggle
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-brand)';

            // Animacja SVG Słupków (Zoptymalizowane/niskie)
            barHp.setAttribute('y', '70');
            barHp.setAttribute('height', '60');
            barHp.style.fill = 'var(--rk-inv-brand)';
            valHpSvg.setAttribute('y', '62');
            valHpSvg.textContent = '28 k';

            barMat.setAttribute('y', '95');
            barMat.setAttribute('height', '35');
            barMat.style.fill = 'var(--rk-inv-brand)';
            valMatSvg.setAttribute('y', '87');
            valMatSvg.textContent = '9 k';

            // Animacja Kart HTML
            cardHp.classList.remove('highlight');
            descHp.innerText = 'Wyliczona z OZC (np. 6 kW)';
            valHpCost.innerText = '28 000 zł';
            valHpCost.style.color = 'var(--rk-inv-brand)';

            cardMat.classList.remove('highlight');
            descMat.innerText = 'Dokładna specyfikacja z rzutu CAD';
            valMatCost.innerText = '9 000 zł';
            valMatCost.style.color = 'var(--rk-inv-brand)';

            valTotalCost.innerText = '37 000 zł';
        }
    }

    // Inicjalizacja szerokości pigułki
    setTimeout(() => { pill.style.width = btnBad.offsetWidth + 'px'; }, 100);

    // Eventy
    btnBad.addEventListener('click', () => setMode('bad'));
    btnGood.addEventListener('click', () => setMode('good'));
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --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-title {
    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 10s 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: 18px;
    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;
    transition: color 0.2s;
}

.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: repeat(3, 1fr);
    gap: 15px;
}

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

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

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

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

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header-title { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Robert Kucharski: Instalatorskie 'na oko' to najdroższy system grzewczy świata",
    "description": "Ekspercka opinia na temat ryzyka łączenia pomp ciepła z instalacjami układanymi bez projektu OZC. Zobacz kluczowe parametry.",
    "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": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Instalatorskie 'na oko' to najdroższy system grzewczy świata. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak projektu OZC i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30 procent. Fizyki nie da się oszukać intuicją, a beton nie wybacza błędów.",
    "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/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-cytat",
    "name": "Eksperckie parametry graniczne dla pomp ciepła",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do skutecznej i taniej eksploatacji układu z rewersyjną pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt OZC podłogówka",
      "rozstaw rur pompa ciepła cytat",
      "inżynier hvac robert kucharski",
      "taktowanie pompy ciepła",
      "przewymiarowana sprężarka skutki"
    ],
    "measurementTechnique": "Określenie krytycznych wartości brzegowych weryfikacji projektu instalacji przed wylaniem jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Max temperatura zasilania (Tz): 35 stopni Celsjusza",
        "Zalecany rozstaw pętli (środek): 10 cm",
        "Spadek COP pompy: ok. 2.5% na każdy podniesiony 1 stopień Celsjusza"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-cytat",
    "name": "Panel Analityczny: Weryfikacja parametrów OZC",
    "description": "Interaktywny interfejs wyświetlający twarde dane liczbowe i parametry graniczne wynikające z norm hydraulicznych przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<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>
        <div class="rk-expert-header-title">Głos Inżyniera</div>
    </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" 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"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Ostrzeżenie przed "intuicją"
            </span>
            <p class="rk-expert-text">
                "Instalatorskie 'na oko' to <strong>najdroższy system grzewczy świata</strong>. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30%. Fizyki nie da się oszukać intuicją, a <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylany beton</a> nie wybacza błędów."
            </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ń twarde dane projektowe
                    <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-stat">
                        <span class="rk-data-val">Max 35&deg;C</span>
                        <span class="rk-data-lab">Temperatura (Tz)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">10 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);">-2.5%</span>
                        <span class="rk-data-lab">Strata COP na 1&deg;C</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>Maksymalna zalecana temperatura zasilania (Tz): 35°C</li>
                <li>Zalecany rozstaw pętli grzewczych: 10 cm</li>
                <li>Strata sprawności (COP): 2.5% na każdy podniesiony 1°C</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Brak nagłówków H-tag)
    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>
            `;
            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ń dane projektowe <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ń twarde dane projektowe <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>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-card: #1e293b;
    --rk-case-brand: #10b981; /* Szmaragdowy - wysoka wydajność */
    --rk-case-accent: #3b82f6; /* Niebieski - technologia */
    --rk-case-danger: #ef4444; /* Czerwony - straty */
    --rk-case-bg: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
}

.rk-case-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(16, 185, 129, 0.12);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

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

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

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

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

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

/* Selektor Wariantów */
.rk-case-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

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

.rk-case-tab:hover {
    border-color: var(--rk-case-accent);
    transform: translateY(-2px);
}

.rk-case-tab.active {
    background: var(--rk-case-dark);
    border-color: var(--rk-case-brand);
    color: #ffffff;
}

.rk-tab-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 5px;
    opacity: 0.7;
}

.rk-tab-name {
    font-size: 15px;
    font-weight: 900;
}

/* Dashboard Wyników */
.rk-case-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 35px;
    align-items: center;
}

.rk-case-visual {
    background: var(--rk-case-dark);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

/* Animacje słupków energii */
.svg-energy-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.3s;
}

.svg-text-val {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    fill: #ffffff;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Szczegółów */
.rk-case-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 20px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-data-info h4 {
    margin: 0 0 4px 0;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-case-muted);
}

.rk-data-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-case-text);
    font-weight: 700;
}

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

.rk-savings-highlight {
    background: var(--rk-case-brand);
    color: #ffffff;
    padding: 20px;
    border-radius: 16px;
    text-align: center;
}

.rk-savings-label { font-size: 12px; font-weight: 800; text-transform: uppercase; opacity: 0.9; margin-bottom: 5px; }
.rk-savings-val { font-size: 32px; font-weight: 900; }

/* Sekcja Treści */
.rk-case-content {
    padding: 45px 50px;
}

.rk-case-content h3 { font-size: 22px; font-weight: 900; color: var(--rk-case-dark); margin: 0 0 20px 0; }
.rk-case-content p { font-size: 16px; line-height: 1.8; color: var(--rk-case-text); margin-bottom: 20px; }
.rk-case-content strong { font-weight: 800; color: var(--rk-case-dark); }

.rk-check-list { list-style: none; padding: 0; margin: 25px 0; }
.rk-check-list li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; font-size: 15px; }
.rk-check-icon { color: var(--rk-case-brand); flex-shrink: 0; margin-top: 3px; }

.rk-link { color: var(--rk-case-accent); font-weight: 700; text-decoration: none; border-bottom: 1px dashed rgba(59, 130, 246, 0.4); transition: all 0.3s; }
.rk-link:hover { border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive, .rk-case-content { padding: 30px 20px; }
    .rk-case-tabs { grid-template-columns: 1fr; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-case-title { font-size: 22px; }
    .rk-data-card { 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/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Case Study: Optymalizacja temperatury zasilania a oszczędności energii",
    "description": "Analiza rzeczywistego projektu domu 145 m2 w Warszawie. Dowiedz się, jak zmiana temperatury zasilania z 35 na 30 stopni Celsjusza obniża zużycie prądu.",
    "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-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-case-study",
    "name": "Porównanie efektywności systemów grzewczych (SCOP)",
    "description": "Dane techniczne zużycia energii elektrycznej (kWh/rok) dla trzech wariantów instalacji w domu o obciążeniu 8 kW.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
        "SCOP pompy ciepła podłogówka",
        "zużycie prądu pompa ciepła dom 150m2",
        "projektowanie podłogówki 10 cm rozstaw",
        "oszczędności na ogrzewaniu podłogowym",
        "jastrych anhydrytowy wydajność"
    ],
    "measurementTechnique": "Symulacja rocznego zapotrzebowania na energię końcową na podstawie wskaźnika SCOP dla różnych parametrów zasilania (55stC, 40stC, 30stC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant A: Grzejniki (55stC), Zużycie 8500 kWh/rok, SCOP 2.8.",
        "Wariant B: Podłogówka 15cm (40stC), Zużycie 6600 kWh/rok, SCOP 3.6.",
        "Wariant C: Podłogówka Opti 10cm (30stC), Zużycie 5400 kWh/rok, SCOP 4.4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-case-study",
    "name": "Kalkulator Oszczędności Termo-Modernizacyjnych",
    "description": "Interaktywny symulator porównujący koszty eksploatacji pompy ciepła w zależności od gęstości ułożenia rur grzewczych i rodzaju wylewki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Analiza Rzeczywista: Dom 145 m&sup2;
        </div>
        <h2 class="rk-case-title">Case Study: Jak <span>-1200 PLN</span> rocznie zostaje w Twoim portfelu?</h2>
    </div>

    <div class="rk-case-interactive">
        <div class="rk-case-tabs">
            <div class="rk-case-tab" data-variant="A">
                <span class="rk-tab-label">Wariant A</span>
                <span class="rk-tab-name">Grzejniki (55&deg;C)</span>
            </div>
            <div class="rk-case-tab" data-variant="B">
                <span class="rk-tab-label">Wariant B</span>
                <span class="rk-tab-name">Podłogówka (15cm)</span>
            </div>
            <div class="rk-case-tab active" data-variant="C">
                <span class="rk-tab-label">Wariant C</span>
                <span class="rk-tab-name">Projekt RK (10cm)</span>
            </div>
        </div>

        <div class="rk-case-grid">
            <div class="rk-case-visual">
                <div style="color: #94a3b8; font-size: 11px; font-weight: 800; text-transform: uppercase; margin-bottom: 15px; letter-spacing: 1px;">Roczne zużycie energii (kWh)</div>
                <svg class="rk-svg-dashboard" viewBox="0 0 200 180">
                    <line x1="20" y1="150" x2="180" y2="150" stroke="#475569" stroke-width="2"/>
                    <rect id="barEnergy" class="svg-energy-bar" x="70" y="40" width="60" height="110" fill="var(--rk-case-brand)"/>
                    <text id="textEnergy" class="svg-text-val" x="100" y="30" text-anchor="middle" font-size="16">5400</text>
                    <text x="100" y="170" text-anchor="middle" fill="#94a3b8" font-size="10" font-weight="800">kWh / ROK</text>
                </svg>
            </div>

            <div class="rk-case-data">
                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Współczynnik SCOP</h4>
                        <p id="descScop">Zoptymalizowana sprawność</p>
                    </div>
                    <div class="rk-data-val" id="valScop">4.4</div>
                </div>

                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Parametr Zasilania</h4>
                        <p id="descTemp">Zasilanie niskotemperaturowe</p>
                    </div>
                    <div class="rk-data-val" id="valTemp">30&deg;C</div>
                </div>

                <div class="rk-savings-highlight">
                    <div class="rk-savings-label">Zysk roczny względem standardu</div>
                    <div class="rk-savings-val" id="valSavings">1 200 PLN</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-content">
        <h3>Precyzyjny projekt to czysta matematyka oszczędności</h3>
        <p>
            W październiku 2025 roku, realizując projekt dla Pani Anny w Warszawie (nowoczesny dom szkieletowy o powierzchni 145 m&sup2;, spełniający standardy WT 2021), udowodniliśmy, że inżynieryjne podejście do instalacji bije na głowę tradycyjne wykonawstwo. Rozważyliśmy budynek o realnym obciążeniu cieplnym <strong>8 kW</strong> (przy temperaturze obliczeniowej -20&deg;C).
        </p>

        <ul class="rk-check-list">
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant A (Najdroższy):</strong> System oparty na grzejnikach wymusza temperaturę 55&deg;C. SCOP spada do 2,8, co generuje rachunek za 8500 kWh prądu rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant B (Standardowy):</strong> Podłogówka układana "na oko" (rozstaw 15 cm) wymaga 40&deg;C. SCOP wynosi 3,6 przy zużyciu 6600 kWh rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                <span><strong>Wariant C (Zoptymalizowany RK):</strong> Gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-link">rozstaw rur co 10 cm</a> oraz jastrych anhydrytowy pozwoliły obniżyć Tz do 30&ndash;32&deg;C. SCOP wzrósł do <strong>4,4</strong>, redukując zużycie do 5400 kWh.</span>
            </li>
        </ul>

        <p>
            Różnica między wariantem B a C to aż <strong>1200 kWh rocznie</strong>. Przy obecnej rynkowej cenie energii elektrycznej (1 PLN/kWh), inwestorka oszczędza 1200 PLN każdego roku. Dodatkowy koszt rur i profesjonalnego projektu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> zwraca się całkowicie już po 3 latach eksploatacji, a przez kolejne 20 lat instalacja generuje czysty zysk.
        </p>
    </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-case-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const tabs = document.querySelectorAll('.rk-case-tab');
    const barEnergy = document.getElementById('barEnergy');
    const textEnergy = document.getElementById('textEnergy');
    const valScop = document.getElementById('valScop');
    const valTemp = document.getElementById('valTemp');
    const valSavings = document.getElementById('valSavings');
    const descScop = document.getElementById('descScop');
    const descTemp = document.getElementById('descTemp');

    const data = {
        'A': { energy: 8500, scop: '2.8', temp: '55°C', savings: '- 1 900 zł', color: '#ef4444', dS: 'Niska wydajność PC', dT: 'Wysoki parametr' },
        'B': { energy: 6600, scop: '3.6', temp: '40°C', savings: '0 PLN', color: '#f59e0b', dS: 'Wydajność standardowa', dT: 'Parametr średni' },
        'C': { energy: 5400, scop: '4.4', temp: '30°C', savings: '+ 1 200 zł', color: '#10b981', dS: 'Zoptymalizowana sprawność', dT: 'Zasilanie niskotemperaturowe' }
    };

    function updateVariant(v) {
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-case-tab[data-variant="${v}"]`).classList.add('active');

        const d = data[v];
        
        // Animacja Słupka (max energy 8500 -> height 130px)
        const h = (d.energy / 8500) * 130;
        barEnergy.setAttribute('height', h);
        barEnergy.setAttribute('y', 150 - h);
        barEnergy.setAttribute('fill', d.color);
        
        textEnergy.textContent = d.energy;
        textEnergy.setAttribute('y', 140 - h);
        textEnergy.style.fill = d.color;

        // Dane tekstowe
        valScop.innerText = d.scop;
        valScop.style.color = d.color;
        valTemp.innerText = d.temp;
        valSavings.innerText = d.savings;
        
        descScop.innerText = d.dS;
        descTemp.innerText = d.dT;
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', () => updateVariant(tab.getAttribute('data-variant')));
    });

    // Start na wariancie C
    updateVariant('C');
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5; /* Eksperckie Indygo */
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4; /* Cyjan dla kontrastu */
    --rk-faq-success: #10b981;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-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(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #a5b4fc;
    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(165, 180, 252, 0.3);
}

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

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

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

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

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

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
}

/* Przycisk Pytania */
.rk-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-faq-dark);
    transition: background 0.3s, color 0.3s;
}

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

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

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

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

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

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

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

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

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

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

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
}

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

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    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. Pompa + Podłogówka */
.anim-heat-rise { stroke-dasharray: 6 12; animation: heatRise 2s linear infinite; opacity: 0; }
.rk-faq-item.active .anim-heat-rise { opacity: 1; stroke: #ef4444; }
@keyframes heatRise { to { stroke-dashoffset: -36; } }

/* 2. Pogodówka (Krzywa) */
.anim-curve { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s 0.3s ease-out; }
.rk-faq-item.active .anim-curve { stroke-dashoffset: 0; }
.anim-weather-sun { animation: spinSun 10s linear infinite; transform-origin: 25px 25px; }
@keyframes spinSun { to { transform: rotate(360deg); } }

/* 3. Rozstaw 10cm */
.anim-pipe-close { transition: transform 0.8s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-faq-item.active .pipe-top { transform: translateY(15px); }
.rk-faq-item.active .pipe-bot { transform: translateY(-15px); }

/* 4. Bufor (Defrost) */
.anim-defrost { opacity: 0; transition: opacity 0.5s 0.5s; }
.rk-faq-item.active .anim-defrost { opacity: 1; animation: pulseBlue 2s infinite alternate; }
@keyframes pulseBlue { from { fill: #3b82f6; } to { fill: #93c5fd; } }

/* 5. Wylewka Anhydryt */
.anim-liquid { transform: scaleY(0); transform-origin: bottom; transition: transform 1s 0.3s ease-out; }
.rk-faq-item.active .anim-liquid { transform: scaleY(1); }

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq-visual { height: 120px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-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/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o ogrzewanie podłogowe i pompy ciepła",
    "description": "Eksperckie odpowiedzi na pytania dotyczące rozstawu rur, buforów ciepła, sterowania pokojowego i doboru wylewki przy pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to rozwiązanie wręcz idealne. Pompa inwerterowa osiąga najwyższą sprawność (COP) zasilając instalację niskotemperaturową na poziomie 30-35 stopni Celsjusza. Połączenie to gwarantuje najniższe rachunki i pełny komfort."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę sterować każdym pokojem osobno przy pompie ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jest to technicznie możliwe, ale w nowoczesnych domach odradzane. Lepszym wyborem jest sterowanie pogodowe. Szybkie zamykanie pętli przez siłowniki termoelektryczne zaburza przepływy masowe i powoduje tzw. taktowanie sprężarki."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla pomp ciepła bezwzględnym standardem projektowym jest 10 cm. Zagęszczenie rur pozwala na drastyczne obniżenie temperatury zasilania do 30°C, co maksymalizuje wskaźnik COP. W strefach brzegowych pod oknami stosuje się rozstaw 5-7,5 cm."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebuję bufora ciepła, jeśli mam tylko ogrzewanie podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie do magazynowania ciepła (tę rolę pełni wylewka), ale niewielki bufor na powrocie (15-20 litrów/kW) gwarantuje zład wody wymagany do procesu bezpiecznego odszraniania (defrostu) parownika zewnętrznego zimą."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka wylewka jest optymalna do podłogówki z pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepszym wyborem jest jastrych anhydrytowy. Posiada prawie dwukrotnie lepszy współczynnik przewodzenia ciepła niż beton z miksokreta (ok. 1,8-2,0 W/mK) i idealnie, płynnie otula rury grzewcze bez pozostawiania pustek powietrznych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-faq",
    "name": "Baza Wiedzy: Parametry operacyjne instalacji niskotemperaturowych",
    "description": "Zbiór kluczowych pytań i odpowiedzi inwestorskich dotyczących optymalizacji parametrów fizycznych dla systemów ogrzewania płaszczyznowego współpracujących z OZE.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny",
    "description": "Aplikacja edukacyjna w formie akordeonu ze zintegrowanymi animacjami SVG ułatwiająca wizualizację procesów hydraulicznych i termicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="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><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?</span>
                    <div class="rk-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-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, jest to rozwiązanie <strong>wręcz idealne</strong>. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-link">Pompa ciepła pracuje najwydajniej</a> przy bardzo niskich temperaturach (30&ndash;35&deg;C na zasilaniu), które są standardem i wymogiem dla komfortowego ogrzewania podłogowego. Brak tradycyjnych kaloryferów oznacza brak konieczności podnoszenia temperatury do 50&deg;C, co drastycznie tnie rachunki za prąd.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="50" width="60" height="10" fill="#64748b" rx="2"/>
                                    <path class="anim-heat-rise" d="M 30 50 L 30 10 M 50 50 L 50 10 M 70 50 L 70 10" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <rect x="10" y="20" width="15" height="30" fill="#3b82f6" rx="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy mogę sterować każdym pokojem osobno przy pompie ciepła?</span>
                    <div class="rk-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-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Można, ale w nowoczesnych domach inżynieryjnie <strong>zdecydowanie lepiej sprawdza się</strong> tzw. autoadaptacja lub <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" class="rk-link">sterowanie pogodowe (krzywa grzewcza)</a>. Wylewka betonowa ma ogromną bezwładność. Szybkie odcinanie <a href="https://projekt-ogrzewania.pl/petla-grzewcza/" class="rk-link">pętli</a> przez zamykanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-link">siłowników termoelektrycznych</a> powoduje zadławienia układu i niszczące dla kompresora taktowanie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <g class="anim-weather-sun"><circle cx="25" cy="25" r="8" fill="#eab308"/><path d="M 25 10 L 25 15 M 25 35 L 25 40 M 10 25 L 15 25 M 35 25 L 40 25" stroke="#eab308" stroke-width="2" stroke-linecap="round"/></g>
                                    <path d="M 20 60 L 90 60 M 20 60 L 20 10" stroke="#475569" stroke-width="2"/>
                                    <path class="anim-curve" d="M 20 50 Q 50 40 90 15" fill="none" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?</span>
                    <div class="rk-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-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Dla pomp ciepła <strong>standardem jest 10 cm</strong>. Zagęszczenie ułożenia pozwala na sztuczne "powiększenie" grzejnika, jakim jest podłoga, co z kolei pozwala obniżyć temperaturę zasilania na kotłowni do 30&deg;C. To drastycznie poprawia współczynnik COP w porównaniu do rozstawu 15 cm (zysk rzędu kilkunastu procent oszczędności rocznie). Przy dużych oknach stosuje się 5-7,5 cm (<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefa brzegowa</a>).
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="20" y1="10" x2="80" y2="10" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-top" x1="20" y1="20" x2="80" y2="20" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="40" x2="80" y2="40" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-bot" x1="20" y1="60" x2="80" y2="60" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="70" x2="80" y2="70" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy potrzebuję bufora, jeśli mam tylko podłogówkę?</span>
                    <div class="rk-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-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                System ogrzewania podłogowego sam w sobie to wielki magazyn ciepła, więc <strong>duży bufor nie jest wymagany</strong>. Jednak ze względów bezpieczeństwa hydraulicznego, zaleca się stosowanie niewielkiego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">bufora szeregowego na powrocie</a> (ok. 15-20 litrów na kW). Zabezpiecza to pompę, dostarczając zład wody niezbędny do procesu odszraniania (defrostu) urządzenia z lodu.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 20 L 80 20 M 20 50 L 50 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                    <rect x="50" y="35" width="20" height="30" fill="#334155" rx="4"/>
                                    <rect x="52" y="37" width="16" height="26" class="anim-defrost" fill="#3b82f6" rx="2"/>
                                    <path d="M 70 50 L 80 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jakie wylewki są najlepsze pod pompę ciepła?</span>
                    <div class="rk-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-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Inżynieryjnie najlepszym wyborem jest <strong>jastrych anhydrytowy</strong>. Posiada on wyższy współczynnik przewodzenia ciepła niż beton z miksokreta. Co ważniejsze, jego płynna konsystencja <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">szczelnie otula rury</a>, eliminując puste komory powietrzne, które działają jak izolator. Dzięki temu instalacja nagrzewa się szybciej i może pracować na niższych parametrach.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="50" width="80" height="15" fill="#475569" rx="2"/>
                                    <circle cx="30" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="50" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="70" cy="50" r="6" fill="#ef4444"/>
                                    <rect class="anim-liquid" x="10" y="20" width="80" height="30" fill="#fcd34d" opacity="0.8"/>
                                </svg>
                            </div>
                        </div>
                    </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-faq-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            faqItems.forEach(i => i.classList.remove('active'));
            
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-pmp-dark: #0f172a;
    --rk-pmp-primary: #2563eb;
    --rk-pmp-light: #eff6ff;
    --rk-pmp-accent: #f59e0b;
    --rk-pmp-success: #10b981;
    --rk-pmp-success-bg: #d1fae5;
    --rk-pmp-danger: #ef4444;
    --rk-pmp-danger-bg: #fee2e2;
    --rk-pmp-gray: #64748b;
    --rk-pmp-border: #e2e8f0;
    --rk-pmp-bg: #ffffff;
}

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

/* Nagłówek */
.rk-pmp-header {
    padding: 50px 40px;
    background: radial-gradient(circle at top right, #1e293b, var(--rk-pmp-dark));
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-pmp-primary);
}

.rk-pmp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    padding: 8px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-pmp-quote {
    font-size: 24px;
    font-weight: 800;
    line-height: 1.5;
    color: #ffffff;
    max-width: 750px;
    margin: 0 auto 20px auto;
}

.rk-pmp-quote span {
    color: var(--rk-pmp-accent);
}

/* Interaktywny Symulator Kosztów */
.rk-pmp-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-pmp-sim-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-pmp-sim-header h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-pmp-dark);
    margin: 0 0 10px 0;
}

.rk-pmp-sim-header p {
    color: var(--rk-pmp-gray);
    font-size: 15px;
    margin: 0;
}

/* Suwak (Slider) */
.rk-pmp-slider-box {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-pmp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-pmp-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 14px;
}

.rk-pmp-label-left { color: var(--rk-pmp-danger); }
.rk-pmp-label-right { color: var(--rk-pmp-success); }

.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, var(--rk-pmp-danger) 0%, #cbd5e1 50%, var(--rk-pmp-success) 100%);
    outline: none;
    transition: opacity .2s;
    cursor: pointer;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pmp-primary);
    cursor: grab;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    transition: transform 0.2s;
}

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

/* Wynik symulacji */
.rk-pmp-result-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.rk-pmp-data-card {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--rk-pmp-border);
    text-align: center;
    transition: all 0.3s;
}

.rk-pmp-data-value {
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    margin: 10px 0;
    transition: color 0.3s;
}

.rk-pmp-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-pmp-gray);
}

.rk-pmp-svg-container {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-pmp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}

/* SVG Animations */
.pipe-path {
    fill: none;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, stroke-dashoffset 0.5s;
}

.thermometer-fill {
    transition: height 0.5s, y 0.5s, fill 0.5s;
}

/* Treść podsumowania */
.rk-pmp-content {
    padding: 40px 50px;
    background: #ffffff;
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

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

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

.rk-pmp-content a {
    color: var(--rk-pmp-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s;
}

.rk-pmp-content a:hover {
    border-color: var(--rk-pmp-primary);
}

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

.rk-btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-pmp-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-hero:hover {
    transform: translateY(-4px);
    background: var(--rk-pmp-primary);
    box-shadow: 0 20px 35px -5px rgba(37, 99, 235, 0.5);
}

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

.rk-btn-hero:hover svg {
    transform: translateX(6px);
}

@media (max-width: 768px) {
    .rk-pmp-header, .rk-pmp-interactive, .rk-pmp-content, .rk-pmp-cta { padding: 30px 20px; }
    .rk-pmp-result-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-pmp-quote { font-size: 20px; }
    .rk-btn-hero { width: 100%; padding: 18px 20px; font-size: 15px; justify-content: center; }
    .rk-pmp-data-value { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Podsumowanie: Projekt podłogówki to fundament wydajności pompy ciepła",
    "description": "Zakończenie analizy inżynieryjnej: dlaczego optymalizacja hydrauliki, rozstawu rur i bezwładności termicznej jest kluczem do niskich rachunków w domach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-koszty",
    "name": "Porównanie kosztów eksploatacji pompy ciepła: Montaż standardowy vs Inżynieryjny (2026)",
    "description": "Zestawienie obrazujące wpływ jakości projektu ogrzewania podłogowego (rozstaw rur, obliczenia OZC) na ostateczny rachunek za prąd przy użyciu pompy ciepła w sezonie zimowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania dom z pompą ciepła",
      "oszczędności na pompie ciepła",
      "rozstaw rur a COP",
      "rachunki za ogrzewanie 2026",
      "projekt ogrzewania podłogowego ROI"
    ],
    "measurementTechnique": "Kalkulacja kosztów miesięcznych na podstawie symulacji zużycia prądu (COP) względem temperatury zasilania narzuconej przez parametry hydrauliczne podłogówki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż 'na oko' (Rozstaw 15 cm, Tz 40°C): Rachunek ok. 750 PLN / mc. Niska sprawność.",
        "Projekt Optymalny (Rozstaw 10 cm, Tz 30°C, obliczone OZC): Rachunek ok. 250 PLN / mc. Wysoka sprawność."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-symulator",
    "name": "Symulator Rachunków: Wpływ Projektu na Pompę Ciepła",
    "description": "Interaktywny suwak demonstrujący, jak przejście od amatorskiego układania rur do profesjonalnego projektu OZC drastycznie obniża temperaturę zasilania (Tz) i redukuje miesięczne koszty prądu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pmp-container" id="rk-pmp-sum-app">
    <div class="rk-pmp-header">
        <div class="rk-pmp-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"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Podsumowanie Eksperckie
        </div>
        <h2 class="rk-pmp-quote">
            "Pompa ciepła jest <span>tylko tak dobra</span>, jak instalacja podłogowa, którą zasila."
        </h2>
    </div>

    <div class="rk-pmp-interactive">
        <div class="rk-pmp-sim-header">
            <h3>Symulator COP i Rachunków</h3>
            <p>Przesuń suwak, aby zobaczyć, jak brak obliczeń niszczy portfel inwestora.</p>
        </div>

        <div class="rk-pmp-slider-box">
            <div class="rk-pmp-labels">
                <span class="rk-pmp-label-left">Montaż "na oko" (bez projektu)</span>
                <span class="rk-pmp-label-right">Projekt Inżynierski (OZC)</span>
            </div>
            <input type="range" min="0" max="100" value="100" class="rk-range-slider" id="rkSimSlider">
        </div>

        <div class="rk-pmp-result-grid">
            <div class="rk-pmp-data-card" id="rkDataCard">
                <div class="rk-pmp-data-label">Szacowany koszt miesięczny</div>
                <div class="rk-pmp-data-value" id="rkCostVal">250 PLN</div>
                <div class="rk-pmp-data-label" style="margin-top: 15px; color: #94a3b8;">Temp. Zasilania (Tz)</div>
                <div style="font-size: 20px; font-weight: 800; color: var(--rk-pmp-dark);" id="rkTzVal">30°C</div>
            </div>

            <div class="rk-pmp-svg-container">
                <svg width="100%" height="150" viewBox="0 0 300 150">
                    <rect x="20" y="20" width="20" height="100" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect id="svgThermo" class="thermometer-fill" x="22" y="90" width="16" height="28" rx="8" fill="var(--rk-pmp-success)"/>
                    <circle cx="30" cy="120" r="15" fill="inherit" id="svgThermoBase" style="fill: var(--rk-pmp-success); transition: fill 0.5s;"/>
                    
                    <path id="svgPipe" class="pipe-path" d="M80 120 L80 40 A10 10 0 0 1 100 40 L100 120 A10 10 0 0 0 120 120 L120 40 A10 10 0 0 1 140 40 L140 120 A10 10 0 0 0 160 120 L160 40 A10 10 0 0 1 180 40 L180 120 A10 10 0 0 0 200 120 L200 40 A10 10 0 0 1 220 40 L220 120 A10 10 0 0 0 240 120 L240 40" stroke="var(--rk-pmp-success)" />
                    
                    <circle cx="260" cy="80" r="25" fill="none" stroke="var(--rk-pmp-dark)" stroke-width="4"/>
                    <polygon points="255,65 275,80 255,95" fill="var(--rk-pmp-dark)"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-pmp-content">
        <p>
            Prawidłowy projekt ogrzewania podłogowego z pompą ciepła to fundament nowoczesnego, energooszczędnego budynku. Jeśli zlekceważysz fazę inżynieryjną, zgadując długości pętli i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">zakładając uniwersalny rozstaw rur (np. co 15 cm)</a>, zniwelujesz cały zysk technologiczny nowoczesnej sprężarki inwerterowej. Zbyt rzadko ułożone rury i niepoliczone przepływy wymuszą podniesienie temperatury zasilania.
        </p>
        <p>
            <strong>Optymalna hydraulika instalacji</strong>, minimalne opory liniowe (krótkie pętle do 80-90 m) oraz maksymalna powierzchnia wymiany ciepła (zagęszczony układ w oparciu o wyliczenia z OZC) to jedyna techniczna droga, aby utrzymać <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania domu na poziomie 200–300 PLN miesięcznie</a> w środku zimy.
        </p>
    </div>

    <div class="rk-pmp-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-hero">
            ODKRYJ BAZĘ WIEDZY O POMPACH CIEPŁA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX 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-pmp-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">⚠️</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane JSON-LD stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie skryptu na nieautoryzowanej domenie zostało zablokowane ze względów bezpieczeństwa.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Slider)
    const slider = document.getElementById('rkSimSlider');
    const costVal = document.getElementById('rkCostVal');
    const tzVal = document.getElementById('rkTzVal');
    const card = document.getElementById('rkDataCard');
    const pipe = document.getElementById('svgPipe');
    const thermo = document.getElementById('svgThermo');
    const thermoBase = document.getElementById('svgThermoBase');

    function updateSimulation(value) {
        // Obliczenia interpolowane
        // value: 0 (Na oko) -> 100 (Projekt OZC)
        const invertVal = 100 - value; // 100 to na oko, 0 to OZC
        
        // Koszty: od 250 PLN (pro) do 750 PLN (amator)
        const cost = 250 + (invertVal * 5); 
        
        // Tz: od 30°C do 42°C
        const tz = 30 + (invertVal * 0.12);

        // Aktualizacja DOM
        costVal.innerText = Math.round(cost) + ' PLN';
        tzVal.innerText = tz.toFixed(1) + '°C';

        // Wizualizacja kolorów i wysokości termometru
        let colorStr = '';
        let borderColor = '';
        let thermoHeight = 28; // Min height
        let thermoY = 90; // Start Y

        if (value >= 70) {
            // Stan idealny (Zielony)
            colorStr = 'var(--rk-pmp-success)';
            borderColor = 'var(--rk-pmp-success)';
            card.style.borderColor = 'var(--rk-pmp-success)';
            card.style.backgroundColor = 'var(--rk-pmp-success-bg)';
            costVal.style.color = 'var(--rk-pmp-success)';
            thermoHeight = 30;
            thermoY = 88;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else if (value >= 40) {
            // Stan średni (Pomarańczowy)
            colorStr = 'var(--rk-pmp-accent)';
            borderColor = 'var(--rk-pmp-accent)';
            card.style.borderColor = 'var(--rk-pmp-accent)';
            card.style.backgroundColor = '#fef3c7';
            costVal.style.color = '#d97706';
            thermoHeight = 60;
            thermoY = 58;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else {
            // Stan krytyczny (Czerwony)
            colorStr = 'var(--rk-pmp-danger)';
            borderColor = 'var(--rk-pmp-danger)';
            card.style.borderColor = 'var(--rk-pmp-danger)';
            card.style.backgroundColor = 'var(--rk-pmp-danger-bg)';
            costVal.style.color = 'var(--rk-pmp-danger)';
            thermoHeight = 90;
            thermoY = 28;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        }

        // Aplikacja kolorów do SVG
        pipe.style.stroke = colorStr;
        thermo.style.fill = colorStr;
        thermoBase.style.fill = colorStr;
        
        // Animacja termometru
        thermo.setAttribute('height', thermoHeight);
        thermo.setAttribute('y', thermoY);
    }

    // Inicjalizacja
    slider.addEventListener('input', function(e) {
        updateSimulation(e.target.value);
    });
    
    // Uruchomienie na starcie (wartość 100)
    updateSimulation(100);
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
}

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

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

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

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

.dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

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

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

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

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

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

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

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

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

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-text);
}

.dl-check-svg {
    width: 20px;
    height: 20px;
    color: var(--dl-accent);
    flex-shrink: 0;
}

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

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
}

.dl-main-btn span { font-size: 20px; }

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

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#infografika-download",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Kompletna Infografika PDF: Projekt ogrzewania podłogowego z pompą ciepła",
    "description": "Pobierz inżynierskie zestawienie wytycznych dla systemów płaszczyznowych. Wykres COP, długość pętli, dobór wylewki oraz parametry zasilania w jednym pliku PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.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-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-infografika",
    "name": "Wytyczne projektowe dla ogrzewania podłogowego z PC",
    "description": "Zbiór kluczowych danych: krzywa sprawności COP w funkcji temperatury, optymalna długość rury 16x2 oraz niezbędny przepływ hydrauliczny l/h.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "wykres cop pompy ciepła",
      "projekt podłogówki schemat",
      "rozstaw rur 10cm parametry",
      "jak pobrać projekt podłogówki"
    ],
    "measurementTechnique": "Zestawienie optymalnych parametrów termodynamicznych na grafice 2D.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Schemat optymalizacji i najczęstsze błędy instalacyjne"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-download",
    "name": "Centrum Pobierania: Arkusz Projektowy PC",
    "description": "Interaktywny moduł umożliwiający pogląd w wysokiej rozdzielczości i bezpośrednie pobranie dokumentacji technicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="download-hub-container" id="app-pc-infographic-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały 2026</div>
            <h2>Pobierz Arkusz Inżynierski</h2>
            <p>Zabierz ekspercką wiedzę bezpośrednio na budowę. Wykresy sprawności COP, parametry hydrauliczne i schematy montażowe w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp" alt="Infografika - Projekt ogrzewania podłogowego z pompą ciepła. Schematy budowy, wykresy COP i kluczowe parametry techniczne." class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.7); color:white; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:700;">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" 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>
                    Wykres: Efektywność COP a temp. zasilania
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" 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>
                    Przekrój: Optymalny jastrych i masa (150 kg/m²)
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie: Najczęstsze błędy instalacyjne
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" 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>
                    Limity fizyki: Długości pętli rury 16mm
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.pdf" class="dl-main-btn" target="_blank" rel="noopener">
                <span>📥</span> POBIERZ DOKUMENT (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.5;">
                Pragniesz przełożyć tę teorię na praktykę we własnym domu? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-accent-dark); font-weight:800;">Zamów indywidualny projekt OZC</a> i uzyskaj pełną dokumentację wykonawczą dla swojego instalatora.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie materiału w formie niezmienionej jest w pełni dozwolone.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    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-pc-infographic-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b;">Zasoby Chronione</div>
                    <p style="color: #b91c1c; font-size: 14px;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Pobieranie z zewnętrznych serwerów jest zabronione.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Opór cieplny R [m²K/W]: Klucz do efektywnego ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 08:32:23 +0000</pubDate>
				<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Projekty techniczne]]></category>
		<category><![CDATA[efektywność ogrzewania]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny r]]></category>
		<category><![CDATA[panele na ogrzewanie podłogowe]]></category>
		<category><![CDATA[płytki gresowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3358</guid>

					<description><![CDATA[<p>Dlaczego jedne instalacje ogrzewania podłogowego działają sprawnie i tanio, a inne wymagają wysokiej temperatury zasilania i generują duże koszty? Odpowiedź bardzo często kryje się w parametrach warstw podłogi. Opór cieplny R [m²K/W]: Klucz do efektywnego ogrzewania podłogowego to temat, który w praktyce decyduje o komforcie cieplnym, bezwładności systemu i jego opłacalności. W artykule w przystępny, ale technicznie rzetelny sposób wyjaśniamy, jak czytać wartości R, jak liczyć opór warstw i dlaczego granica 0,15 m²K/W ma tak duże znaczenie dla pracy instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">Opór cieplny R [m²K/W]: Klucz do efektywnego 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>Opór cieplny R [m²K/W]</strong>&nbsp;to jeden z najważniejszych, choć często niedocenianych, parametrów technicznych przy projektowaniu i wykonywaniu&nbsp;<strong>wodnego ogrzewania podłogowego</strong>. Jego wartość wprost decyduje o efektywności systemu, kosztach eksploatacji oraz końcowym komforcie cieplnym w pomieszczeniu. W dużym uproszczeniu, opór cieplny informuje nas, jak dana warstwa materiału &#8222;broni się&#8221; przed przepływem ciepła. W kontekście ogrzewania podłogowego musimy jednak podejść do tego zagadnienia w sposób bardzo strategiczny i zrozumieć, że w różnych warstwach &#8222;podłogowego tortu&#8221; pożądany jest&nbsp;<strong>skrajnie różny</strong>&nbsp;opór cieplny. Niniejszy artykuł w techniczny, lecz przystępny sposób, wyjaśni dlaczego&nbsp;<strong>opór cieplny R</strong>&nbsp;jest miarą sukcesu lub porażki Twojej instalacji.</p>



<h2 class="wp-block-heading">Czym dokładnie jest opór cieplny R? </h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć wpływ oporu cieplnego na działanie całego systemu, warto poznać jego podstawową definicję.</p>



<p class="wp-block-paragraph"><strong>Opór cieplny R (m²K/W)</strong>&nbsp;to wielkość charakteryzująca zdolność materiału lub konstrukcji wielowarstwowej do przeciwstawiania się przepływowi ciepła. Im&nbsp;<strong>wyższa</strong>&nbsp;wartość R, tym lepsze właściwości&nbsp;<strong>izolacyjne</strong>&nbsp;materiału – ciepło trudniej przez niego przenika. Im&nbsp;<strong>niższa</strong>&nbsp;wartość R, tym materiał jest lepszym&nbsp;<strong>przewodnikiem ciepła</strong>.</p>



<p class="wp-block-paragraph">Opór cieplny dla pojedynczej, homogenicznej warstwy obliczamy według prostego wzoru:</p>



<p class="wp-block-paragraph"><strong>R = d / λ</strong></p>



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



<ul class="wp-block-list">
<li><strong>R</strong>&nbsp;– opór cieplny [m²K/W]</li>



<li><strong>d</strong>&nbsp;– grubość warstwy materiału [m]</li>



<li><strong>λ (lambda)</strong>&nbsp;– współczynnik przewodzenia ciepła materiału [W/mK]</li>
</ul>



<p class="wp-block-paragraph">Współczynnik&nbsp;<strong>λ</strong>&nbsp;jest stałą materiałową. Przykładowo:</p>



<ul class="wp-block-list">
<li>Miedź ma bardzo niskie λ (ok. 400 W/mK) – jest doskonałym przewodnikiem.</li>



<li>Pianka PIR ma λ ok. 0.022-0.028 W/mK – jest doskonałym izolatorem.</li>



<li>Wylewka anhydrytowa ma λ ok. 1.0-1.4 W/mK.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład wyliczenia:</strong>&nbsp;Warstwa styropianu grafitowego o grubości 10 cm (0.1 m) i współczynniku λ=0.031 W/mK będzie miała opór cieplny:<br><strong>R = 0.1 / 0.031 ≈ 3.23 m²K/W.</strong>&nbsp;To wysoka wartość, świadcząca o bardzo dobrej izolacyjności.</p>



<p class="wp-block-paragraph">Dla konstrukcji wielowarstwowej (np. cała podłoga),&nbsp;<strong>całkowity opór cieplny Rₜ</strong>&nbsp;jest sumą oporów wszystkich warstw:<br><strong>Rₜ = R₁ + R₂ + &#8230; + Rₙ</strong></p>



<p class="wp-block-paragraph">To proste równanie jest fundamentem poprawnego projektowania podłóg grzewczych.</p>



<h2 class="wp-block-heading">Strategia &#8222;dwa fronty&#8221;: Różne zadania dla oporu cieplnego w &#8222;ciepłej podłodze&#8221;.</h2>



<p class="wp-block-paragraph">W&nbsp;<strong>wodnym ogrzewaniu podłogowym</strong>&nbsp;walka toczy się na dwóch frontach, a opór cieplny R jest naszym głównym narzędziem. Kluczem jest zrozumienie, że&nbsp;<strong>poniżej</strong>&nbsp;i&nbsp;<strong>powyżej</strong>&nbsp;rury grzewczej dążymy do osiągnięcia&nbsp;<strong>przeciwnych celów</strong>.</p>



<h3 class="wp-block-heading">Front dolny: Maksymalizacja oporu cieplnego (R → MAX).</h3>



<p class="wp-block-paragraph">Warstwy znajdujące się&nbsp;<strong>pod</strong>&nbsp;rurą grzewczą (izolacja termiczna na stropie/podłożu) mają za zadanie&nbsp;<strong>zatrzymać ciepło</strong>&nbsp;i skierować je w górę, do pomieszczenia. Każda watosekunda ciepła uciekająca w dół to czysta strata energetyczna i finansowa. Tutaj stosujemy materiały o&nbsp;<strong>jak najwyższym oporze cieplnym R</strong>:</p>



<ul class="wp-block-list">
<li><strong>Styropian EPS</strong>&nbsp;(zwykły, grafitowy)</li>



<li><strong>Płyty z pianki PIR/PUR</strong></li>



<li><strong>Wełna mineralna</strong>&nbsp;(tam, gdzie potrzebna jest odporność ogniowa)</li>
</ul>



<p class="wp-block-paragraph"><strong>Rekomendowane wartości:</strong>&nbsp;Dla podłóg na gruncie R ≥ 1,50 m²K/W. Dla stropów nad ogrzewanymi pomieszczeniami R ≥ 1,00 m²K/W.</p>



<h3 class="wp-block-heading">Front górny: Minimalizacja oporu cieplnego (R → MIN).</h3>



<p class="wp-block-paragraph">Warstwy znajdujące się&nbsp;<strong>nad</strong>&nbsp;rurą grzewczą (wylewka, warstwa wykończeniowa, ewentualne podkłady) mają za zadanie&nbsp;<strong>jak najłatwiej przepuszczać ciepło</strong>&nbsp;do pomieszczenia. Wysoki opór cieplny w tej strefie to jak założenie grubego swetra na kaloryfer – system musi pracować ciężej (wyższa temperatura zasilania), by osiągnąć ten sam efekt, co zwiększa koszty i bezwładność. Tutaj wybieramy materiały o&nbsp;<strong>jak najniższym oporze cieplnym R</strong>.</p>



<p class="wp-block-paragraph"><strong>Kluczowa zasada:</strong>&nbsp;Łączny opór cieplny&nbsp;<strong>wszystkich warstw nad rurą</strong>&nbsp;nie powinien przekraczać&nbsp;<strong>0,15 m²K/W</strong>. To wartość graniczna, poza którą spada efektywność systemu.</p>



<h2 class="wp-block-heading">Analiza warstw: Tabela oporów cieplnych materiałów podłogowych.</h2>



<p class="wp-block-paragraph">Poniższa tabela prezentuje przybliżone wartości oporu cieplnego R dla typowych materiałów używanych w konstrukcji i wykończeniu podłogi z ogrzewaniem.</p>



<div class="table-wrap">

  <h3>Analiza warstw: Tabela oporów cieplnych materiałów podłogowych</h3>
  <p>
    Poniższa tabela prezentuje przybliżone wartości oporu cieplnego R
    dla typowych materiałów używanych w konstrukcji i wykończeniu
    podłogi z ogrzewaniem.
  </p>

  <div class="table-scroll">
    <table class="rt-table">
      <thead>
        <tr>
          <th>Warstwa / Materiał</th>
          <th>Typowa grubość [mm]</th>
          <th>Współczynnik λ [W/mK]</th>
          <th>Opór cieplny R [m²K/W]</th>
          <th>Komentarz</th>
        </tr>
      </thead>

      <tbody>
        <tr class="section">
          <td colspan="5">IZOLACJA (FRONT DOLNY)</td>
        </tr>
        <tr>
          <td>Płyta PIR</td>
          <td>30</td>
          <td>0.024</td>
          <td><strong>1.25</strong></td>
          <td>Doskonały izolator, wysoki R przy małej grubości</td>
        </tr>
        <tr>
          <td>Styropian grafitowy EPS 100</td>
          <td>100</td>
          <td>0.031</td>
          <td><strong>3.23</strong></td>
          <td>Standardowa, efektywna izolacja</td>
        </tr>

        <tr class="section">
          <td colspan="5">WYLEWKA I WARSTWA PODRĘCZNA</td>
        </tr>
        <tr>
          <td>Wylewka anhydrytowa</td>
          <td>65 (nad rurą)</td>
          <td>1.4</td>
          <td><strong>0.046</strong></td>
          <td>Doskonały przewodnik ciepła, szybki odzysk</td>
        </tr>
        <tr>
          <td>Wylewka cementowa</td>
          <td>70 (nad rurą)</td>
          <td>1.2</td>
          <td><strong>0.058</strong></td>
          <td>Dobry przewodnik, powszechnie stosowana</td>
        </tr>
        <tr>
          <td>Płyta gipsowo-włóknowa</td>
          <td>20</td>
          <td>0.25</td>
          <td><strong>0.08</strong></td>
          <td>Stosowana w systemach suchych (bez mokrej wylewki)</td>
        </tr>

        <tr class="section">
          <td colspan="5">WYKOŃCZENIE (FRONT GÓRNY)</td>
        </tr>
        <tr>
          <td>Płytki ceramiczne / gres</td>
          <td>10</td>
          <td>1.5</td>
          <td><strong>0.007</strong></td>
          <td>Optymalny wybór. Minimalny opór R.</td>
        </tr>
        <tr>
          <td>Klepka parkietowa (dąb)</td>
          <td>16</td>
          <td>0.18</td>
          <td><strong>0.089</strong></td>
          <td>Uwaga na grubość i gatunek!</td>
        </tr>
        <tr>
          <td>Panele laminowane</td>
          <td>12</td>
          <td>0.10</td>
          <td><strong>0.12</strong></td>
          <td>Klasy do OGP mają niższy opór.</td>
        </tr>
        <tr>
          <td>Wykładzina PCV / LVT</td>
          <td>5</td>
          <td>0.10</td>
          <td><strong>0.05</strong></td>
          <td>Bardzo dobry wybór.</td>
        </tr>
        <tr>
          <td>Wykładzina dywanowa (cienka)</td>
          <td>8</td>
          <td>0.06</td>
          <td><strong>0.13</strong></td>
          <td>Wartość graniczna. Unikać grubych.</td>
        </tr>

        <tr class="section">
          <td colspan="5">PODKŁADY</td>
        </tr>
        <tr>
          <td>Podkład piankowy pod panele (3 mm)</td>
          <td>3</td>
          <td>0.05</td>
          <td><strong>0.06</strong></td>
          <td>Tylko dedykowane do OGP! Unikać „termo”.</td>
        </tr>
        <tr>
          <td>Folia separacyjna</td>
          <td>0.2</td>
          <td>0.04</td>
          <td><strong>~0.005</strong></td>
          <td>Pomijalny wpływ na R.</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<style>
.table-wrap {
  max-width: 100%;
  margin: 30px auto;
  font-family: Arial, Helvetica, sans-serif;
}

.table-scroll {
  overflow-x: auto;
}

.rt-table {
  border-collapse: collapse;
  width: 100%;
  min-width: 900px;
  font-size: 15px;
}

.rt-table th,
.rt-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #ddd;
  vertical-align: top;
}

.rt-table th {
  background: #f3f3f3;
  text-align: left;
  font-weight: bold;
}

.rt-table .section td {
  background: #fafafa;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-top: 2px solid #ccc;
}
</style>



<h2 class="wp-block-heading">Praktyczne wyliczenia: Jak sprawdzić, czy Twoja podłoga jest &#8222;przepuszczalna&#8221; dla ciepła?</h2>



<p class="wp-block-paragraph">Przejdźmy od teorii do praktyki. Załóżmy, że projektujemy podłogę w salonie z następującymi warstwami nad rurami grzewczymi:</p>



<ol start="1" class="wp-block-list">
<li>Wylewka anhydrytowa: grubość 55 mm (0.055 m), λ = 1.4 W/mK.</li>



<li>Klej do płytek: grubość 5 mm (0.005 m), λ = 1.0 W/mK (przybliżona).</li>



<li>Płytki gresowe: grubość 9 mm (0.009 m), λ = 1.5 W/mK.</li>
</ol>



<p class="wp-block-paragraph"><strong>Obliczamy całkowity opór cieplny warstw nad rurami Rₜ:</strong></p>



<ul class="wp-block-list">
<li>R_wylewka = d / λ = 0.055 / 1.4 =&nbsp;<strong>0.039 m²K/W</strong></li>



<li>R_klej = 0.005 / 1.0 =&nbsp;<strong>0.005 m²K/W</strong></li>



<li>R_płytki = 0.009 / 1.5 =&nbsp;<strong>0.006 m²K/W</strong></li>



<li><strong>Rₜ = 0.039 + 0.005 + 0.006 = 0.050 m²K/W</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Wniosek:</strong>&nbsp;Uzyskana wartość&nbsp;<strong>0.050 m²K/W</strong>&nbsp;jest&nbsp;<strong>znacznie poniżej</strong>&nbsp;granicznej wartości&nbsp;<strong>0.15 m²K/W</strong>. Oznacza to, że podłoga będzie doskonale przewodziła ciepło. System będzie efektywny, może pracować w trybie niskotemperaturowym (np. zasilanie 35-40°C), a reakcja na zmiany temperatury będzie stosunkowo szybka.</p>



<p class="wp-block-paragraph"><strong>Przykład negatywny:</strong>&nbsp;Ten sam salon, ale z innym wykończeniem:</p>



<ol start="1" class="wp-block-list">
<li>Wylewka cementowa: 70 mm (0.07 m), λ = 1.2 W/mK.</li>



<li>Podkład &#8222;termoizolacyjny&#8221; pod panele: 5 mm (0.005 m), λ = 0.05 W/mK.</li>



<li>Gruby panel dębowy: 14 mm (0.014 m), λ = 0.18 W/mK.</li>
</ol>



<ul class="wp-block-list">
<li>R_wylewka = 0.07 / 1.2 =&nbsp;<strong>0.058 m²K/W</strong></li>



<li>R_podkład = 0.005 / 0.05 =&nbsp;<strong>0.100 m²K/W</strong>&nbsp;(już sam ten podkład stwarza duży opór!)</li>



<li>R_panel = 0.014 / 0.18 =&nbsp;<strong>0.078 m²K/W</strong></li>



<li><strong>Rₜ = 0.058 + 0.100 + 0.078 = 0.236 m²K/W</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Wniosek:</strong>&nbsp;Opór całkowity&nbsp;<strong>0.236 m²K/W</strong>&nbsp;przekracza bezpieczną granicę. Taka podłoga będzie działać jak &#8222;kołdra&#8221;. Aby osiągnąć pożądany komfort, temperatura wody w rurach musi być znacząco podniesiona (nawet do 50-55°C), co zwiększa koszty ogrzewania, może powodować przegrzewanie podłogi w bezpośrednim sąsiedztwie rur (dyskomfort) i wydłuża czas nagrzewania pomieszczenia.</p>



<h2 class="wp-block-heading">Wizualizacja wpływu: Wykres zależności.</h2>



<p class="wp-block-paragraph">Poniższy wykres ilustruje jakościowy wpływ łącznego oporu cieplnego warstw nad rurami (Rₜ) na kluczowe parametry pracy systemu ogrzewania podłogowego.</p>



<div style="max-width:900px;margin:20px auto;">
<svg viewBox="0 0 900 520" xmlns="http://www.w3.org/2000/svg"
     style="width:100%;height:auto;font-family:Courier New,monospace;">

  <!-- OŚ Y -->
  <line x1="120" y1="60" x2="120" y2="460" stroke="#000" stroke-width="2"/>
  <polygon points="120,40 110,60 130,60" fill="#000"/>

  <!-- Opisy osi Y -->
  <text x="60" y="120" font-size="16">Wysoki ↑</text>
  <text x="60" y="260" font-size="16">Efekt</text>
  <text x="60" y="450" font-size="16">Niski ↓</text>

  <!-- OŚ X -->
  <line x1="120" y1="460" x2="820" y2="460" stroke="#000" stroke-width="2"/>
  <polygon points="840,460 820,450 820,470" fill="#000"/>

  <!-- Skala X -->
  <text x="150" y="490">0.05</text>
  <text x="300" y="490">0.10</text>
  <text x="450" y="490">0.15</text>
  <text x="600" y="490">0.20</text>

  <!-- Opis osi X -->
  <text x="260" y="520">
    Opór cieplny R<tspan baseline-shift="sub">t</tspan> warstw nad rurami [m²K/W]
  </text>

  <!-- Opis stref -->
  <text x="290" y="545">(STREFA ZALECANA)</text>
  <text x="560" y="545">(STREFA KRYTYCZNA)</text>

  <!-- SCHODKI – bez zmian wizualnych -->
  <path d="
    M260 420
    L260 380
    L340 380
    L340 330
    L420 330
    L420 280
    L500 280
    L500 230
    L580 230
    " fill="none" stroke="#000" stroke-width="2"/>

  <!-- OPISY – POPRAWIONE DANE -->
  <text x="360" y="355">
    Czas reakcji systemu
    <tspan x="360" y="375">(wydłużenie)</tspan>
  </text>

  <text x="440" y="305">
    Koszty eksploatacji
    <tspan x="440" y="325">(wzrost)</tspan>
  </text>

  <text x="520" y="255">
    Bezwładność systemu
    <tspan x="520" y="275">(wzrost)</tspan>
  </text>

  <text x="600" y="205">
    Temperatura zasilania
    <tspan x="600" y="225">(wzrost)</tspan>
  </text>

</svg>
</div>



<p class="wp-block-paragraph">Jak widać, przekroczenie magicznej granicy&nbsp;<strong>~0.15 m²K/W</strong>&nbsp;powoduje gwałtowne pogorszenie się wszystkich parametrów eksploatacyjnych systemu.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego: Gdzie opór cieplny R jest decydujący.</h2>



<p class="wp-block-paragraph"><strong>Profesjonalny projekt ogrzewania podłogowego</strong>&nbsp;to nie tylko rozstaw i długość rur. To kompleksowe ujęcie fizyki przenoszenia ciepła, w którym&nbsp;<strong>opór cieplny R każdej warstwy</strong>&nbsp;jest jednym z fundamentalnych danych wejściowych. Doświadczony projektant, tworząc&nbsp;<strong>projekt ogrzewania podłogowego</strong>, zawsze rozpoczyna od analizy konstrukcji podłogi.</p>



<ol start="1" class="wp-block-list">
<li><strong>Zbieranie danych:</strong>&nbsp;Pierwszym krokiem jest ustalenie grubości i współczynnika λ dla wszystkich warstw – zarówno izolacji, jak i warstw wykończeniowych. Na tej podstawie oblicza opory częściowe i całkowity opór dla strefy nad i pod rurami.</li>



<li><strong>Dobór parametrów pracy:</strong>&nbsp;Znając opór warstw nad rurami (Rₜ), projektant dobiera wymaganą&nbsp;<strong>gęstość strumienia ciepła</strong>&nbsp;(moc na m²) oraz&nbsp;<strong>temperaturę zasilania</strong>&nbsp;układu. Wyższy Rₜ wymusza wyższą temperaturę, co z kolei wpływa na dobór źródła ciepła (np. pompa ciepła wymaga niskich temperatur).</li>



<li><strong>Rozmieszczenie rur:</strong>&nbsp;W obszarach, gdzie przewidziano materiały wykończeniowe o wyższym oporze (np. parkiet w sypialni), projektant może zastosować&nbsp;<strong>gęstszy rozstaw rur</strong>&nbsp;(np. co 10 cm zamiast 15 cm), aby skompensować gorsze przewodzenie i zapewnić równomierny rozkład temperatury na powierzchni podłogi.</li>



<li><strong>Symulacje termiczne:</strong>&nbsp;Zaawansowane projekty wykorzystują oprogramowanie do symulacji, które na podstawie dokładnych danych o oporach warstw modeluje rozkład temperatur w podłodze i pomieszczeniu. Pozwala to uniknąć &#8222;zaskoczeń&#8221; po wykonaniu instalacji.</li>
</ol>



<p class="wp-block-paragraph"><strong>Bez uwzględnienia oporów cieplnych, projekt jest jedynie szkicem.</strong>&nbsp;Może prowadzić do niedogrzania pomieszczeń, nadmiernych kosztów energii lub przegrzewania podłogi w lokalnych obszarach. Inwestycja w&nbsp;<strong>profesjonalny projekt</strong>, który zawiera te obliczenia, zwraca się w trakcie użytkowania systemu.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><cite>Profesjonalny <strong>projekt ogrzewania podłogowego</strong> uwzględnia nie tylko rozstaw rur, ale także <em>rzeczywisty opór cieplny wszystkich warstw nad i pod rurami</em>, temperaturę zasilania oraz charakterystykę źródła ciepła.<br>Sprawdź szczegóły i zamów projekt dopasowany do Twojej podłogi:<br><strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/</a></strong></cite></blockquote>



<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-1769929568291"><strong class="schema-faq-question"><strong>Jaki opór cieplny R jest dopuszczalny nad rurami ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Łączny opór cieplny wszystkich warstw nad rurami nie powinien przekraczać <strong>0,15 m²K/W</strong>. Powyżej tej wartości system traci efektywność i wymaga wyższej temperatury zasilania.</p> </div> <div class="schema-faq-section" id="faq-question-1769934099160"><strong class="schema-faq-question"><strong>Czy wysoki opór cieplny zawsze jest zły?</strong></strong> <p class="schema-faq-answer">Nie. <strong>Wysoki opór cieplny jest pożądany pod rurami</strong>, gdzie pełni funkcję izolacji. Problemem jest wysoki R w warstwach wykończeniowych nad rurami.</p> </div> <div class="schema-faq-section" id="faq-question-1769934114904"><strong class="schema-faq-question"><strong>Dlaczego panele i podkłady są krytyczne dla ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Ponieważ nawet cienki podkład o niskim λ może znacząco podnieść całkowity opór cieplny Rₜ, działając jak izolator i blokując oddawanie ciepła do pomieszczenia.</p> </div> <div class="schema-faq-section" id="faq-question-1769934130172"><strong class="schema-faq-question"><strong>Czy można stosować parkiet na ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak, ale pod warunkiem kontroli <strong>grubości, gatunku drewna i sumarycznego oporu cieplnego</strong>. Grube parkiety mogą przekroczyć bezpieczną granicę Rₜ.</p> </div> <div class="schema-faq-section" id="faq-question-1769934137887"><strong class="schema-faq-question"><strong>Czy projekt ogrzewania podłogowego uwzględnia opór cieplny warstw?</strong></strong> <p class="schema-faq-answer">Profesjonalny projekt zawsze uwzględnia opór cieplny wszystkich warstw, ponieważ od niego zależy dobór temperatury zasilania, rozstaw rur i współpraca z pompą ciepła.</p> </div> </div>



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



<p class="wp-block-paragraph">Podejście do&nbsp;<strong>oporu cieplnego R</strong>&nbsp;w kontekście&nbsp;<strong>wodnego ogrzewania podłogowego</strong>&nbsp;musi być strategiczne i dwutorowe. Pamiętaj o prostej maksymie:&nbsp;<strong>Izoluj od dołu, przewodź od góry</strong>. Inwestycja w wysokiej jakości izolację termiczną pod rurami (wysoki R) oraz przemyślany dobór cienkich, dobrze przewodzących materiałów wykończeniowych (niski Rₜ) to gwarancja, że system będzie działał:</p>



<ul class="wp-block-list">
<li><strong>Efektywnie</strong>&nbsp;– z niską temperaturą zasilania, idealnie współpracując z nowoczesnymi źródłami ciepła.</li>



<li><strong>Ekonomicznie</strong>&nbsp;– minimalizując straty i koszty ogrzewania.</li>



<li><strong>Komfortowo</strong>&nbsp;– zapewniając równomierne, przyjemne ciepło pod stopami i szybko reagując na zmiany warunków.</li>
</ul>



<p class="wp-block-paragraph">Przed podjęciem ostatecznych decyzji dotyczących wykończenia podłogi, zawsze sprawdź karty techniczne materiałów, a w razie wątpliwości skonsultuj się z projektantem lub wykonawcą. Kilka dodatkowych minut spędzonych na analizie&nbsp;<strong>oporu cieplnego R</strong>&nbsp;może uchronić Cię przed latami rozczarowania niesprawnie działającą, drogą w eksploatacji &#8222;ciepłą podłogą&#8221;.</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="4slum2K8sx"><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=4VIlpWQ1wy#?secret=4slum2K8sx" data-secret="4slum2K8sx" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">Opór cieplny R [m²K/W]: Klucz do efektywnego ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 27 Jan 2026 10:30:35 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[strefa brzegowa]]></category>
		<category><![CDATA[strefa obwodowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3328</guid>

					<description><![CDATA[<p>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym to jeden z tych elementów instalacji, które decydują o realnym komforcie cieplnym w domu, a jednocześnie są często bagatelizowane. Właściwie zaprojektowana strefa przy ścianach zewnętrznych i przeszkleniach pozwala wyrównać temperaturę w pomieszczeniu, ograniczyć straty ciepła i obniżyć zużycie energii. W artykule wyjaśniamy, czym jest strefa brzegowa, dlaczego ma kluczowe znaczenie w nowoczesnym budownictwie oraz jak ją poprawnie zaprojektować zgodnie z normami i praktyką instalacyjną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) 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>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym</strong> to kluczowy element systemów grzewczych, który zapewnia równomierny rozkład ciepła w pomieszczeniach narażonych na większe straty termiczne. W dzisiejszych domach i budynkach, gdzie efektywność energetyczna odgrywa pierwszoplanową rolę, zrozumienie roli tej strefy pozwala na optymalne projektowanie instalacji, redukując zużycie energii i zwiększając komfort mieszkańców. W tym artykule przyjrzymy się bliżej, czym jest strefa brzegowa, dlaczego jest niezbędna i jak ją prawidłowo zaprojektować, opierając się na normach i praktycznych przykładach.</p>



<h2 class="wp-block-heading">Co to jest strefa brzegowa w ogrzewaniu podłogowym?</h2>



<p class="wp-block-paragraph">Strefa brzegowa, zwana również obwodową lub krawędziową, to specjalny pas podłogi przylegający do ścian zewnętrznych, dużych okien, drzwi balkonowych lub innych elementów budynku, gdzie występują zwiększone straty ciepła. W tym obszarze <a href="https://projekt-ogrzewania.pl/category/rury-do-ogrzewania/">rury</a> grzewcze układane są gęściej niż w centralnej części pomieszczenia, co pozwala na wyrównanie temperatury i uniknięcie uczucia chłodu przy przegrodach zewnętrznych.</p>



<p class="wp-block-paragraph">W praktyce, <strong>strefa obwodowa</strong> działa jak bufor termiczny. Podczas gdy w środku pokoju podłoga może być ogrzewana równomiernie, przy ścianach zewnętrznych infiltracja zimnego powietrza lub mostki termiczne powodują szybsze wychładzanie. Gęstsze ułożenie rur – zazwyczaj co 5-10 cm – zwiększa moc grzewczą na metr kwadratowy, osiągając nawet 100 W/m², w porównaniu do 50-80 W/m² w strefie podstawowej.</p>



<p class="wp-block-paragraph">Przykładowo, w typowym salonie o powierzchni 20 m² z oknami na jednej ścianie, strefa brzegowa może obejmować pas o szerokości 1 metra wzdłuż tej ściany, co daje około 4-6 m² powierzchni wymagającej intensywnego ogrzewania. Bez niej, temperatura podłogi przy oknie mogłaby spaść o 3-5°C, co odczuwalnie obniżyłoby komfort.</p>



<h3 class="wp-block-heading">Fizyczne podstawy działania strefy obwodowej.</h3>



<p class="wp-block-paragraph">Z punktu widzenia fizyki, ogrzewanie podłogowe opiera się na promieniowaniu i konwekcji ciepła. W strefie brzegowej kluczowe jest kompensowanie strat ciepła przez przegrody zewnętrzne, obliczone według normy PN-EN 12831. Straty te zależą od izolacji ścian (współczynnik U), powierzchni okien i warunków zewnętrznych.</p>



<p class="wp-block-paragraph">Na przykład, w budynku z dobrze izolowanymi ścianami (U=0,2 W/m²K), straty przy temperaturze zewnętrznej -15°C mogą wynosić 80-100 W/m² w obszarze brzegowym. Gęstsze rury pozwalają na podniesienie temperatury podłogi do 35°C (maksymalna dopuszczalna w tej strefie według <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>), co wyrównuje gradient temperaturowy.</p>



<h2 class="wp-block-heading">Dlaczego strefa brzegowa jest ważna w ogrzewaniu podłogowym?</h2>



<p class="wp-block-paragraph">Bez odpowiednio zaprojektowanej <strong>strefy obwodowej w ogrzewaniu podłogowym</strong>, system może być nieefektywny, prowadząc do nierównomiernego ogrzewania i wyższego zużycia energii. Norma PN-EN 1264 podkreśla, że strefa ta jest obowiązkowa w pomieszczeniach z przegrodami zewnętrznymi, aby zapewnić komfort termiczny.</p>



<p class="wp-block-paragraph">Oto kluczowe powody:</p>



<ul class="wp-block-list">
<li><strong>Kompensacja strat ciepła</strong>: W obszarach brzegowych straty mogą być dwukrotnie wyższe niż w centrum. Przykładowo, przy oknie o powierzchni 4 m² bez strefy, temperatura powietrza przy podłodze mogłaby spaść do 18°C, mimo 22°C w pokoju.</li>



<li><strong>Poprawa komfortu</strong>: Ludzie odczuwają chłód przy ścianach – strefa brzegowa eliminuje to, utrzymując temperaturę podłogi na poziomie 29-35°C.</li>



<li><strong>Efektywność energetyczna</strong>: Optymalne ułożenie rur redukuje pracę kotła lub <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> o 10-15%. W budynku o powierzchni 100 m² z pompą ciepła, brak strefy mógłby zwiększyć rachunki o 200-300 zł rocznie.</li>



<li><strong>Zgodność z normami</strong>: Brak strefy może unieważnić gwarancję systemu i nie spełnić wymagań budowlanych.</li>
</ul>



<p class="wp-block-paragraph">W kontekście nowoczesnych budynków pasywnych, strefa brzegowa pozwala na integrację z niskotemperaturowymi źródłami ciepła, jak pompy ciepła, gdzie temperatura zasilania to zaledwie 35-40°C.</p>



<h2 class="wp-block-heading">Projektowanie strefy brzegowej w ogrzewaniu podłogowym.</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt ogrzewania podłogowego</a> w kontekście tego artykułu to proces, który zaczyna się od obliczenia strat ciepła (OZC) dla każdego pomieszczenia, zgodnie z PN-EN 12831. Następnie definiuje się strefę brzegową, biorąc pod uwagę geometrię budynku, izolację i zapotrzebowanie na ciepło. To nie tylko techniczne wyliczenia, ale także dostosowanie do potrzeb użytkownika – na przykład w domu z dużymi przeszkleniami, strefa musi być szersza, aby zapobiec kondensacji pary wodnej na oknach.</p>



<p class="wp-block-paragraph">W praktyce, <a href="https://projekt-ogrzewania.pl/kontakt/">projektant</a> używa oprogramowania do symulacji termicznej, aby określić optymalny rozstaw rur i długość obwodów. Na przykład, dla pomieszczenia 15 m² z oknem, projekt może obejmować strefę brzegową o powierzchni 3 m² z rozstawem 10 cm, podłączoną do rozdzielacza z regulacją przepływu.</p>



<h3 class="wp-block-heading">Parametry projektowe strefy obwodowej.</h3>



<p class="wp-block-paragraph">Kluczowe parametry to:</p>



<ul class="wp-block-list">
<li><strong>Szerokość strefy</strong>: Zazwyczaj 0,5-1,5 m, najczęściej 1 m. Zależy od strat ciepła – w słabo izolowanym budynku może być szersza.</li>



<li><strong>Rozstaw rur</strong>: 5-10 cm w brzegowej, 10-20 cm w podstawowej. Dla pomp ciepła zalecany gęstszy rozstaw (10-15 cm) dla lepszej efektywności.</li>



<li><strong>Długość obwodu</strong>: Nie więcej niż 100-120 m, aby uniknąć spadków ciśnienia. Często strefa brzegowa to osobny obwód.</li>
</ul>



<p class="wp-block-paragraph">Przykładowe obliczenia według PN-EN 1264: Dla strefy brzegowej o stratach 100 W/m², przy rozstawie 10 cm i temperaturze zasilania 45°C, moc grzewcza q = 99,38 W/m², Δθ_H = 29,72°C.</p>



<h3 class="wp-block-heading">Układy rur w strefie brzegowej.</h3>



<p class="wp-block-paragraph">Wybór układu wpływa na równomierność ogrzewania:</p>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Układ meandrowy (wężowy)</a></strong>: Rury biegną zygzakiem. Prosty w montażu, ale może powodować różnice temperatur do 5°C. Zalecany w małych pomieszczeniach, np. łazience.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ spiralny (ślimakowy)</a></strong>: Rury przeplatają się, minimalizując gradienty do 2°C. Idealny do dużych salonów z strefą brzegową.</li>
</ul>



<p class="wp-block-paragraph">Przykładowo, w układzie spiralnym strefa brzegowa integruje się z główną pętlą, zaczynając od zewnętrznej ściany.</p>



<h2 class="wp-block-heading">Przykłady obliczeń i wyliczenia w strefie obwodowej.</h2>



<p class="wp-block-paragraph">Rozważmy pomieszczenie 23,5 m² z oknami: Straty ciepła 100 W/m² w brzegowej (8,76 m²), 60 W/m² w bytowej (14,74 m²).</p>



<p class="wp-block-paragraph">Obliczenia według PN-EN 1264:</p>



<ul class="wp-block-list">
<li>Współczynniki: B0 = 6,7 W/m²K, aB = 0,578, at = 1,156 itd.</li>



<li>Moc: q = 99,38 W/m², qG = 100,49 W/m².</li>



<li>Długość rur: Dla rozstawu 10 cm w brzegowej – około 90 m na obwód.</li>
</ul>



<p class="wp-block-paragraph">Inny przykład: Łazienka 6 m², strefa brzegowa 2 m². Rozstaw 5 cm daje moc 120 W/m², temperatura podłogi 33°C.</p>



<style>
.floor-table-wrap {
  max-width: 960px;
  margin: 40px auto;
  padding: 20px;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  font-family: Arial, sans-serif;
}

.floor-table-wrap h3 {
  text-align: center;
  font-size: 26px;
  margin-bottom: 20px;
}

.floor-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
}

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

.floor-table th,
.floor-table td {
  padding: 14px 16px;
  text-align: left;
  font-size: 15px;
}

.floor-table th {
  font-weight: 600;
  color: #333;
  border-bottom: 2px solid #e0e0e0;
}

.floor-table td {
  border-bottom: 1px solid #eaeaea;
  color: #444;
}

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

/* Wyróżnienie pierwszej kolumny */
.floor-table td:first-child {
  font-weight: bold;
  color: #000;
}

/* Kolumny liczbowe – wyrównanie */
.floor-table td:nth-child(1),
.floor-table td:nth-child(2),
.floor-table td:nth-child(4) {
  text-align: center;
}

/* Responsywność */
@media (max-width: 768px) {
  .floor-table thead {
    display: none;
  }

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

  .floor-table tr {
    margin-bottom: 18px;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 10px;
  }

  .floor-table td {
    text-align: right;
    padding: 10px;
    position: relative;
  }

  .floor-table td::before {
    content: attr(data-label);
    position: absolute;
    left: 10px;
    top: 10px;
    font-weight: bold;
    color: #666;
    text-align: left;
  }
}

.floor-table-note {
  margin-top: 16px;
  font-size: 14px;
  color: #666;
  text-align: center;
}
</style>

<div class="floor-table-wrap">
  <h3>Rozstaw rur a moc ogrzewania podłogowego</h3>

  <table class="floor-table">
    <thead>
      <tr>
        <th>Rozstaw rur (cm)</th>
        <th>Moc grzewcza (W/m²)</th>
        <th>Zastosowanie</th>
        <th>Maks. temperatura podłogi (°C)</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td data-label="Rozstaw rur (cm)">5</td>
        <td data-label="Moc grzewcza (W/m²)">100–120</td>
        <td data-label="Zastosowanie">Strefa brzegowa w łazienkach</td>
        <td data-label="Maks. temperatura podłogi (°C)">35</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">10</td>
        <td data-label="Moc grzewcza (W/m²)">80–100</td>
        <td data-label="Zastosowanie">Standardowa strefa obwodowa</td>
        <td data-label="Maks. temperatura podłogi (°C)">35</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">15</td>
        <td data-label="Moc grzewcza (W/m²)">60–80</td>
        <td data-label="Zastosowanie">Strefa podstawowa</td>
        <td data-label="Maks. temperatura podłogi (°C)">29</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">20</td>
        <td data-label="Moc grzewcza (W/m²)">50–70</td>
        <td data-label="Zastosowanie">Duże pomieszczenia</td>
        <td data-label="Maks. temperatura podłogi (°C)">29</td>
      </tr>
    </tbody>
  </table>

  <div class="floor-table-note">
    Tabela pokazuje zależność mocy grzewczej od rozstawu rur przy temperaturze zasilania 40°C.
  </div>
</div>




<p class="wp-block-paragraph">Aby zilustrować rozkład temperatury, poniżej przykładowy wykres liniowy pokazujący gradient w pomieszczeniu ze strefą brzegową. Na wykresie widać, jak gęstsze rury w strefie obwodowej wyrównują temperaturę do poziomu 22-24°C w całym pokoju, w porównaniu do spadku bez strefy.</p>



<p class="wp-block-paragraph">Dane symulowane dla pomieszczenia o szerokości 5 m.</p>



<style>
.floor-chart {
  max-width: 960px;
  margin: 50px auto;
  padding: 30px;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 12px 35px rgba(0,0,0,0.08);
  font-family: Arial, sans-serif;
}

.floor-chart h2 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 6px;
}

.floor-chart p {
  text-align: center;
  font-size: 16px;
  color: #666;
  margin-bottom: 30px;
}

.legend {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 22px;
  font-size: 15px;
}

.legend span {
  display: flex;
  align-items: center;
  gap: 10px;
}

.legend i {
  width: 30px;
  height: 4px;
  display: inline-block;
}

.no-zone {
  background: #c0392b;
}

.with-zone {
  background: #27ae60;
}
</style>

<div class="floor-chart">
  <h2>Rozkład temperatury przy podłodze</h2>
  <p>Porównanie pomieszczenia bez strefy brzegowej i ze strefą obwodową</p>

  <svg viewBox="0 0 900 420" preserveAspectRatio="xMidYMid meet" style="width:100%; height:auto;">

    <!-- Oś Y -->
    <line x1="90" y1="60" x2="90" y2="360" stroke="#333" stroke-width="2"/>

    <!-- Linie pomocnicze -->
    <line x1="90" y1="100" x2="840" y2="100" stroke="#eee"/>
    <line x1="90" y1="170" x2="840" y2="170" stroke="#eee"/>
    <line x1="90" y1="240" x2="840" y2="240" stroke="#eee"/>
    <line x1="90" y1="310" x2="840" y2="310" stroke="#eee"/>

    <!-- Opisy osi Y -->
    <text x="30" y="105" font-size="14">24°C</text>
    <text x="30" y="175" font-size="14">23°C</text>
    <text x="30" y="245" font-size="14">22°C</text>
    <text x="30" y="315" font-size="14">21°C</text>

    <!-- Linia: bez strefy brzegowej -->
    <polyline
      fill="none"
      stroke="#c0392b"
      stroke-width="4"
      points="
        90,115
        260,150
        430,205
        600,260
        770,315
      "
    />

    <!-- Linia: ze strefą brzegową -->
    <polyline
      fill="none"
      stroke="#27ae60"
      stroke-width="4"
      stroke-dasharray="8,6"
      points="
        90,125
        260,145
        430,165
        600,185
        770,195
      "
    />

  </svg>

  <div class="legend">
    <span><i class="with-zone"></i> Ze strefą obwodową</span>
    <span><i class="no-zone"></i> Bez strefy brzegowej</span>
  </div>
</div>




<h2 class="wp-block-heading">Materiały i wskazówki praktyczne w ogrzewaniu podłogowym ze strefą brzegową.</h2>



<p class="wp-block-paragraph">Do budowy używa się rur <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PE-X</a> lub wielowarstwowych (PE-AL-PE), o średnicy 14-20 mm. Izolacja termiczna pod rurami to minimum 0,75 m²K/W nad ogrzewanymi pomieszczeniami.</p>



<p class="wp-block-paragraph">Wskazówki:</p>



<ul class="wp-block-list">
<li>Unikaj rur pod stałą zabudową (szafki, wanna) – marnuje energię.</li>



<li>Integruj z automatyką: Termostaty pokojowe regulują przepływ w strefie brzegowej.</li>



<li>Montaż: Zaczynaj od strefy brzegowej, używając klipsów lub mat systemowych.</li>



<li>Testy: Po ułożeniu, próba ciśnieniowa 6 bar przez 24h.</li>
</ul>



<p class="wp-block-paragraph">W domu jednorodzinnym z pompą ciepła, strefa brzegowa w salonie o szerokości 1 m z rozstawem 10 cm może obniżyć temperaturę zasilania o 5°C, oszczędzając 15% energii.</p>



<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-1769506870160"><strong class="schema-faq-question"><strong>Czym jest strefa brzegowa w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer"> Strefa brzegowa to pas podłogi przy ścianach zewnętrznych lub oknach, gdzie rury grzewcze układane są gęściej (5-10 cm rozstawu), by kompensować większe straty ciepła i zapewnić równomierny rozkład temperatury w pomieszczeniu.</p> </div> <div class="schema-faq-section" id="faq-question-1769506881130"><strong class="schema-faq-question"><strong>Dlaczego strefa obwodowa jest obowiązkowa według norm?</strong></strong> <p class="schema-faq-answer">Norma PN-EN 1264 wymaga strefy brzegowej w pomieszczeniach z przegrodami zewnętrznymi, aby uniknąć nierównomiernego ogrzewania, poprawić komfort i zgodność z wymaganiami budowlanymi – brak jej może unieważnić gwarancję systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1769506936757"><strong class="schema-faq-question"><strong>Jak obliczyć szerokość strefy brzegowej?</strong></strong> <p class="schema-faq-answer">Szerokość zazwyczaj wynosi 0,5-1,5 m (najczęściej 1 m) i zależy od strat ciepła obliczonych według <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>. Na przykład w budynku z oknami i stratami 100 W/m², strefa obejmuje pas 1 m wzdłuż ściany zewnętrznej.</p> </div> <div class="schema-faq-section" id="faq-question-1769507005593"><strong class="schema-faq-question"><strong>Jaki układ rur jest najlepszy w strefie obwodowej?</strong></strong> <p class="schema-faq-answer">Układ spiralny (ślimakowy) jest idealny, bo minimalizuje różnice temperatur do 2°C i integruje się z główną pętlą. Meandrowy (wężowy) sprawdza się w małych pomieszczeniach, jak łazienka, ale może powodować gradienty do 5°C.</p> </div> <div class="schema-faq-section" id="faq-question-1769507012065"><strong class="schema-faq-question"><strong>Czy strefa brzegowa oszczędza energię?</strong></strong> <p class="schema-faq-answer">Tak, optymalne ułożenie rur redukuje pracę kotła lub pompy ciepła o 10-15%, co w budynku 100 m² może obniżyć rachunki o 200-300 zł rocznie, dzięki wyrównaniu strat ciepła i niższej temperaturze zasilania.</p> </div> </div>



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



<p class="wp-block-paragraph">Podsumowując, strefa brzegowa w ogrzewaniu podłogowym to nie tylko techniczny detal, ale podstawa komfortu termicznego i oszczędności energii, pozwalająca na efektywne wykorzystanie ciepła w newralgicznych miejscach budynku. Prawidłowy projekt, uwzględniający normy i indywidualne potrzeby, zapewnia lata bezproblemowej eksploatacji bez awarii czy nadmiernego zużycia. Jeśli planujesz instalację, skonsultuj się z certyfikowanym specjalistą – to inwestycja, która szybko się zwraca dzięki niższym rachunkom i wyższemu komfortowi codziennego życia.</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="8xSUSiRO38"><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=rP6MGZ0Zdh#?secret=8xSUSiRO38" data-secret="8xSUSiRO38" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rozstaw rur w wodnym ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 08:32:32 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Projekty techniczne]]></category>
		<category><![CDATA[Rodzaje rur grzewczych]]></category>
		<category><![CDATA[Rozstaw rur ogrzewania]]></category>
		<category><![CDATA[Rozstaw rur podłogówki]]></category>
		<category><![CDATA[Rozstaw rur w podłogówce]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[delta t]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[moc ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[wodne ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3301</guid>

					<description><![CDATA[<p>Planując wodne ogrzewanie podłogowe, wielu inwestorów skupia się na źródle ciepła, zapominając o kluczowym parametrze, jakim jest rozstaw rur w wodnym ogrzewaniu podłogowym. To właśnie on w największym stopniu decyduje o mocy systemu, równomierności grzania oraz realnym komforcie użytkowania. W artykule krok po kroku wyjaśniamy, jak fizyka, straty ciepła budynku, rodzaj posadzki i geometria pętli wpływają na optymalny rozstaw rur. Pokazujemy konkretne liczby, przykłady techniczne, symulacje oraz pułapki projektowe, które mogą kosztować drogie błędy na etapie eksploatacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">Rozstaw rur w wodnym 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">Planując instalację wodnego ogrzewania podłogowego, jednym z najważniejszych i najczęściej analizowanych parametrów jest&nbsp;<strong>rozstaw rur</strong>. Od tego, w jakiej odległości od siebie ułożymy pętle grzewcze, zależy nie tylko końcowy komfort cieplny, ale także efektywność i równomierność ogrzewania całej powierzchni. Wbrew pozorom, nie ma jednej uniwersalnej wartości, którą można zastosować w każdym budynku.&nbsp;<strong>Optymalny rozstaw rur</strong>&nbsp;jest wypadkową wielu zmiennych: od projektu architektonicznego przez parametry techniczne budynku po oczekiwania użytkowników. W tym artykule, przeznaczonym zarówno dla osób planujących inwestycję, jak i dla wykonawców, dogłębnie przeanalizujemy wszystkie czynniki wpływające na ten kluczowy aspekt projektowy, popierając teorię praktycznymi wyliczeniami i przykładami.</p>



<h2 class="wp-block-heading">Podstawy fizyki grzania: dlaczego rozstaw ma tak ogromne znaczenie?</h2>



<p class="wp-block-paragraph">Aby zrozumieć, jak&nbsp;<strong>odległość między rurami</strong>&nbsp;wpływa na pracę systemu, musimy wyobrazić sobie pole grzewcze jako źródło ciepła o określonej mocy. <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury</a>, przez które płynie gorąca woda, oddają ciepło do otaczającego je jastrychu (płyty betonowej). Ciepło następnie przewodzone jest przez warstwy podłogi na jej powierzchnię. Im rury są bliżej siebie, tym&nbsp;<strong>strumień cieplny</strong>&nbsp;na powierzchni podłogi jest bardziej równomierny, a tzw.&nbsp;<strong>efekt „stopy słonia”</strong>&nbsp;(czyli wyczuwalnych, naprzemiennych pasów ciepła i chłodu) jest eliminowany.</p>



<p class="wp-block-paragraph"><strong>Gęstość ułożenia <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczych</a></strong>&nbsp;bezpośrednio przekłada się na&nbsp;<strong>moc grzewczą</strong>&nbsp;jednostki powierzchni, wyrażaną w Watach na metr kwadratowy [W/m²]. Dla standardowej rury 16&#215;2 mm i typowych parametrów pracy (temp. zasilania 40°C, powrotu 35°C, temp. pomieszczenia 20°C) przyjmuje się następujące, przybliżone wartości mocy:</p>



<ul class="wp-block-list">
<li>Przy&nbsp;<strong>rozstawie 10 cm</strong>: ok.&nbsp;<strong>100 W/m²</strong></li>



<li>Przy&nbsp;<strong>rozstawie 15 cm</strong>: ok.&nbsp;<strong>80 W/m²</strong></li>



<li>Przy&nbsp;<strong>rozstawie 20 cm</strong>: ok.&nbsp;<strong>65 W/m²</strong></li>



<li>Przy&nbsp;<strong>rozstawie 25 cm</strong>: ok.&nbsp;<strong>55 W/m²</strong></li>
</ul>



<p class="wp-block-paragraph">Jak widać, zmniejszając&nbsp;<strong>odstęp między przewodami</strong>&nbsp;z 20 cm do 10 cm, teoretycznie podwajamy moc grzewczą podłogi. To kluczowa informacja przy doborze systemu do pomieszczeń o dużych stratach ciepła.</p>



<h3 class="wp-block-heading">Główne czynniki decydujące o wyborze odpowiedniego rozstawu.</h3>



<p class="wp-block-paragraph">Proces ustalania&nbsp;<strong>odległości między rurami</strong>&nbsp;w instalacji podłogowej to zawsze praca inżynierska, polegająca na bilansowaniu poniższych elementów.</p>



<h4 class="wp-block-heading">1. Straty ciepła pomieszczenia i wymagana moc grzewcza.</h4>



<p class="wp-block-paragraph">To punkt wyjścia każdego projektu.&nbsp;<strong>Zapotrzebowanie na ciepło</strong>&nbsp;dla danego pomieszczenia oblicza się zgodnie z normą <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>, biorąc pod uwagę:</p>



<ul class="wp-block-list">
<li>Powierzchnię i kubaturę.</li>



<li>Jakość izolacji przegród zewnętrznych (ścian, dachu, podłogi na gruncie).</li>



<li>Powierzchnię i charakter okien oraz drzwi.</li>



<li>Strefę klimatyczną.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład techniczny:</strong>&nbsp;Dla nowobudowanego, dobrze ocieplonego domu (współczynnik przenikania ciepła dla ścian U≈0,15 W/m²K) straty ciepła w salonie o powierzchni 30 m² mogą wynosić ok. 40-50 W/m². W takim przypadku&nbsp;<strong>rozstaw rur na poziomie 15-20 cm</strong>&nbsp;będzie w zupełności wystarczający. W starej, nieocieplonej kamienicy straty tego samego pomieszczenia mogą sięgać 120-150 W/m². Tu konieczne będzie&nbsp;<strong>bardzo gęste ułożenie przewodów</strong>, nawet co 10 cm, a często również uzupełnienie systemu grzejnikami.</p>



<h4 class="wp-block-heading">2. Rodzaj pokrycia podłogowego i jego opór cieplny.</h4>



<p class="wp-block-paragraph">Materiał wykończeniowy podłogi jest swoistym&nbsp;<strong>„filtrem”</strong>&nbsp;dla ciepła. Jego&nbsp;<strong>opór cieplny R [m²K/W]</strong>&nbsp;decyduje o tym, jak efektywnie ciepło z płyty grzewczej przedostanie się do pomieszczenia.</p>



<ul class="wp-block-list">
<li><strong>Płytki ceramiczne, kamień naturalny:</strong>&nbsp;Mają niski opór cieplny (R≈0.01 m²K/W). Doskonale przewodzą ciepło, pozwalając na stosowanie standardowych lub nawet nieco wyższych temperatur podłogi (do 29°C w strefie stałego przebywania). Dają dużą swobodę w doborze&nbsp;<strong>rozstawu rurek</strong>.</li>



<li><strong>Panele winylowe (LVT), wykładzina cienka:</strong>&nbsp;Opór nieco wyższy, ale wciąż akceptowalny.</li>



<li><strong>Panele laminowane, deska warstwowa, parkiet:</strong>&nbsp;Tutaj opór jest znaczący (R może przekraczać 0.15 m²K/W). Producenci materiałów drewnopochodnych jasno określają maksymalną temperaturę podłogi (często 27°C) i maksymalny&nbsp;<strong>opór całkowity</strong>&nbsp;wszystkich warstw. Aby uzyskać wymaganą moc przy niższej temperaturze powierzchni, często&nbsp;<strong>należy zagęścić rozstaw rur</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład wyliczenia:</strong>&nbsp;Dla pomieszczenia o zapotrzebowaniu 80 W/m² i podłodze z paneli (dopuszczalna temp. podłogi 27°C) może się okazać, że przy rozstawie 20 cm temperatura wody potrzebna do uzyskania tej mocy przekroczy dopuszczalną wartość, prowadząc do uszkodzenia posadzki lub dyskomfortu. Rozwiązaniem jest&nbsp;<strong>zmniejszenie odległości między pętlami</strong>&nbsp;do 15 cm lub 10 cm, co pozwoli uzyskać tę samą moc przy niższej temperaturze zasilania.</p>



<h4 class="wp-block-heading">3. Konfiguracja pomieszczenia i strefowanie.</h4>



<p class="wp-block-paragraph">Nie w każdym pomieszczeniu&nbsp;<strong>odstęp pomiędzy rurami</strong>&nbsp;jest stały na całej powierzchni. Kluczową zasadą jest&nbsp;<strong>strefowanie grzewcze</strong>.</p>



<ul class="wp-block-list">
<li><strong>Strefa brzegowa (obwodowa):</strong>&nbsp;Pas o szerokości około 1 metra wzdłuż ścian zewnętrznych, zwłaszcza tych z dużymi przeszkleniami. To tutaj straty ciepła są największe. W tej strefie standardowo&nbsp;<strong>zagęszcza się rozstaw rur</strong>&nbsp;(np. do 10-12 cm) w stosunku do strefy centralnej (gdzie można zastosować 20 cm). Zapobiega to wychłodzeniu strefy przyokiennej i poprawia komfort.</li>



<li><strong>Strefy stałego przebywania:</strong>&nbsp;W łazience szczególnie ważne jest równomierne ciepło przy umywalce czy w kabinie prysznicowej. Często układa się tam rury gęściej.</li>



<li><strong>Miejsca z ograniczonym przekazywaniem ciepła:</strong>&nbsp;Pod stałymi zabudowami meblowymi (szafy wnękowe, kredensy), pod wanną czy dużymi urządzeniami AGD&nbsp;<strong>nie układa się rur</strong>. Zmniejsza to bezużyteczne straty ciepła i nie naraża mebli na przesuszenie.</li>
</ul>



<h3 class="wp-block-heading">Projekt ogrzewania podłogowego – serce dobrze działającej instalacji.</h3>



<p class="wp-block-paragraph">W kontekście omawianego&nbsp;<strong>rozstawu rur</strong>, projekt jest dokumentem absolutnie kluczowym i nie wolno go pomijać.&nbsp;<strong>Amatorskie „szacowanie” odległości między pętlami</strong>&nbsp;prowadzi do szeregu problemów: nierównomiernego grzania, wiecznie zimnych pomieszczeń, przegrzewania innych, a wreszcie – do wysokich rachunków za energię.</p>



<p class="wp-block-paragraph">Profesjonalny projekt hydrauliczno-cieplny obejmuje:</p>



<ol start="1" class="wp-block-list">
<li><strong>Obliczenie strat ciepła</strong>&nbsp;dla każdego pomieszczenia osobno.</li>



<li><strong>Dobór rozstawu rur</strong>&nbsp;(często zmiennego w obrębie jednego pomieszczenia) oraz schematu ich ułożenia (meander lub ślimak) tak, aby uzyskać wymaganą moc grzewczą.</li>



<li><strong>Podział na pętle grzewcze</strong>&nbsp;o zbliżonej długości (dla rur 16&#215;2 mm optymalnie 80-100 m, max 120 m), co zapewnia zrównoważenie hydrauliczne systemu.</li>



<li><strong>Dobór rozdzielacza</strong>&nbsp;z odpowiednią liczbą odgałęzień oraz elementami regulacyjnymi.</li>



<li><strong>Określenie parametrów pracy</strong>&nbsp;(temperatury zasilania, projektowy przepływ).</li>
</ol>



<p class="wp-block-paragraph">Inwestycja w <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt</a> (koszt kilkuset do kilku tysięcy złotych w zależności od metrażu) zwraca się wielokrotnie w trakcie eksploatacji poprzez oszczędności na paliwie i uniknięcie kosztownych przeróbek.&nbsp;<strong>Rozstaw rur odczytany z takiego projektu jest wartością wiążącą i optymalną.</strong></p>



<h3 class="wp-block-heading">Przykłady techniczne i symulacje.</h3>



<p class="wp-block-paragraph">Poniższa tabela ilustruje przybliżony dobór&nbsp;<strong>rozstawu pętli grzewczych</strong>&nbsp;dla różnych typów pomieszczeń w budynku standardowym (średnio ocieplonym).</p>



<style>
.table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 30px 0;
}

.tech-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  min-width: 900px;
}

.tech-table th,
.tech-table td {
  padding: 14px 12px;
  border: 1px solid #e0e0e0;
  vertical-align: top;
}

.tech-table th {
  background: #1f2933;
  color: #ffffff;
  font-weight: 600;
  text-align: left;
}

.tech-table tr:nth-child(even) {
  background: #f9fafb;
}

.tech-table strong {
  color: #111827;
}

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

<div class="table-wrap">
<table class="tech-table">
<thead>
<tr>
<th>Pomieszczenie</th>
<th>Charakterystyka</th>
<th>Szacowane straty ciepła [W/m²]</th>
<th>Zalecany rozstaw rur (16×2 mm)</th>
<th>Uzasadnienie techniczne i uwagi</th>
</tr>
</thead>

<tbody>

<tr>
<td><strong>Łazienka</strong></td>
<td>
Małe pomieszczenie, wymagające szybkiego nagrzania i wysokiego komfortu cieplnego
(ogrzewanie podstawowe). Często posadzka z płytek.
</td>
<td>90 – 120+</td>
<td><strong>5 cm – 10 cm</strong></td>
<td>
Rozstaw 5 cm to rozwiązanie ekstremalne, stosowane przy wymaganiach bardzo wysokiej
mocy grzewczej (&gt;120 W/m²) przy niskiej temperaturze zasilania (np. 35°C).
Zapewnia idealnie równomierną temperaturę podłogi – kluczowe przy chodzeniu boso.
Wymaga krótkich pętli ze względu na duże opory hydrauliczne.
</td>
</tr>

<tr>
<td><strong>Salon (przy dużym przeszkleniu)</strong></td>
<td>
Pomieszczenie o wysokich stratach przez szyby,
wymagające kompensacji zimnego promieniowania.
</td>
<td>70 – 100</td>
<td>
<strong>Strefa brzegowa:</strong> 5–10 cm<br>
<strong>Strefa centralna:</strong> 10–15 cm
</td>
<td>
Zagęszczenie do 5 cm w pasie ok. 1–1,5 m od okna/ściany szklanej jest celową
inwestycją w komfort – eliminuje uczucie chłodu i przeciągów.
W strefie centralnej wystarczy 10–15 cm.
Układ mieszany (spiralny) jest tu obowiązkowy.
</td>
</tr>

<tr>
<td><strong>Sypialnia (ściany wewnętrzne)</strong></td>
<td>
Pomieszczenie o niskich stratach,
gdzie priorytetem jest niska temperatura powierzchni podłogi.
</td>
<td>35 – 50</td>
<td><strong>10 cm – 20 cm</strong></td>
<td>
Rozstaw 10 cm pozwala utrzymać bardzo niską temperaturę zasilania (30–33°C),
idealną dla pomp ciepła i kotłów kondensacyjnych.
Wersja 20 cm to standard dla domów pasywnych i energooszczędnych.
</td>
</tr>

<tr>
<td><strong>Hol / Przedpokój</strong></td>
<td>
Pomieszczenie z drzwiami wejściowymi,
narażone na krótkotrwałe, duże straty ciepła.
</td>
<td>60 – 85</td>
<td><strong>10 cm – 20 cm</strong></td>
<td>
Gęsty rozstaw (10 cm) w strefie progu drzwi wejściowych
(na głębokości 1,5–2 m) działa jak efektywna kurtyna cieplna,
minimalizując wychłodzenie przy wietrzeniu.
W głębi pomieszczenia można przejść na 20 cm.
</td>
</tr>

<tr>
<td><strong>Garaż ogrzewany</strong></td>
<td>
Przestrzeń o bardzo wysokich wymaganiach izolacyjnych podłogi
i dużych, okresowych stratach ciepła.
</td>
<td>40 – 60</td>
<td><strong>20 cm – 30 cm</strong></td>
<td>
Rozstaw 30 cm dopuszczalny wyłącznie w garażach bardzo dobrze ocieplonych,
traktowanych jako pomieszczenia użytkowe o stałej, umiarkowanej temperaturze (np. 15°C).
Przy wyższych temperaturach lub słabszej izolacji zalecane 15–20 cm.
Kluczowe jest użycie rur z barierą antydyfuzyjną (EVOH)
i izolacji o wysokiej odporności na ściskanie (min. 200 kPa).
</td>
</tr>

</tbody>
</table>
</div>



<p class="wp-block-paragraph"><strong>Wykres: Zależność mocy grzewczej od rozstawu rur i temperatury czynnika</strong><br>*(Interpretacja danych dla rury 16&#215;2 mm, delta T = różnica między średnią temp. wody a temp. w pomieszczeniu)*</p>



<style>
.table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 30px 0;
}

.tech-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  min-width: 700px;
}

.tech-table th,
.tech-table td {
  padding: 14px 12px;
  border: 1px solid #e0e0e0;
  text-align: center;
}

.tech-table th {
  background: #1f2933;
  color: #ffffff;
  font-weight: 600;
}

.tech-table tr:nth-child(even) {
  background: #f9fafb;
}

.tech-table td:first-child,
.tech-table th:first-child {
  text-align: left;
  font-weight: 600;
}

.tech-note {
  font-size: 14px;
  color: #4b5563;
  margin-top: 10px;
  font-style: italic;
}

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

<h3>Wykres: Zależność mocy grzewczej od rozstawu rur i temperatury czynnika</h3>

<div class="table-wrap">
<table class="tech-table">
<thead>
<tr>
<th>Rozstaw rur [cm]</th>
<th>Moc grzewcza przy ΔT = 10 K<br>[W/m²]</th>
<th>Moc grzewcza przy ΔT = 15 K<br>[W/m²]</th>
<th>Moc grzewcza przy ΔT = 20 K<br>[W/m²]</th>
</tr>
</thead>

<tbody>
<tr>
<td>5</td>
<td>~45</td>
<td>~68</td>
<td>~90</td>
</tr>

<tr>
<td>10</td>
<td>~55</td>
<td>~82</td>
<td>~110</td>
</tr>

<tr>
<td>15</td>
<td>~50</td>
<td>~75</td>
<td>~100</td>
</tr>

<tr>
<td>20</td>
<td>~40</td>
<td>~60</td>
<td>~80</td>
</tr>
</tbody>
</table>
</div>

<p class="tech-note">
*Interpretacja danych dla rury 16×2 mm. ΔT oznacza różnicę pomiędzy średnią temperaturą wody grzewczej
a temperaturą powietrza w pomieszczeniu. Wartości orientacyjne – rzeczywista moc zależy m.in.
od rodzaju posadzki, grubości wylewki i oporu cieplnego warstw.*
</p>



<p class="wp-block-paragraph"><em>Paradoks wykresu:</em>&nbsp;Zwróć uwagę, że przy bardzo małej różnicy temperatur (ΔT=10K),&nbsp;<strong>rozstaw 10 cm daje wyższą moc niż rozstaw 5 cm</strong>. Dzieje się tak, ponieważ przy ekstremalnie gęstym ułożeniu&nbsp;<strong>wzrasta opór hydrauliczny</strong>, a sama rura oddaje ciepło na bardzo krótkim odcinku, co może nieznacznie obniżać średnią temperaturę czynnika w pętli. To potwierdza, że&nbsp;<strong>rozstaw 5 cm ma sens tylko w systemach zaprojektowanych na niską ΔT, ale z wysokim przepływem</strong>, co wymaga precyzyjnej regulacji hydrauliczej.</p>



<p class="wp-block-paragraph"><strong>Obliczenie długości pętli dla łazienki z rozstawem 5 cm:</strong><br>Dla łazienki 4 m² (2m x 2m) z rozstawem 5 cm (0.05 m) i obwodem 8 m, przybliżona długość rury wyniesie:<br><code>L ≈ (A / s) * 2 + (2 * O) = (4 / 0.05) * 2 + (2*8) = 160 + 16 = 176 metrów.</code><br>Jest to długość&nbsp;<strong>niedopuszczalna dla jednej pętli</strong>&nbsp;(maks. 100-120m). Rozwiązaniem jest podział na&nbsp;<strong>dwie niezależne pętle</strong>&nbsp;po ok. 88 m każda, co pozwala utrzymać odpowiedni przepływ i uniknąć zbyt wysokich oporów. To pokazuje, że&nbsp;<strong>skrajnie gęsty rozstaw rur pociąga za sobą konieczność zmiany koncepcji rozdzielacza i zwiększenia liczby pętli</strong>.</p>



<p class="wp-block-paragraph"><strong>Podsumowanie tej sekcji:</strong>&nbsp;Przedstawione wartości&nbsp;<strong>5-10 cm</strong>&nbsp;są poprawne i stosowane w&nbsp;<strong>wysokoparametrowych instalacjach</strong>, gdzie priorytetem jest maksymalna moc przy niskiej temperaturze, absolutna równomierność grzania lub kompensacja ekstremalnych strat ciepła (przeszklenia). Każda taka decyzja&nbsp;<strong>musi być poprzedzona dokładnym projektem hydraulicznym</strong>, który zweryfikuje długości pętli, opory i dobierze odpowiednią pompa obiegowa. W przeciwnym razie, zamiast wysokiego komfortu, uzyskamy niewydolny, głośny i drogi w eksploatacji system.</p>



<h2 class="wp-block-heading">Geometria pętli zamiast podnoszenia temperatury.</h2>



<style>
.chart-container {
  max-width: 900px;
  margin: 40px auto;
}

.chart-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 8px;
}

.chart-subtitle {
  font-size: 14px;
  color: #4b5563;
  margin-bottom: 18px;
  font-style: italic;
}

.legend {
  display: flex;
  gap: 20px;
  margin-top: 12px;
  font-size: 14px;
}

.legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.legend i {
  width: 14px;
  height: 3px;
  display: inline-block;
}

.legend .dt10 i { background: #2563eb; }
.legend .dt15 i { background: #f97316; }
.legend .dt20 i { background: #16a34a; }

svg {
  width: 100%;
  height: auto;
}
</style>

<div class="chart-container">

<div class="chart-title">
Zależność mocy grzewczej od rozstawu rur (zakres projektowy)
</div>

<div class="chart-subtitle">
Zakres od 10 cm wzwyż – obszar, w którym wzrost rozstawu powoduje spadek mocy.
Dane orientacyjne dla rury 16×2 mm.
</div>

<svg viewBox="0 0 800 420" role="img" aria-label="Wykres mocy grzewczej ogrzewania podłogowego">
  
  <!-- osie -->
  <line x1="80" y1="40" x2="80" y2="350" stroke="#333"/>
  <line x1="80" y1="350" x2="760" y2="350" stroke="#333"/>

  <!-- opisy osi -->
  <text x="400" y="400" text-anchor="middle" font-size="14">Rozstaw rur [cm]</text>
  <text x="20" y="200" text-anchor="middle" font-size="14" transform="rotate(-90 20 200)">
    Moc grzewcza [W/m²]
  </text>

  <!-- skala Y -->
  <g font-size="12" fill="#444">
    <text x="55" y="355">40</text>
    <text x="55" y="305">60</text>
    <text x="55" y="255">80</text>
    <text x="50" y="205">100</text>
    <text x="50" y="155">110</text>
  </g>

  <!-- skala X -->
  <g font-size="12" fill="#444">
    <text x="220" y="370">10</text>
    <text x="420" y="370">15</text>
    <text x="620" y="370">20</text>
  </g>

  <!-- ΔT = 10 K -->
  <polyline fill="none" stroke="#2563eb" stroke-width="3"
    points="220,290 420,300 620,330"/>
  <circle cx="220" cy="290" r="5" fill="#2563eb"/>
  <circle cx="420" cy="300" r="5" fill="#2563eb"/>
  <circle cx="620" cy="330" r="5" fill="#2563eb"/>

  <!-- ΔT = 15 K -->
  <polyline fill="none" stroke="#f97316" stroke-width="3"
    points="220,240 420,260 620,300"/>
  <circle cx="220" cy="240" r="5" fill="#f97316"/>
  <circle cx="420" cy="260" r="5" fill="#f97316"/>
  <circle cx="620" cy="300" r="5" fill="#f97316"/>

  <!-- ΔT = 20 K -->
  <polyline fill="none" stroke="#16a34a" stroke-width="3"
    points="220,180 420,210 620,260"/>
  <circle cx="220" cy="180" r="5" fill="#16a34a"/>
  <circle cx="420" cy="210" r="5" fill="#16a34a"/>
  <circle cx="620" cy="260" r="5" fill="#16a34a"/>

</svg>

<div class="legend">
  <span class="dt10"><i></i> ΔT = 10 K</span>
  <span class="dt15"><i></i> ΔT = 15 K</span>
  <span class="dt20"><i></i> ΔT = 20 K</span>
</div>

</div>



<p class="wp-block-paragraph">Na osi poziomej (X) znajduje się <strong>rozstaw rur ogrzewania podłogowego [cm]</strong>, natomiast na osi pionowej (Y) <strong>uzyskiwana moc grzewcza [W/m²]</strong>. Każda z krzywych reprezentuje inną różnicę temperatur ΔT pomiędzy średnią temperaturą wody w pętli a temperaturą powietrza w pomieszczeniu.</p>



<p class="wp-block-paragraph"><strong>Od rozstawu 10 cm wzwyż wszystkie krzywe mają charakter malejący.</strong><br>Oznacza to, że <strong>zwiększanie rozstawu rur powyżej 10 cm prowadzi do systematycznego spadku możliwej do uzyskania mocy grzewczej</strong>, niezależnie od temperatury czynnika.</p>



<p class="wp-block-paragraph">Jednocześnie wyraźnie widać drugi mechanizm sterujący: <strong>krzywe dla wyższej temperatury wody przebiegają znacznie wyżej</strong>. Podniesienie ΔT (czyli temperatury zasilania) pozwala zwiększyć moc przy tym samym rozstawie rur, jednak odbywa się to kosztem sprawności źródła ciepła i większych obciążeń termicznych posadzki.</p>



<p class="wp-block-paragraph">W praktyce projektowej istnieją więc dwie drogi zwiększania mocy ogrzewania podłogowego:</p>



<ul class="wp-block-list">
<li><strong>zagęszczenie rozstawu rur (≤ 10 cm)</strong>,</li>



<li><strong>podniesienie temperatury zasilania</strong>.</li>
</ul>



<p class="wp-block-paragraph">Z punktu widzenia trwałości instalacji, komfortu cieplnego i efektywności energetycznej — szczególnie w systemach z pompą ciepła — <strong>pierwsza strategia jest rozwiązaniem zdecydowanie lepszym i długoterminowo bezpieczniejszym</strong>. Gęstszy rozstaw pozwala osiągnąć wymaganą moc przy niskich temperaturach zasilania, poprawia równomierność temperatury podłogi i ogranicza naprężenia termiczne w warstwach posadzki.</p>



<p class="wp-block-paragraph"><strong>Dlatego poprawnie zaprojektowane ogrzewanie podłogowe zaczyna się od geometrii pętli, a nie od „podkręcania” temperatury na źródle ciepła.</strong></p>



<h3 class="wp-block-heading">Układanie rur: od projektu do realizacji.</h3>



<p class="wp-block-paragraph">Sam proces montażu, przy <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">prawidłowo przygotowanym projekcie</a>, staje się niemal rzemieślniczą realizacją założeń.&nbsp;<strong>Odległość między rurami</strong>&nbsp;jest precyzyjnie wymierzana i utrzymywana dzięki szynom montażowym lub specjalnym matom z wypustkami. Szczególną uwagę zwraca się na:</p>



<ul class="wp-block-list">
<li><strong>Prowadzenie rur w zakrętach:</strong>&nbsp;Promień gięcia nie może być zbyt mały (zazwyczaj min. 5x średnica zewnętrzna rury).</li>



<li><strong>Zagęszczenie w strefach brzegowych:</strong>&nbsp;Pomiary muszą być tu szczególnie dokładne.</li>



<li><strong>Długość pętli:</strong>&nbsp;Każda pętla przed zatłoczeniem betonem powinna być zmierzona i porównana z projektem.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy długości pętli:</strong>&nbsp;Dla pomieszczenia 5m x 4m (20 m²) przy&nbsp;<strong>rozstawie rur 15 cm</strong>&nbsp;(0.15 m) i obwodzie pomieszczenia 18 m, przybliżoną długość rury w pętli można oszacować ze wzoru:&nbsp;<code>L = (A / s) * 2 + (2 * O)</code>, gdzie A to powierzchnia, s to rozstaw, O to obwód.&nbsp;<code>L = (20 / 0.15) * 2 + (2*18) ≈ 267 + 36 = 303 m</code>. Jest to wartość zbyt wysoka dla jednej pętli! To pokazuje, że dla takiego rozstawu i powierzchni konieczny jest podział na dwie, a nawet trzy niezależne pętle o długości ok. 100 m każda. Praktycznie stosuje się dokładniejsze metody, ale przykład unaocznia potrzebę precyzyjnego projektowania.</p>



<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-1769329073507"><strong class="schema-faq-question"><strong>Jaki rozstaw rur w ogrzewaniu podłogowym jest najlepszy?</strong></strong> <p class="schema-faq-answer">Nie ma jednej uniwersalnej wartości. Optymalny rozstaw zależy od strat ciepła pomieszczenia, rodzaju posadzki oraz temperatury zasilania. Najczęściej stosuje się zakres od 10 do 20 cm.</p> </div> <div class="schema-faq-section" id="faq-question-1769329085064"><strong class="schema-faq-question"><strong>Czy mniejszy rozstaw rur zawsze oznacza lepsze ogrzewanie?</strong></strong> <p class="schema-faq-answer">Mniejszy rozstaw zwiększa moc i równomierność grzania, ale powoduje też większe opory hydrauliczne i dłuższe pętle. Dlatego gęsty rozstaw wymaga dokładnego projektu.</p> </div> <div class="schema-faq-section" id="faq-question-1769329094344"><strong class="schema-faq-question"><strong>Dlaczego rozstaw 10 cm jest często punktem granicznym?</strong></strong> <p class="schema-faq-answer">Od rozstawu 10 cm wzwyż wzrost odległości między rurami powoduje wyraźny spadek mocy grzewczej. Poniżej tej wartości system wchodzi w zakres instalacji wysokoparametrowych.</p> </div> <div class="schema-faq-section" id="faq-question-1769329119610"><strong class="schema-faq-question"><strong>Jak posadzka wpływa na dobór rozstawu rur?</strong></strong> <p class="schema-faq-answer">Im większy opór cieplny posadzki (np. panele, drewno), tym gęstszy rozstaw rur jest wymagany, aby uzyskać tę samą moc przy bezpiecznej temperaturze podłogi.</p> </div> <div class="schema-faq-section" id="faq-question-1769329126408"><strong class="schema-faq-question"><strong>Czy można samodzielnie dobrać rozstaw rur bez projektu?</strong></strong> <p class="schema-faq-answer">Teoretycznie tak, ale w praktyce prowadzi to często do błędów: nierównego grzania, zbyt długich pętli lub wysokich kosztów eksploatacji. Profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">projekt</a> jest kluczowy.</p> </div> </div>



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



<p class="wp-block-paragraph">Dobranie właściwego&nbsp;<strong>rozstawu rur w wodnym ogrzewaniu podłogowym</strong>&nbsp;nie jest celem samym w sobie, ale jednym z najważniejszych etapów procesu projektowania sprawnego i komfortowego systemu. Jak pokazano, zależy on od&nbsp;<strong>bilansu cieplnego budynku</strong>,&nbsp;<strong>właściwości posadzki</strong>&nbsp;oraz&nbsp;<strong>konfiguracji przestrzeni</strong>.&nbsp;<strong>Zagęszczenie pętli grzewczych</strong>&nbsp;jest najskuteczniejszym narzędziem do zwiększenia mocy układu bez niebezpiecznego podnoszenia temperatury powierzchni podłogi.</p>



<p class="wp-block-paragraph">Pamiętajmy, że nawet najlepiej dobrany&nbsp;<strong>odstęp między przewodami</strong>&nbsp;nie zdziała cudów w źle zaizolowanym domu. Dopiero połączenie dobrej izolacji budynku, profesjonalnego projektu uwzględniającego&nbsp;<strong>optymalny rozstaw rur</strong>, starannego wykonawstwa i odpowiedniego źródła ciepła (jak pompa ciepła, która uwielbia niskie temperatury zasilania) daje gwarancję sukcesu – czyli ciepłego, zdrowego i taniego w eksploatacji domu. Nie warto zatem oszczędzać na wiedzy i profesjonalizmie na etapie planowania, gdyż decyzje podjęte na początku inwestycji będą nam towarzyszyć przez długie dekady użytkowania.</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="InOHZNCO2a"><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=B0gffQFdTM#?secret=InOHZNCO2a" data-secret="InOHZNCO2a" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">Rozstaw rur w wodnym ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 10:01:13 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[moc grzewcza]]></category>
		<category><![CDATA[normy budowlane]]></category>
		<category><![CDATA[ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3288</guid>

					<description><![CDATA[<p>Wodne ogrzewanie podłogowe to dziś standard komfortu, ale jego skuteczność nie bierze się z przypadku. Kluczową rolę odgrywa norma PN-EN 1264, która precyzyjnie określa zasady projektowania, obliczania mocy oraz wykonania instalacji powierzchniowych. W artykule wyjaśniamy, czym dokładnie jest PN-EN 1264, jak wpływa na dobór rozstawu rur, temperatury zasilania i pokrycia podłogi oraz dlaczego jej znajomość jest niezbędna zarówno dla projektantów, jak i świadomych inwestorów. To praktyczny przewodnik po normie, który pokazuje teorię w realnych przykładach.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #2563eb;
    --rk-hero-blue-bg: #eff6ff;
    --rk-hero-emerald: #059669;
    --rk-hero-emerald-bg: #ecfdf5;
    --rk-hero-amber: #d97706;
    --rk-hero-amber-bg: #fffbeb;
    --rk-hero-bg: #ffffff;
    --rk-hero-gray: #f8fafc;
    --rk-hero-border: #e2e8f0;
    --rk-hero-text: #334155;
}

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

/* Sekcja Główna - Split Layout */
.rk-hero-split {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--rk-hero-dark);
}

.rk-hero-left {
    padding: 50px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-hero-badge {
    align-self: flex-start;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-hero-left h2 {
    font-size: 34px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -1px;
}

.rk-hero-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #94a3b8;
    margin: 0;
    font-weight: 500;
}

.rk-hero-hook strong {
    color: var(--rk-hero-amber);
    font-weight: 800;
}

.rk-hero-right {
    padding: 50px 40px;
    background: #1e293b;
    display: flex;
    align-items: center;
}

/* Karta Szybkiej Odpowiedzi (SGE / AI) */
.rk-hero-qa-card {
    background: var(--rk-hero-emerald-bg);
    border-left: 5px solid var(--rk-hero-emerald);
    padding: 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.3);
}

.rk-hero-qa-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-hero-emerald);
    font-weight: 900;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.rk-hero-qa-text {
    font-size: 16px;
    line-height: 1.7;
    color: #064e3b;
    margin: 0;
    font-weight: 600;
}

.rk-hero-qa-text strong {
    color: #022c22;
    background: rgba(16, 185, 129, 0.2);
    padding: 2px 4px;
    border-radius: 4px;
}

/* Blok Tekstu Bazowego */
.rk-hero-content {
    padding: 40px 50px;
    background: var(--rk-hero-bg);
}

.rk-hero-content p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-hero-text);
    margin: 0 0 20px 0;
}

.rk-hero-content p:last-child {
    margin: 0;
}

.rk-hero-content a {
    color: var(--rk-hero-blue);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid var(--rk-hero-blue-bg);
}

.rk-hero-content a:hover {
    border-bottom-color: var(--rk-hero-blue);
}

/* Interaktywny Wybór Profilu */
.rk-hero-interactive {
    padding: 0 50px 40px;
    background: var(--rk-hero-bg);
}

.rk-hero-int-header {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hero-dark);
    margin: 0 0 20px 0;
    text-align: center;
}

.rk-hero-roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-hero-role-btn {
    background: var(--rk-hero-gray);
    border: 2px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

/* Stany aktywne (Brak animacji, natychmiastowa zmiana) */
.rk-hero-role-btn:hover {
    border-color: #94a3b8;
}

.rk-hero-role-btn.active {
    background: var(--rk-hero-blue-bg);
    border-color: var(--rk-hero-blue);
}

.rk-hero-role-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-hero-border);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hero-slate);
}

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

.rk-hero-role-text h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-hero-dark);
}

.rk-hero-role-text p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-hero-role-btn.active .rk-hero-role-text h4 {
    color: var(--rk-hero-blue);
}

/* Widoki treści */
.rk-hero-view {
    display: none;
    background: var(--rk-hero-gray);
    border: 1px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-hero-view.active {
    display: block;
}

.rk-hero-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-hero-list li {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-hero-text);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid var(--rk-hero-border);
}

.rk-hero-list-icon {
    color: var(--rk-hero-blue);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Alert z narzędziami */
.rk-hero-tools {
    background: var(--rk-hero-dark);
    padding: 25px 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-hero-tools-badge {
    background: var(--rk-hero-accent);
    color: var(--rk-hero-dark);
    font-size: 11px;
    font-weight: 900;
    padding: 4px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-hero-tools-text {
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-hero-split { grid-template-columns: 1fr; }
    .rk-hero-left, .rk-hero-right { padding: 35px 25px; }
    .rk-hero-qa-card { border-radius: 12px; border-left: none; border-top: 5px solid var(--rk-hero-emerald); }
    .rk-hero-content { padding: 30px 25px; }
    .rk-hero-interactive { padding: 0 25px 30px; }
    .rk-hero-roles { grid-template-columns: 1fr; gap: 15px; }
    .rk-hero-view { padding: 20px; }
    .rk-hero-list { grid-template-columns: 1fr; }
    .rk-hero-tools { padding: 25px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe",
    "description": "Zalewasz rury betonem bez projektu? Poznaj wymogi normy PN-EN 1264 i oblicz parametry instalacji z naszymi interaktywnymi kalkulatorami 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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-fundamenty",
    "name": "Kluczowe Parametry Metodologiczne PN-EN 1264",
    "description": "Zbiór podstawowych definicji i wymogów technologicznych definiujących prawidłowe projektowanie i wykonywanie wbudowanych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pn-en 1264 norma ogrzewanie podłogowe",
      "wodne ogrzewanie podłogowe",
      "niskotemperaturowy system płaszczyznowy",
      "limity temperatur posadzki",
      "procedury odbiorcze podłogówki"
    ],
    "measurementTechnique": "Określenie twardych danych i procedur inżynieryjnych na podstawie normy europejskiej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System: Niskotemperaturowy płaszczyznowy",
        "Główne wytyczne: Procedury obliczeniowe i rygorystyczne limity temperatur",
        "Skutki braku zgodności: Wady hydrauliczne, niedogrzanie, zniszczenie wylewki",
        "Dla kogo: Inżynierowie, instalatorzy i świadomi inwestorzy"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-nawigator",
    "name": "Nawigator Tematyczny dla Inwestora i Instalatora",
    "description": "Interaktywny moduł przełączający pozwalający użytkownikowi spersonalizować ścieżkę nauki normy PN-EN 1264 w zależności od jego roli na budowie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container" id="rk-wstep-widget">
    
    <div class="rk-hero-split">
        <div class="rk-hero-left">
            <div class="rk-hero-badge">Kompendium Inżynieryjne</div>
            <h2>PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe</h2>
            <p class="rk-hero-hook">
                Zalewasz rury betonem i modlisz się, żeby zimą było ciepło? Wykonywanie instalacji <strong>na &#8222;oko&#8221; to najdroższa loteria</strong> na budowie. Dowiedz się, dlaczego fizyki nie da się oszukać.
            </p>
        </div>
        <div class="rk-hero-right">
            <div class="rk-hero-qa-card">
                <div class="rk-hero-qa-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Szybka odpowiedź eksperta
                </div>
                <p class="rk-hero-qa-text">
                    Norma PN-EN 1264 to europejski kodeks techniczny określający zasady projektowania i montażu wodnych instalacji płaszczyznowych. Jej <strong>głównym celem jest zapewnienie komfortu cieplnego</strong> poprzez matematyczne wyznaczenie oporów rur, rozstawu pętli oraz rygorystycznych limitów temperatur posadzki (np. max 29°C w salonie).
                </p>
            </div>
        </div>
    </div>

    <div class="rk-hero-content">
        <p>
            Wodne ogrzewanie podłogowe to <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">niskotemperaturowy system płaszczyznowy</a>, którego parametry pracy, wydajność cieplną oraz kryteria montażowe ściśle definiuje europejska norma <strong>PN-EN 1264</strong>. Dokument ten stanowi jedyny oficjalny fundament metodologiczny dla inżynierów i instalatorów w Polsce, określając precyzyjne procedury obliczeniowe oraz rygorystyczne limity temperatur powierzchni posadzki.
        </p>
        <p>
            Brak znajomości tej normy podczas realizacji inwestycji prowadzi bezpośrednio do wad hydraulicznych, niedogrzania budynku lub zniszczenia warstw wykończeniowych podłogi. Jako projektant z wieloletnim doświadczeniem, w tym artykule rozłożę normę PN-EN 1264 na czynniki pierwsze, pokazując twarde dane, wzory, <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">procedury przygotowania wylewki</a> i zasady odbiorcze.
        </p>
    </div>

    <div class="rk-hero-interactive">
        <h3 class="rk-hero-int-header">Przewodnik po artykule. Wybierz swój profil:</h3>
        
        <div class="rk-hero-roles" id="rkHeroRoles">
            <button class="rk-hero-role-btn active" data-target="inwestor">
                <div class="rk-hero-role-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Inwestora</h4>
                    <p>Ochrona budżetu i zdrowia</p>
                </div>
            </button>
            <button class="rk-hero-role-btn" data-target="instalator">
                <div class="rk-hero-role-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Instalatora</h4>
                    <p>Twarde dane i wzory</p>
                </div>
            </button>
        </div>

        <div class="rk-hero-view active" id="view-inwestor">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Dlaczego układanie rur &#8222;z głowy&#8221; rujnuje budżet po zalaniu betonu.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Maksymalne dopuszczalne temperatury posadzki ze względów medycznych.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Kto na placu budowy ponosi odpowiedzialność prawną za błędy.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Skutki braku profesjonalnej, ciśnieniowej próby szczelności.
                </li>
            </ul>
        </div>

        <div class="rk-hero-view" id="view-instalator">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Fizyczny wzór matematyczny określający jednostkową moc cieplną.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Wytyczne dla szczelin dylatacyjnych (limity m2) w oparciu o EN 1264-4.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Graniczne opory hydrauliczne obiegu a praca pompy ciepła.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Zestawienie oporów (R) dla różnych materiałów wykończeniowych.
                </li>
            </ul>
        </div>
    </div>

    <div class="rk-hero-tools">
        <div class="rk-hero-tools-badge">Odkryj</div>
        <p class="rk-hero-tools-text">
            W dalszej części artykułu znajdziesz interaktywne kalkulatory ułatwiające obliczenia!
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('#rkHeroRoles .rk-hero-role-btn');
    
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Usunięcie klas aktywnych - bez animacji, twarda zmiana
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrywanie widoków (bez użycia &&)
            var viewInwestor = document.getElementById('view-inwestor');
            var viewInstalator = document.getElementById('view-instalator');
            
            if (viewInwestor !== null) { viewInwestor.classList.remove('active'); }
            if (viewInstalator !== null) { viewInstalator.classList.remove('active'); }
            
            // Aktywacja wybranej ścieżki
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-def-dark: #0f172a;
    --rk-def-blue: #3b82f6;
    --rk-def-blue-light: #eff6ff;
    --rk-def-green: #10b981;
    --rk-def-red: #ef4444;
    --rk-def-gray: #f8fafc;
    --rk-def-border: #e2e8f0;
    --rk-def-text: #334155;
}

.rk-def-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(59, 130, 246, 0.15);
    border: 1px solid var(--rk-def-blue);
    overflow: hidden;
}

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

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

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

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

.rk-def-intro a {
    color: #60a5fa;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł Interaktywny - Status Systemu */
.rk-def-interactive {
    padding: 40px 50px;
    background: var(--rk-def-gray);
}

.rk-def-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
}

.rk-def-btn {
    flex: 1;
    padding: 18px 20px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-def-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-def-btn.active[data-mode="norma"] {
    background: #ecfdf5;
    border-color: var(--rk-def-green);
    color: #065f46;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

.rk-def-btn.active[data-mode="blad"] {
    background: #fef2f2;
    border-color: var(--rk-def-red);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

/* Tablica rozdzielcza (Dashboard) */
.rk-def-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-def-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.4s;
}

.rk-def-status-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 20px;
    margin-bottom: 25px;
    border-bottom: 1px solid var(--rk-def-border);
}

.rk-def-status-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    transition: background 0.4s;
}

.rk-def-status-text h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-def-dark);
}

.rk-def-status-text p {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

/* Kafelki z parametrami */
.rk-def-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-def-metric-card {
    background: var(--rk-def-gray);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.4s;
}

.rk-def-metric-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--rk-def-border);
    transition: background 0.4s;
}

.rk-def-metric-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 10px;
}

.rk-def-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-def-dark);
    font-family: monospace;
    transition: color 0.4s;
}

.rk-def-metric-desc {
    font-size: 13px;
    color: #475569;
    margin-top: 10px;
    font-weight: 600;
    min-height: 40px;
}

/* Wnioski końcowe pod widgetem */
.rk-def-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-def-border);
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-def-conc-icon {
    width: 32px;
    height: 32px;
    color: var(--rk-def-blue);
    flex-shrink: 0;
    margin-top: 5px;
}

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

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

@media (max-width: 768px) {
    .rk-def-header { padding: 35px 25px; }
    .rk-def-header h2 { font-size: 24px; }
    .rk-def-interactive { padding: 30px 20px; }
    .rk-def-controls { flex-direction: column; gap: 10px; }
    .rk-def-metrics { grid-template-columns: 1fr; gap: 15px; }
    .rk-def-metric-desc { min-height: auto; }
    .rk-def-conclusion { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?",
    "description": "Zharmonizowany standard europejski chroniący przed błędami instalacyjnymi. Dowiedz się, dlaczego projektowanie bez normy niszczy współczynnik COP i posadzkę.",
    "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-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-definicja",
    "name": "Kluczowe Parametry i Limity Normy PN-EN 1264",
    "description": "Podstawowe dane inżynieryjne określające standardy bezpieczeństwa fizjologicznego i technicznego dla wodnych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn-en 1264",
      "maksymalna temperatura podłogi 29°C",
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "wodne systemy ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wartości graniczne określone w 5-częściowym dokumencie zharmonizowanym ustalającym zasady fizyki budowli dla strefy klimatycznej (np. -20°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura powierzchni w strefie przebywania: 29°C",
        "Graniczna optymalna temperatura zasilania PC: 35°C",
        "Skutek przekroczenia temp. zasilania >45°C: Drastyczny spadek COP",
        "Ilość części strukturalnych normy: 5"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-definicja",
    "name": "Symulator Skutków Braków Obliczeniowych",
    "description": "Interaktywne zestawienie pokazujące skutki porzucenia normy PN-EN 1264 dla efektywności COP i bezpieczeństwa posadzki (zjawisko niedogrzania).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-def-container" id="rk-norm-definition-widget">
    <div class="rk-def-header">
        <div class="rk-def-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Fundament Inżynierii
        </div>
        <h2>Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?</h2>
        <p class="rk-def-intro">
            Norma <strong>PN-EN 1264</strong> to zharmonizowany standard europejski o nazwie <em>„Wbudowane wodne systemy ogrzewania i chłodzenia płaszczyznowego”</em>. Składa się z 5 odrębnych części, które krok po kroku określają twarde zasady projektowania, obliczeń oraz montażu instalacji. To techniczny filtr bezpieczeństwa, bez którego budowa staje się grą w ruletkę.
        </p>
    </div>

    <div class="rk-def-interactive">
        <div class="rk-def-controls" id="rkDefControls">
            <button class="rk-def-btn active" data-mode="norma">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Instalacja wg PN-EN 1264
            </button>
            <button class="rk-def-btn" data-mode="blad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Instalacja &#8222;na oko&#8221; (Brak obliczeń)
            </button>
        </div>

        <div class="rk-def-dashboard" id="rkDefDashboard" style="border-color: var(--rk-def-green);">
            <div class="rk-def-status-bar">
                <div class="rk-def-status-icon" id="rkDefIcon" style="background: var(--rk-def-green);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-def-status-text">
                    <h3 id="rkDefTitle">Pełne Bezpieczeństwo i Gwarancja</h3>
                    <p id="rkDefSubtitle">System zaprojektowany inżynieryjnie pod parametry budynku.</p>
                </div>
            </div>

            <div class="rk-def-metrics">
                <div class="rk-def-metric-card" id="card-1">
                    <div class="rk-def-metric-title">Temperatura Podłogi</div>
                    <div class="rk-def-metric-val" id="val-1">Max 29°C</div>
                    <div class="rk-def-metric-desc" id="desc-1"><a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.</div>
                </div>
                
                <div class="rk-def-metric-card" id="card-2">
                    <div class="rk-def-metric-title">Zasilanie Pompy (Zima -20°C)</div>
                    <div class="rk-def-metric-val" id="val-2">~ 35°C</div>
                    <div class="rk-def-metric-desc" id="desc-2">Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.</div>
                </div>

                <div class="rk-def-metric-card" id="card-3">
                    <div class="rk-def-metric-title">Status Posadzki</div>
                    <div class="rk-def-metric-val" id="val-3">Trwała</div>
                    <div class="rk-def-metric-desc" id="desc-3">Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-def-conclusion">
        <svg class="rk-def-conc-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        <p>
            Konsekwencją porzucenia obliczeń normatywnych jest zjawisko niedogrzania pomieszczeń przy temperaturach projektowych (np. -20°C dla III strefy klimatycznej) lub konieczność drastycznego podnoszenia temperatury zasilania. Zignorowanie wytycznych to <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędy, których naprawa po zalaniu wylewki jest technicznie niemożliwa</a>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var dataModes = {
        'norma': {
            mainColor: '#10b981', // green
            icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>',
            title: 'Pełne Bezpieczeństwo i Gwarancja',
            subtitle: 'System zaprojektowany inżynieryjnie pod parametry budynku.',
            val1: 'Max 29°C',
            desc1: '<a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.',
            val2: '~ 35°C',
            desc2: 'Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.',
            val3: 'Trwała',
            desc3: 'Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.'
        },
        'blad': {
            mainColor: '#ef4444', // red
            icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            title: 'Katastrofa Budowlana',
            subtitle: 'Ogrzewanie działające losowo, niszczące źródło ciepła.',
            val1: '> 33°C',
            desc1: 'Przegrzana posadzka powoduje pęcznienie żył (syndrom ciężkich nóg) i wysusza drogi oddechowe.',
            val2: '> 45°C',
            desc2: 'Drastyczne obniżenie sprawności pompy ciepła, generujące <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" style="color:inherit; text-decoration:underline;">potężne rachunki za prąd</a>.',
            val3: 'Ryzyko',
            desc3: 'Pękająca wylewka, odklejające się płytki i natychmiastowa utrata gwarancji od producentów.'
        }
    };

    var btns = document.querySelectorAll('#rkDefControls .rk-def-btn');
    var elDash = document.getElementById('rkDefDashboard');
    var elIcon = document.getElementById('rkDefIcon');
    var elTitle = document.getElementById('rkDefTitle');
    var elSubtitle = document.getElementById('rkDefSubtitle');
    
    var elVal1 = document.getElementById('val-1');
    var elDesc1 = document.getElementById('desc-1');
    var elVal2 = document.getElementById('val-2');
    var elDesc2 = document.getElementById('desc-2');
    var elVal3 = document.getElementById('val-3');
    var elDesc3 = document.getElementById('desc-3');

    // Pseudo-element styles cannot be targeted directly via inline CSS easily without specific classes,
    // we will apply CSS custom properties locally for the cards
    var cards = document.querySelectorAll('.rk-def-metric-card');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var mode = this.getAttribute('data-mode');
            var data = dataModes[mode];

            // Toggle active state
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            if (data !== undefined) {
                // Update Dashboard Colors
                if (elDash !== null) { elDash.style.borderColor = data.mainColor; }
                if (elIcon !== null) { 
                    elIcon.style.backgroundColor = data.mainColor; 
                    elIcon.innerHTML = data.icon;
                }
                
                // Update Text
                if (elTitle !== null) { elTitle.textContent = data.title; }
                if (elSubtitle !== null) { elSubtitle.textContent = data.subtitle; }
                
                if (elVal1 !== null) { elVal1.textContent = data.val1; elVal1.style.color = data.mainColor; }
                if (elDesc1 !== null) { elDesc1.innerHTML = data.desc1; }
                
                if (elVal2 !== null) { elVal2.textContent = data.val2; elVal2.style.color = data.mainColor; }
                if (elDesc2 !== null) { elDesc2.innerHTML = data.desc2; }
                
                if (elVal3 !== null) { elVal3.textContent = data.val3; elVal3.style.color = data.mainColor; }
                if (elDesc3 !== null) { elDesc3.innerHTML = data.desc3; }

                // Update Cards Border Top Color dynamically by applying inline style variable 
                // that we can pick up in CSS, or simply setting border-top.
                cards.forEach(function(card) {
                    // Quick fix for top border line color change
                    card.style.boxShadow = "inset 0 4px 0 0 " + data.mainColor;
                });
            }
        });
    });
    
    // Trigger initial style for cards
    cards.forEach(function(card) {
        card.style.boxShadow = "inset 0 4px 0 0 #10b981"; // Initial green
        card.style.transition = "box-shadow 0.4s";
    });
});
</script>



<style>
:root {
    --rk-parts-dark: #0f172a;
    --rk-parts-blue-dark: #1e3a8a;
    --rk-parts-blue: #2563eb;
    --rk-parts-blue-light: #eff6ff;
    --rk-parts-cyan: #06b6d4;
    --rk-parts-text: #334155;
    --rk-parts-bg: #ffffff;
    --rk-parts-border: #e2e8f0;
}

.rk-parts-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-parts-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(37, 99, 235, 0.15);
    border: 1px solid var(--rk-parts-blue);
    overflow: hidden;
}

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

.rk-parts-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    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(34, 211, 238, 0.3);
}

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

.rk-parts-header p {
    font-size: 16px;
    color: #93c5fd;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Interaktywny Eksplorator - Nawigacja (Desktop Poziomo, Mobile Pionowo) */
.rk-parts-explorer {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-parts-nav {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 35px;
    position: relative;
}

/* Linia łącząca kroki (tylko desktop) */
.rk-parts-nav::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 20px;
    right: 20px;
    height: 3px;
    background: var(--rk-parts-border);
    z-index: 1;
}

.rk-parts-btn {
    flex: 1;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-parts-btn:hover {
    transform: translateY(-5px);
}

.rk-parts-step {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-parts-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-parts-text);
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-parts-btn.active .rk-parts-step {
    border-color: var(--rk-parts-cyan);
    background: var(--rk-parts-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-parts-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-parts-text);
    text-transform: uppercase;
    transition: color 0.3s;
}

.rk-parts-btn.active .rk-parts-label {
    color: var(--rk-parts-blue);
}

/* Zawartość Eksploratora */
.rk-parts-content-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-parts-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.02);
    min-height: 280px;
}

.rk-parts-panel {
    display: none;
    animation: fadeInPart 0.5s ease forwards;
}

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

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

.rk-parts-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-parts-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-parts-border);
}

.rk-parts-panel h3 svg {
    color: var(--rk-parts-blue);
}

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

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

.rk-parts-panel a:hover {
    color: var(--rk-parts-cyan);
}

.rk-parts-highlight {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-parts-blue-light);
    color: var(--rk-parts-blue-dark);
    padding: 12px 18px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-parts-blue);
    font-weight: 600;
    font-size: 15px;
    margin-top: 10px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-parts-header { padding: 35px 25px; }
    .rk-parts-header h2 { font-size: 24px; }
    .rk-parts-explorer { padding: 30px 20px; }
    
    /* Zmiana na układ pionowy dla mobile */
    .rk-parts-nav { flex-direction: column; gap: 15px; }
    .rk-parts-nav::before { display: none; }
    .rk-parts-btn { flex-direction: row; text-align: left; background: #ffffff; padding: 15px; border: 1px solid var(--rk-parts-border); border-radius: 12px; }
    .rk-parts-btn:hover { transform: translateX(5px); }
    .rk-parts-step { width: 40px; height: 40px; font-size: 16px; border-width: 2px; }
    
    .rk-parts-content-wrapper { padding: 25px; min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-czesci-normy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?",
    "description": "Poznaj 5 kluczowych części normy PN-EN 1264. Od definicji, przez obliczenia mocy, aż po montaż i próby ciśnieniowe wodnego ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-struktura",
    "name": "Struktura normatywna PN-EN 1264 dla ogrzewania płaszczyznowego",
    "description": "Klasyfikacja i podział wytycznych inżynieryjnych wg normy europejskiej na 5 integralnych modułów (definicje, moc, projektowanie, montaż, sufity/ściany).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "części normy pn-en 1264",
      "pn-en 1264-2 obliczenia",
      "pn-en 1264-4 montaż",
      "projektowanie instalacji podłogowych",
      "system mokry i suchy podłogówki"
    ],
    "measurementTechnique": "Podział strukturalny dokumentacji na etapy cyklu życia instalacji: od koncepcji, przez obliczenia fizykalne, po odbiory budowlane.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PN-EN 1264-1: Definicje i symbole (Typ A, B, C)",
        "PN-EN 1264-2: Metody obliczeniowe (moc q)",
        "PN-EN 1264-3: Projektowanie (rozstaw rur, PN-EN 12831)",
        "PN-EN 1264-4: Montaż (próba ciśnieniowa, dylatacje)",
        "PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-eksplorator-normy",
    "name": "Eksplorator Struktury Normy PN-EN 1264",
    "description": "Interaktywne narzędzie pozwalające inżynierom i inwestorom na przeglądanie wymagań poszczególnych sekcji normy w ujęciu wizualnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-parts-container" id="rk-norm-parts-widget">
    <div class="rk-parts-header">
        <div class="rk-parts-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
            Struktura Dokumentu
        </div>
        <h2>Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?</h2>
        <p>Struktura normy dzieli się na pięć kluczowych sekcji. Każda z nich odpowiada za inny etap cyklu życia instalacji: od definicji technicznych, aż po finalny odbiór na budowie.</p>
    </div>

    <div class="rk-parts-explorer">
        <div class="rk-parts-nav" id="rkPartsNav">
            <button class="rk-parts-btn active" data-part="1">
                <div class="rk-parts-step">1</div>
                <div class="rk-parts-label">Definicje</div>
            </button>
            <button class="rk-parts-btn" data-part="2">
                <div class="rk-parts-step">2</div>
                <div class="rk-parts-label">Moc Cieplna</div>
            </button>
            <button class="rk-parts-btn" data-part="3">
                <div class="rk-parts-step">3</div>
                <div class="rk-parts-label">Projektowanie</div>
            </button>
            <button class="rk-parts-btn" data-part="4">
                <div class="rk-parts-step">4</div>
                <div class="rk-parts-label">Montaż</div>
            </button>
            <button class="rk-parts-btn" data-part="5">
                <div class="rk-parts-step">5</div>
                <div class="rk-parts-label">Ściany / Sufity</div>
            </button>
        </div>

        <div class="rk-parts-content-wrapper">
            <div class="rk-parts-panel active" id="part-1">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    PN-EN 1264-1: Definicje i symbole
                </h3>
                <p>Wprowadza jednolitą nomenklaturę technologiczną i klasyfikuje systemy podłogowe.</p>
                <p>Wskazuje m.in. na systemy Typu A (rury w jastrychu, mocowane na izolacji z wypustami lub klipsami – klasyczny <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a>) oraz Typu C (rury w warstwie wyrównawczej, nad którymi znajduje się podwójna warstwa jastrychu), a także <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche (Typ B)</a>.</p>
            </div>

            <div class="rk-parts-panel" id="part-2">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                    PN-EN 1264-2: Metody obliczeniowe
                </h3>
                <p>To najważniejszy matematyczny rdzeń <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy obliczeń ogrzewania podłogowego</a>. Określa algorytmy dla mocy cieplnej.</p>
                <p>Wyznacza jednostkową gęstość strumienia cieplnego (q) i opiera się na badaniach laboratoryjnych i nomogramach, które wiążą rozstaw rur, grubość wylewki i opór cieplny okładziny z realną wydajnością systemu.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" 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>
                    Podstawa do doboru temperatury zasilania.
                </div>
            </div>

            <div class="rk-parts-panel" id="part-3">
                <h3>
                    <svg width="28" height="28" 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>
                    PN-EN 1264-3: Projektowanie i wymiarowanie
                </h3>
                <p>Ta część instruuje projektanta, jak dopasować instalację do <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">strat ciepła budynku (OZC)</a> obliczonych ściśle według normy PN-EN 12831.</p>
                <p>Narzuca rygorystyczne limity temperatur powierzchni (np. 29°C) i metodologię doboru rozstawu pętli na podstawie krytycznych parametrów hydraulicznych obiegu.</p>
            </div>

            <div class="rk-parts-panel" id="part-4">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                    PN-EN 1264-4: Montaż instalacji
                </h3>
                <p>Kluczowy dokument na placu budowy. Określa minimalny opór cieplny izolacji stropu (np. <strong>R = 1,25 m²K/W</strong> nad pomieszczeniem ogrzewanym).</p>
                <p>Definiuje zasady wykonywania dylatacji, precyzyjne parametry <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">ciśnieniowej próby szczelności</a> oraz procedurę wygrzewania <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu</a>.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zignorowanie tej części powoduje utratę gwarancji!
                </div>
            </div>

            <div class="rk-parts-panel" id="part-5">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 3h18v18H3z"></path><path d="M21 9H3"></path><path d="M21 15H3"></path></svg>
                    PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne
                </h3>
                <p>Rozszerza dotychczasową metodykę obliczeń na alternatywne płaszczyzny (ściany i sufity).</p>
                <p>Definiuje odmienne limity temperatur dla tych rozwiązań (np. maksymalnie 40°C dla ogrzewania ściennego) oraz zwraca szczególną uwagę na zjawisko <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy przy chłodzeniu</a>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkPartsNav .rk-parts-btn');
    var panels = document.querySelectorAll('.rk-parts-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetPart = this.getAttribute('data-part');

            // Reset wszystkich przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            
            // Aktywacja odpowiedniego panelu (bezpieczny kod)
            var activePanel = document.getElementById('part-' + targetPart);
            if (activePanel !== null) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #1e293b;
    --rk-temp-slate: #334155;
    --rk-temp-red: #ef4444;
    --rk-temp-red-light: #fef2f2;
    --rk-temp-orange: #f97316;
    --rk-temp-orange-light: #fff7ed;
    --rk-temp-green: #10b981;
    --rk-temp-green-light: #ecfdf5;
    --rk-temp-bg: #ffffff;
    --rk-temp-gray: #f8fafc;
    --rk-temp-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-temp-header {
    padding: 40px 50px 30px;
    background: var(--rk-temp-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

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

/* Sekcja Interaktywna - Wybór Strefy */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
}

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

.rk-temp-selectors {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-temp-btn {
    background: #ffffff;
    border: 2px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 16px 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-temp-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-temp-border);
    transition: background 0.3s;
}

.rk-temp-btn:hover {
    transform: translateX(4px);
    background: var(--rk-temp-gray);
}

.rk-temp-btn.active {
    border-color: var(--rk-temp-slate);
    background: #f1f5f9;
    box-shadow: 0 10px 15px -5px rgba(0,0,0,0.05);
}

.rk-temp-btn.active[data-zone="salon"] { border-color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="salon"]::before { background: var(--rk-temp-green); }

.rk-temp-btn.active[data-zone="lazienka"] { border-color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="lazienka"]::before { background: var(--rk-temp-orange); }

.rk-temp-btn.active[data-zone="brzeg"] { border-color: var(--rk-temp-red); }
.rk-temp-btn.active[data-zone="brzeg"]::before { background: var(--rk-temp-red); }

.rk-temp-btn-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--rk-temp-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-temp-slate);
    transition: all 0.3s;
}

.rk-temp-btn.active[data-zone="salon"] .rk-temp-btn-icon { background: var(--rk-temp-green-light); color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="lazienka"] .rk-temp-btn-icon { background: var(--rk-temp-orange-light); color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="brzeg"] .rk-temp-btn-icon { background: var(--rk-temp-red-light); color: var(--rk-temp-red); }

.rk-temp-btn-content h4 {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-temp-btn-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

/* Wizualizator Temperatury */
.rk-temp-visualizer {
    background: var(--rk-temp-gray);
    border: 1px solid var(--rk-temp-border);
    border-radius: 20px;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    transition: background 0.4s;
}

.rk-temp-thermometer {
    position: relative;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    margin-bottom: 25px;
}

.rk-temp-ring {
    position: absolute;
    top: 5px; left: 5px; right: 5px; bottom: 5px;
    border-radius: 50%;
    border: 8px solid transparent;
    transition: border-color 0.4s ease;
}

.rk-temp-value {
    font-size: 36px;
    font-weight: 900;
    font-family: monospace;
    color: var(--rk-temp-dark);
    z-index: 2;
    transition: color 0.4s;
}

.rk-temp-desc-box h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-temp-desc-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-temp-slate);
}

/* Sekcja Ostrzegawcza */
.rk-temp-warning {
    padding: 30px 50px;
    background: #fef2f2;
    border-top: 1px solid #fecaca;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-temp-warning-icon {
    width: 48px;
    height: 48px;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-temp-warning-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #991b1b;
}

.rk-temp-warning-content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #7f1d1d;
}

.rk-temp-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-temp-header { padding: 35px 25px; }
    .rk-temp-header h2 { font-size: 24px; }
    .rk-temp-interactive { padding: 30px 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-temp-visualizer { padding: 30px 20px; }
    .rk-temp-warning { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia i komfortu?",
    "description": "Zrozum wpływ ogrzewania na fizjologię człowieka. Zobacz limity (29°C w salonie, 35°C pod oknem) zapobiegające syndromowi ciężkich nóg i pękaniu paneli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity-temperatur",
    "name": "Limity Fizjologiczne Temperatur Powierzchni Podłogi (PN-EN 1264)",
    "description": "Medyczne i techniczne wartości graniczne dla powierzchni posadzki wymuszające prawidłowe zaprojektowanie rozstawu rur i krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura ogrzewania podłogowego",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "czy ogrzewanie podłogowe wysusza powietrze",
      "wady wodnego ogrzewania podłogowego",
      "zdrowotne skutki ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określenie limitów fizjologicznych na podstawie badań komfortu cieplnego zawartych w normie PN-EN 1264-3 (paragraf 4.1.2).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon i sypialnia (strefa przebywania): Maksymalnie 29°C",
        "Łazienka (strefa sanitarna, bosa stopa): Maksymalnie 33°C",
        "Strefa brzeżna (pas okienny do 1 m): Maksymalnie 35°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-stref",
    "name": "Analizator Stref Fizjologicznych PN-EN 1264",
    "description": "Interaktywny panel ilustrujący różnice między parametrami cieplnymi dla stref: przebywania, sanitarnej oraz brzegowej wraz z opisem zjawisk negatywnych.",
    "applicationCategory": "HealthApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-health-temp-widget">
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizjologia i Komfort
        </div>
        <h2>Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia?</h2>
        <p>Wodne ogrzewanie podłogowe to nie tylko rury. To ogromny grzejnik, z którym stykasz się bezpośrednio. Norma (paragraf 4.1.2) rygorystycznie różnicuje dopuszczalne temperatury w zależności od specyfiki pomieszczenia.</p>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-selectors" id="rkTempBtns">
                <button class="rk-temp-btn active" data-zone="salon">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Strefa Stałego Przebywania</h4>
                        <p>Salon, sypialnia, pokój dziecięcy</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="lazienka">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h20"></path><path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"></path><path d="M10 8l2-2 2 2"></path><path d="M14 4h-4"></path></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Pomieszczenia Sanitarne</h4>
                        <p>Łazienki, pokoje kąpielowe</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="brzeg">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Strefa Brzeżna</h4>
                        <p>Pas okienny do 1 metra szerokości</p>
                    </div>
                </button>
            </div>

            <div class="rk-temp-visualizer" id="rkTempVisual">
                <div class="rk-temp-thermometer">
                    <div class="rk-temp-ring" id="rkTempRing" style="border-color: var(--rk-temp-green);"></div>
                    <div class="rk-temp-value" id="rkTempVal" style="color: var(--rk-temp-green);">29°C</div>
                </div>
                <div class="rk-temp-desc-box">
                    <h3 id="rkTempTitle">Bezpieczne 29°C</h3>
                    <p id="rkTempDesc">
                        Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć po wyłączeniu cyklu.
                    </p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-temp-warning">
        <div class="rk-temp-warning-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        </div>
        <div class="rk-temp-warning-content">
            <h4>Błędy projektowe a syndrom ciężkich nóg</h4>
            <p>
                Częstą <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" class="rk-temp-link">wadą instalacji wykonywanych bez projektu</a> jest brak weryfikacji temperatur powierzchni. Przegrzanie posadzki (np. do 32°C w salonie) wywołuje u ludzi medyczny syndrom ciężkich nóg, drastycznie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" class="rk-temp-link">wysusza powietrze</a>, nasila konwekcję kurzu i ostatecznie doprowadza do rozklejenia się paneli podłogowych.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var zoneData = {
        'salon': {
            temp: '29°C',
            color: '#10b981', // Zielony
            bg: '#ecfdf5',
            title: 'Bezpieczne 29°C',
            desc: 'Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link" style="color:inherit;">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć.'
        },
        'lazienka': {
            temp: '33°C',
            color: '#f97316', // Pomarańczowy
            bg: '#fff7ed',
            title: 'Komfort bosej stopy',
            desc: 'W łazience wymagamy temperatury powietrza rzędu 24°C. Dlatego norma zezwala na wyższą temperaturę posadzki (33°C), aby zrekompensować straty ciepła i nagrzać chłodne płytki.'
        },
        'brzeg': {
            temp: '35°C',
            color: '#ef4444', // Czerwony
            bg: '#fef2f2',
            title: 'Bufor termiczny przy oknach',
            desc: 'Aby zablokować opadanie zimnego powietrza z ogromnych okien tarasowych, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-temp-link" style="color:inherit;">w strefie brzegowej</a> zagęszcza się rury, a norma podnosi limit aż do 35°C na odcinku max. 1 metra szerokości.'
        }
    };

    var btns = document.querySelectorAll('#rkTempBtns .rk-temp-btn');
    
    var elVisual = document.getElementById('rkTempVisual');
    var elRing = document.getElementById('rkTempRing');
    var elVal = document.getElementById('rkTempVal');
    var elTitle = document.getElementById('rkTempTitle');
    var elDesc = document.getElementById('rkTempDesc');

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

            var zoneKey = this.getAttribute('data-zone');
            var data = zoneData[zoneKey];

            // Aktualizacja bez warunków logicznych AND
            if (data !== undefined) {
                if (elVisual !== null) { elVisual.style.backgroundColor = data.bg; }
                if (elRing !== null) { elRing.style.borderColor = data.color; }
                if (elVal !== null) { 
                    elVal.style.color = data.color; 
                    elVal.innerHTML = data.temp; 
                }
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elDesc !== null) { elDesc.innerHTML = data.desc; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pow-dark: #1e1b4b; /* Głęboki indygo */
    --rk-pow-primary: #6366f1; /* Fiolet / Indygo */
    --rk-pow-primary-hover: #4f46e5;
    --rk-pow-accent: #06b6d4; /* Cyjan */
    --rk-pow-bg: #ffffff;
    --rk-pow-gray: #f8fafc;
    --rk-pow-border: #e2e8f0;
    --rk-pow-text: #334155;
    --rk-pow-text-muted: #64748b;
}

.rk-pow-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pow-bg);
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(99, 102, 241, 0.15);
    border: 1px solid var(--rk-pow-primary);
    overflow: hidden;
}

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

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

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

/* Moduł Teoretyczny - Wzór na Moc */
.rk-pow-theory {
    padding: 40px 50px;
    background: var(--rk-pow-bg);
}

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

.rk-pow-formula-box {
    background: #0f172a;
    border-radius: 16px;
    padding: 25px;
    margin: 25px 0;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.2);
    border-left: 5px solid var(--rk-pow-accent);
}

.rk-pow-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: 700;
    color: #38bdf8;
    text-align: center;
    margin-bottom: 15px;
    letter-spacing: 1px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rk-pow-formula span { color: #f8fafc; }

.rk-pow-legend {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-pow-legend-item {
    font-size: 14px;
    color: #cbd5e1;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.rk-pow-legend-symbol {
    font-weight: 900;
    color: var(--rk-pow-accent);
    background: rgba(6, 182, 212, 0.15);
    padding: 2px 8px;
    border-radius: 6px;
    min-width: 45px;
    text-align: center;
}

/* Moduł Interaktywny - Scenariusze */
.rk-pow-scenarios {
    padding: 40px 50px;
    background: var(--rk-pow-gray);
    border-top: 1px solid var(--rk-pow-border);
}

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

.rk-pow-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-pow-tab {
    background: #ffffff;
    border: 2px solid var(--rk-pow-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-pow-tab:hover {
    border-color: var(--rk-pow-primary);
    transform: translateY(-3px);
}

.rk-pow-tab.active {
    background: var(--rk-pow-primary);
    border-color: var(--rk-pow-primary);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(99, 102, 241, 0.4);
    transform: translateY(-3px);
}

.rk-pow-tab-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-pow-gray);
    color: var(--rk-pow-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-pow-tab.active .rk-pow-tab-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-pow-tab-title {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.rk-pow-tab:not(.active) .rk-pow-tab-title { color: var(--rk-pow-text); }

/* Tablica Wyników (Dashboard) */
.rk-pow-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-pow-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pow-dash-header {
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-pow-border);
}

.rk-pow-dash-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-pow-dark);
    margin: 0;
}

/* Parametry Wejściowe */
.rk-pow-params {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-pow-param-box {
    background: var(--rk-pow-gray);
    padding: 12px;
    border-radius: 12px;
    border: 1px solid var(--rk-pow-border);
    text-align: center;
}

.rk-pow-param-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-pow-text-muted);
    margin-bottom: 5px;
}

.rk-pow-param-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-pow-primary);
}

/* Sekcja Wyniku */
.rk-pow-result-area {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

.rk-pow-main-result {
    flex: 1;
    background: var(--rk-pow-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-pow-main-result::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(6,182,212,0.1) 0%, transparent 70%);
}

.rk-pow-res-label {
    font-size: 14px;
    color: #cbd5e1;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 5px;
    position: relative;
}

.rk-pow-res-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    font-family: monospace;
    position: relative;
}

.rk-pow-conclusion {
    flex: 2;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-pow-conclusion.warning {
    background: #fffbeb;
    border-color: #fef08a;
}

.rk-pow-conclusion.danger {
    background: #fef2f2;
    border-color: #fecaca;
}

.rk-pow-conc-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-pow-conclusion p {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.rk-pow-link-inline {
    color: inherit;
    text-decoration: underline;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-pow-header { padding: 35px 25px; }
    .rk-pow-theory { padding: 30px 20px; }
    .rk-pow-scenarios { padding: 30px 20px; }
    
    .rk-pow-formula { font-size: 16px; flex-direction: column; }
    .rk-pow-legend { grid-template-columns: 1fr; }
    
    /* Na mobile akordeon/przyciski pionowe */
    .rk-pow-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-pow-tab { flex-direction: row; padding: 15px; text-align: left; }
    .rk-pow-tab-icon { margin-right: 10px; }
    
    .rk-pow-dashboard { padding: 20px; }
    .rk-pow-params { grid-template-columns: repeat(2, 1fr); }
    .rk-pow-result-area { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wzor-moc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?",
    "description": "Inżynierskie przykłady obliczeniowe mocy podłogówki (W/m2). Interaktywny symulator wpływu rozstawu rur i grubości dywanu na zasilanie pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-moc",
    "name": "Współczynniki korygujące i wydajność cieplna wg PN-EN 1264-2",
    "description": "Zestawienie twardych danych i zmiennych z nomogramów normy wykorzystywanych do precyzyjnego wyznaczania jednostkowego strumienia ciepła (q).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć moc ogrzewania podłogowego",
      "wzór na moc podłogówki",
      "rozstaw rur a moc grzewcza",
      "temperatura zasilania podłogówki",
      "wpływ dywanu na ogrzewanie"
    ],
    "measurementTechnique": "Zależności potęgowe z nomogramów normy (wykładnik n=1.1 dla systemów mokrych), oparte na średniej logarytmicznej różnicy temperatur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wykładnik potęgowy n (systemy mokre) ≈ 1,1",
        "Moc optymalna (płytki, rozstaw 100mm, zasilanie 35C) ≈ 85 W/m²",
        "Moc zaniżona (rozstaw 200mm, zasilanie 35C) ≈ 60 W/m²",
        "Moc krytyczna (dywan R=0.15, rozstaw 100mm) ≈ 45 W/m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-mocy",
    "name": "Symulator Wpływu Rozstawu Rur i Okładziny na Moc",
    "description": "Moduł dydaktyczny pozwalający inwestorowi na przełączanie między 3 scenariuszami obliczeniowymi, aby na żywo zaobserwować zjawisko spadku wydajności podłogówki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pow-container" id="rk-power-widget">
    <div class="rk-pow-header">
        <div class="rk-pow-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizyka Budowli
        </div>
        <h2>Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?</h2>
    </div>

    <div class="rk-pow-theory">
        <p>Jednostkową moc cieplną podłogi <strong>q [W/m²]</strong> oblicza się na podstawie matematycznej formy fizykalnego prawa oddawania ciepła, rygorystycznie zdefiniowanego w normie PN-EN 1264-2.</p>
        
        <div class="rk-pow-formula-box">
            <div class="rk-pow-formula">
                q = B × ∏ a<sub>i</sub> × (Δϑ<sub>H</sub>)<sup>n</sup>
            </div>
            <div class="rk-pow-formula" style="color: #94a3b8; font-size: 16px; margin-top: 15px; margin-bottom: 5px;">
                <span>gdzie średnia różnica temperatur:</span>
            </div>
            <div class="rk-pow-formula" style="color: #10b981;">
                Δϑ<sub>H</sub> = [ (ϑ<sub>V</sub> + ϑ<sub>R</sub>) / 2 ] &#8211; ϑ<sub>i</sub>
            </div>

            <div class="rk-pow-legend">
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">B</span> 
                    Bazowy współczynnik systemowy rury.
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">∏ a<sub>i</sub></span> 
                    Iloczyn korygujący (rozstaw, grubość, opór).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">n</span> 
                    Wykładnik potęgowy (ok. 1.1 dla wylewek).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">ϑ<sub>V</sub>/ϑ<sub>R</sub></span> 
                    <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color: inherit; text-decoration: underline;">Temperatura zasilania</a> i powrotu.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pow-scenarios">
        <h3 class="rk-pow-scenarios-title">Symulator: 3 Inżynierskie Przykłady Obliczeniowe</h3>
        
        <div class="rk-pow-tabs" id="powTabs">
            <button class="rk-pow-tab active" data-scenario="optymalny">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <span class="rk-pow-tab-title">Układ Optymalny<br>(Płytki + 10cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="rzadki">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <span class="rk-pow-tab-title">Zbyt rzadki rozstaw<br>(Rozstaw 20cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="izolator">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <span class="rk-pow-tab-title">Krytyczny Dywan<br>(Izolacja R=0.15)</span>
            </button>
        </div>

        <div class="rk-pow-dashboard">
            <h4 class="rk-pow-dash-title" id="pow-dash-title">Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)</h4>
            <hr style="border: 0; border-top: 1px solid var(--rk-pow-border); margin: 15px 0 25px;">
            
            <div class="rk-pow-params">
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">T. Zasil/Pow</div>
                    <div class="rk-pow-param-val" id="pow-param-temp">35/30 °C</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Δϑ<sub>H</sub> (Różnica)</div>
                    <div class="rk-pow-param-val" id="pow-param-delta">12.5 K</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label"><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:inherit; text-decoration:none;">Rozstaw Rur</a></div>
                    <div class="rk-pow-param-val" id="pow-param-rozstaw">100 mm</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Opór (R)</div>
                    <div class="rk-pow-param-val" id="pow-param-opor">0.01</div>
                </div>
            </div>

            <div class="rk-pow-result-area">
                <div class="rk-pow-main-result">
                    <div class="rk-pow-res-label">Moc Jednostkowa (q)</div>
                    <div class="rk-pow-res-value" id="pow-res-q">85 W/m²</div>
                </div>
                
                <div class="rk-pow-conclusion" id="pow-conc-box">
                    <div class="rk-pow-conc-title" id="pow-conc-title" style="color: #166534;">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        Stan Idealny
                    </div>
                    <p id="pow-conc-text" style="color: #15803d;">Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. System w pełni pokrywa standardowe <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-pow-link-inline">zapotrzebowanie na ciepło</a>.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var scenariosData = {
        'optymalny': {
            title: 'Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.01',
            q: '85 W/m²',
            concClass: '', // Domyślna zielona
            concTitleColor: '#166534',
            concTextColor: '#15803d',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>',
            concTitle: 'Wydajność optymalna',
            concText: 'Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. Układ idealny do współpracy z pompą ciepła w salonie.'
        },
        'rzadki': {
            title: 'Układ ze zwiększonym rozstawem rur (Salon, pompa ciepła)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '200 mm',
            opor: '0.01',
            q: '60 W/m²',
            concClass: 'warning',
            concTitleColor: '#854d0e',
            concTextColor: '#a16207',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            concTitle: 'Ryzyko niedogrzania',
            concText: 'Zwiększenie rozstawu obniża współczynnik korygujący. Jeśli zapotrzebowanie pokoju wynosi 75 W/m², to przy 60 W/m² <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-pow-link-inline">pompa ciepła nie ogrzeje domu</a>.'
        },
        'izolator': {
            title: 'Krytyczny wpływ grubego dywanu (Sypialnia)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.15',
            q: '45 W/m²',
            concClass: 'danger',
            concTitleColor: '#991b1b',
            concTextColor: '#b91c1c',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',
            concTitle: 'Katastrofalny spadek mocy',
            concText: 'Wysoki opór cieplny działa jak izolator. Następuje spadek wydajności o 47%. Aby pokryć straty, instalator musiałby podbić zasilanie do 43°C, niszcząc sprawność (COP) układu.'
        }
    };

    var tabs = document.querySelectorAll('#powTabs .rk-pow-tab');
    
    // Elementy DOM (używamy bezpiecznego przypisania)
    var elTitle = document.getElementById('pow-dash-title');
    var elTemp = document.getElementById('pow-param-temp');
    var elDelta = document.getElementById('pow-param-delta');
    var elRozstaw = document.getElementById('pow-param-rozstaw');
    var elOpor = document.getElementById('pow-param-opor');
    var elQ = document.getElementById('pow-res-q');
    var elConcBox = document.getElementById('pow-conc-box');
    var elConcTitle = document.getElementById('pow-conc-title');
    var elConcText = document.getElementById('pow-conc-text');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var scenario = this.getAttribute('data-scenario');
            var data = scenariosData[scenario];

            if (data !== undefined) {
                // Zmiana aktywnych zakładek
                tabs.forEach(function(t) { t.classList.remove('active'); });
                this.classList.add('active');

                // Aktualizacja UI (bez &&)
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elTemp !== null) { elTemp.innerHTML = data.temp; }
                if (elDelta !== null) { elDelta.innerHTML = data.delta; }
                if (elRozstaw !== null) { elRozstaw.innerHTML = data.rozstaw; }
                if (elOpor !== null) { elOpor.innerHTML = data.opor; }
                if (elQ !== null) { elQ.innerHTML = data.q; }
                
                if (elConcBox !== null) {
                    elConcBox.className = 'rk-pow-conclusion ' + data.concClass;
                }
                
                if (elConcTitle !== null) {
                    elConcTitle.style.color = data.concTitleColor;
                    elConcTitle.innerHTML = data.icon + ' ' + data.concTitle;
                }
                
                if (elConcText !== null) {
                    elConcText.style.color = data.concTextColor;
                    elConcText.innerHTML = data.concText;
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #1e293b;
    --rk-mat-primary: #ea580c; /* Ciepły pomarańczowy */
    --rk-mat-primary-light: #ffedd5;
    --rk-mat-success: #16a34a;
    --rk-mat-warning: #ca8a04;
    --rk-mat-danger: #dc2626;
    --rk-mat-bg: #ffffff;
    --rk-mat-gray: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
}

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

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

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

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

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

/* Zawartość - Układ Jednokolumnowy (Kafelki na górze, wynik pod spodem) */
.rk-mat-content {
    padding: 40px 50px;
    background: var(--rk-mat-gray);
}

/* Siatka Kafelków (Materiałów) */
.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

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

.rk-mat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: transparent;
    transition: background 0.3s;
}

.rk-mat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #fed7aa;
}

.rk-mat-card.active {
    border-color: var(--rk-mat-primary);
    background: var(--rk-mat-primary-light);
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.2);
    transform: translateY(-4px);
}

.rk-mat-card.active::before {
    background: var(--rk-mat-primary);
}

.rk-mat-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px auto;
    color: #94a3b8;
    transition: color 0.3s;
}

.rk-mat-card.active .rk-mat-icon {
    color: var(--rk-mat-primary);
}

.rk-mat-card h3 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin: 0;
    line-height: 1.3;
}

/* Panel Dynamicznych Wyników */
.rk-mat-result-panel {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mat-res-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-res-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 5px 0;
}

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

.rk-mat-res-badge {
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Detale Techniczne */
.rk-mat-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-mat-stat {
    background: var(--rk-mat-gray);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mat-border);
}

.rk-mat-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
}

.rk-mat-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    font-family: monospace;
}

/* Suwak Termiczny (Wizualizacja) */
.rk-mat-gauge-container {
    margin-top: 20px;
}

.rk-mat-gauge-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 10px;
    color: var(--rk-mat-text);
}

.rk-mat-gauge-track {
    width: 100%;
    height: 16px;
    background: linear-gradient(to right, #22c55e 10%, #eab308 40%, #ea580c 70%, #dc2626 90%);
    border-radius: 999px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-mat-gauge-limit {
    position: absolute;
    top: -5px;
    bottom: -5px;
    left: 75%; /* Odpowiada wartości 0.15 w naszej skali 0-0.20 */
    width: 3px;
    background: #0f172a;
    z-index: 2;
}

.rk-mat-gauge-limit::after {
    content: 'Limit 0,15';
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #0f172a;
    white-space: nowrap;
}

.rk-mat-gauge-marker {
    position: absolute;
    top: 50%;
    left: 4%; /* Start position */
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 4px solid var(--rk-mat-dark);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 3;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

/* Ostrzeżenie */
.rk-mat-alert-box {
    margin-top: 30px;
    padding: 20px;
    background: #fef2f2;
    border-left: 5px solid var(--rk-mat-danger);
    border-radius: 0 12px 12px 0;
}

.rk-mat-alert-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #991b1b;
    font-weight: 600;
}

.rk-mat-alert-box strong {
    color: #7f1d1d;
    font-weight: 900;
}

/* Tagi Długi Ogon */
.rk-mat-tags-wrapper {
    padding: 25px 50px 40px;
    background: var(--rk-mat-bg);
    border-top: 1px solid var(--rk-mat-border);
}

.rk-mat-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-mat-gray);
    color: var(--rk-mat-text);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-mat-border);
    transition: all 0.2s;
    text-decoration: none;
}

.rk-mat-tag:hover {
    background: var(--rk-mat-primary);
    color: #ffffff;
    border-color: var(--rk-mat-primary);
}

@media (max-width: 768px) {
    .rk-mat-header { padding: 35px 25px; }
    .rk-mat-header h2 { font-size: 24px; }
    .rk-mat-content { padding: 25px; }
    
    /* Mobilnie kafelki jeden pod drugim (wymóg z promptu) */
    .rk-mat-grid { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-card { padding: 15px; display: flex; align-items: center; gap: 15px; text-align: left; }
    .rk-mat-icon { margin: 0; width: 36px; height: 36px; }
    
    .rk-mat-result-panel { padding: 20px; }
    .rk-mat-res-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-mat-details { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-tags-wrapper { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-opor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?",
    "description": "Zgodnie z normą PN-EN 1264-3 limit oporu to 0,15 m²K/W. Zobacz tabelę i interaktywny symulator porównujący płytki, panele i parkiet na ogrzewaniu podłogowym.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Tabela Oporu Cieplnego Okładzin Posadzkowych (PN-EN 1264)",
    "description": "Dane fizyczne materiałów wykończeniowych niezbędne do poprawnego obliczenia zładu i mocy instalacji ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny materiałów wykończeniowych",
      "panele a ogrzewanie podłogowe",
      "r lambda posadzki",
      "płytki czy panele na podłogówkę",
      "parkiet a podłogówka"
    ],
    "measurementTechnique": "Wartości przewodności cieplnej (lambda) oraz oporu (R) określone na podstawie grubości materiału wg wytycznych normatywnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki gresowe: Grubość 10mm, Lambda 1.30, Opór 0.008 m²K/W",
        "Panele laminowane: Grubość 8mm, Lambda 0.14, Opór 0.057 m²K/W",
        "Parkiet dębowy: Grubość 15mm, Lambda 0.18, Opór 0.083 m²K/W",
        "Wykładzina gruba: Grubość 12mm, Lambda 0.06, Opór 0.200 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-okladzin",
    "name": "Symulator Przepustowości Cieplnej Posadzki",
    "description": "Aplikacja wizualizująca wpływ wybranego materiału posadzkowego na tłumienie strumienia cieplnego w odniesieniu do granicy normatywnej 0,15 m²K/W.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-materialy-widget">
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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 Posadzki
        </div>
        <h2>Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?</h2>
        <p>Wartość oporu cieplnego (R<sub>λ,B</sub>) to fizyczna bariera dla strumienia ciepła. Zgodnie z normą <strong>PN-EN 1264-3</strong>, maksymalny opór warstwy użytkowej podłogi nie może przekraczać <strong>0,15 m²K/W</strong>. Wybierz materiał i zobacz, jak blokuje on ciepło z rur.</p>
    </div>

    <div class="rk-mat-content">
        <div class="rk-mat-grid">
            <div class="rk-mat-card active" data-mat="plytki">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
                <h3>Płytki / Gres</h3>
            </div>
            <div class="rk-mat-card" data-mat="panele">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="6" width="20" height="4" rx="1"></rect><rect x="2" y="14" width="20" height="4" rx="1"></rect></svg>
                <h3>Panele dedykowane</h3>
            </div>
            <div class="rk-mat-card" data-mat="parkiet">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h16v16H4z"></path><path d="M4 12h16"></path><path d="M12 4v16"></path><path d="M8 4v8"></path><path d="M16 12v8"></path></svg>
                <h3>Parkiet dębowy</h3>
            </div>
            <div class="rk-mat-card" data-mat="dywan">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M6 8h12"></path><path d="M6 12h12"></path><path d="M6 16h12"></path></svg>
                <h3>Gruby dywan</h3>
            </div>
        </div>

        <div class="rk-mat-result-panel">
            <div class="rk-mat-res-header">
                <div>
                    <h3 class="rk-mat-res-title" id="mat-title">Płytki gresowe / marmur</h3>
                    <div class="rk-mat-res-subtitle" id="mat-desc">Optymalny (brak tłumienia strumienia)</div>
                </div>
                <div class="rk-mat-res-badge" id="mat-badge" style="background: #dcfce7; color: #166534; border: 1px solid #22c55e;">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Idealne dla pompy ciepła
                </div>
            </div>

            <div class="rk-mat-details">
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Grubość</div>
                    <div class="rk-mat-stat-val" id="mat-thick">10 mm</div>
                </div>
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Przewodność (λ)</div>
                    <div class="rk-mat-stat-val" id="mat-lambda">1.30</div>
                </div>
                <div class="rk-mat-stat" style="background: #f1f5f9; border-color: #cbd5e1;">
                    <div class="rk-mat-stat-label">Opór Cieplny (R)</div>
                    <div class="rk-mat-stat-val" id="mat-r" style="color: var(--rk-mat-primary);">0.008</div>
                </div>
            </div>

            <div class="rk-mat-gauge-container">
                <div class="rk-mat-gauge-label">
                    <span>Przepływ Swobodny (0.00)</span>
                    <span>Całkowita Blokada (0.20+)</span>
                </div>
                <div class="rk-mat-gauge-track">
                    <div class="rk-mat-gauge-limit"></div>
                    <div class="rk-mat-gauge-marker" id="mat-marker" style="left: 4%;"></div>
                </div>
            </div>
        </div>

        <div class="rk-mat-alert-box">
            <p><strong>Uwaga inżynierska!</strong> Ignorowanie tych wartości na etapie projektu i <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">zmiana płytek na parkiet w trakcie budowy</a> prowadzi do trwałego niedogrzania strefy mieszkalnej. Projektant musi bezwzględnie otrzymać od inwestora deklarację o planowanych materiałach przed uruchomieniem obliczeń hydraulicznych.</p>
        </div>
    </div>

    <div class="rk-mat-tags-wrapper">
        <div class="rk-mat-tags">
            <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-mat-tag"># opór cieplny materiałów wykończeniowych</a>
            <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-mat-tag"># panele a ogrzewanie podłogowe</a>
            <a href="#" class="rk-mat-tag"># r lambda posadzki</a>
            <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-mat-tag"># płytki czy panele na podłogówkę</a>
            <a href="#" class="rk-mat-tag"># grubość paneli na ogrzewanie</a>
            <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/" class="rk-mat-tag"># parkiet a podłogówka</a>
            <a href="#" class="rk-mat-tag"># dywan na ogrzewaniu podłogowym</a>
            <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-mat-tag"># straty ciepła przez podłogę</a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Dane z tabeli PN-EN 1264-3
    var matData = {
        'plytki': {
            title: 'Płytki gresowe / marmur',
            desc: 'Optymalny (brak tłumienia strumienia)',
            thick: '10 mm',
            lambda: '1.30',
            r: '0.008',
            pos: '4%', // 0.008 / 0.200 = 4%
            badgeText: 'Idealne dla pompy ciepła',
            badgeBg: '#dcfce7',
            badgeColor: '#166534',
            badgeBorder: '#22c55e',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>'
        },
        'panele': {
            title: 'Panele laminowane dedykowane',
            desc: 'Średni (wymaga korekty rozstawu rur)',
            thick: '8 mm',
            lambda: '0.14',
            r: '0.057',
            pos: '28.5%', // 0.057 / 0.200
            badgeText: 'Wymaga gęstszego rozstawu',
            badgeBg: '#fef9c3',
            badgeColor: '#854d0e',
            badgeBorder: '#eab308',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>'
        },
        'parkiet': {
            title: 'Parkiet dębowy klejony',
            desc: 'Wysoki (wymaga wyższej temp. zasilania)',
            thick: '15 mm',
            lambda: '0.18',
            r: '0.083',
            pos: '41.5%', // 0.083 / 0.200
            badgeText: 'Spadek COP pompy ciepła',
            badgeBg: '#ffedd5',
            badgeColor: '#c2410c',
            badgeBorder: '#f97316',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>'
        },
        'dywan': {
            title: 'Wykładzina dywanowa gruba',
            desc: 'Niedopuszczalny (całkowita blokada cieplna)',
            thick: '12 mm',
            lambda: '0.06',
            r: '0.200',
            pos: '96%', // Max on gauge
            badgeText: 'Przekroczony limit normy!',
            badgeBg: '#fef2f2',
            badgeColor: '#991b1b',
            badgeBorder: '#dc2626',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>'
        }
    };

    var cards = document.querySelectorAll('.rk-mat-card');
    
    // Pola do aktualizacji
    var elTitle = document.getElementById('mat-title');
    var elDesc = document.getElementById('mat-desc');
    var elThick = document.getElementById('mat-thick');
    var elLambda = document.getElementById('mat-lambda');
    var elR = document.getElementById('mat-r');
    var elBadge = document.getElementById('mat-badge');
    var elMarker = document.getElementById('mat-marker');

    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            // Zmiana aktywnego kafelka
            cards.forEach(function(c) { c.classList.remove('active'); });
            this.classList.add('active');

            // Pobranie klucza materiału
            var matKey = this.getAttribute('data-mat');
            var d = matData[matKey];

            if (d !== undefined) {
                // Aktualizacja tekstów
                elTitle.textContent = d.title;
                elDesc.textContent = d.desc;
                elThick.textContent = d.thick;
                elLambda.textContent = d.lambda;
                elR.textContent = d.r;
                
                // Aktualizacja odznaki (badge)
                elBadge.innerHTML = d.icon + ' ' + d.badgeText;
                elBadge.style.background = d.badgeBg;
                elBadge.style.color = d.badgeColor;
                elBadge.style.borderColor = d.badgeBorder;

                // Animacja suwaka (unikamy przekroczenia 100%)
                elMarker.style.left = d.pos;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-blue: #0284c7;
    --rk-algo-blue-bg: #e0f2fe;
    --rk-algo-accent: #f97316;
    --rk-algo-accent-bg: #ffedd5;
    --rk-algo-border: #e2e8f0;
    --rk-algo-text: #334155;
    --rk-algo-bg: #ffffff;
    --rk-algo-gray: #f8fafc;
}

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

/* Sekcja Nagłówkowa */
.rk-algo-header {
    padding: 40px 50px;
    background: var(--rk-algo-dark);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-algo-accent);
}

.rk-algo-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(253, 186, 116, 0.3);
}

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

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

/* Moduł Interaktywnego Kalkulatora */
.rk-algo-calculator {
    padding: 40px 50px;
    background: var(--rk-algo-gray);
    border-bottom: 1px solid var(--rk-algo-border);
}

.rk-algo-calc-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-algo-border);
}

.rk-algo-control-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-algo-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-text);
    display: flex;
    justify-content: space-between;
}

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

.rk-algo-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-algo-border);
    outline: none;
}

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

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

/* Wyniki na żywo */
.rk-algo-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-result-card {
    background: #ffffff;
    border: 2px solid var(--rk-algo-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-algo-result-card.primary {
    border-color: var(--rk-algo-blue);
    background: var(--rk-algo-blue-bg);
}

.rk-algo-result-card.accent {
    border-color: var(--rk-algo-accent);
    background: var(--rk-algo-accent-bg);
}

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

.rk-algo-res-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    font-family: monospace;
}

.rk-algo-result-card.primary .rk-algo-res-val { color: var(--rk-algo-blue); }
.rk-algo-result-card.accent .rk-algo-res-val { color: var(--rk-algo-accent); }

/* Akordeon Teoretyczny */
.rk-algo-theory {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-algo-step {
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    margin-bottom: 15px;
    overflow: hidden;
}

.rk-algo-step-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    transition: background 0.3s;
}

.rk-algo-step-btn:hover { background: var(--rk-algo-gray); }

.rk-algo-step-num {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-algo-blue);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-algo-step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-algo-gray);
}

.rk-algo-step-inner {
    padding: 20px 25px;
    border-top: 1px solid var(--rk-algo-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-algo-text);
}

.rk-algo-formula {
    background: var(--rk-algo-dark);
    color: #f8fafc;
    padding: 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    text-align: center;
    margin: 15px 0;
    letter-spacing: 1px;
}

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

@media (max-width: 768px) {
    .rk-algo-header, .rk-algo-calculator, .rk-algo-theory { padding: 30px 20px; }
    .rk-algo-header h2 { font-size: 24px; }
    .rk-algo-controls { padding: 15px; }
    .rk-algo-result-card { flex-direction: column; align-items: flex-start; gap: 10px; padding: 15px; }
    .rk-algo-step-btn { padding: 15px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264",
    "description": "Zrozum twarde zasady fizyki stojące za podłogówką. Interaktywny symulator obliczający moc pętli, przepływ masowy i nastawy rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-algorytm",
    "name": "Zestawienie parametrów hydraulicznych PN-EN 1264",
    "description": "Zbiór danych i zmiennych wykorzystywanych do obliczania oporów, przepływu i mocy grzewczej pojedynczych pętli wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm ogrzewania podłogowego",
      "przepływ masowy podłogówka",
      "ustawienia rotametrów przepływ",
      "straty ciśnienia pompy obiegowej",
      "ciepło właściwe wody ogrzewanie"
    ],
    "measurementTechnique": "Obliczenia inżynieryjne wykorzystujące stałe fizyczne (np. ciepło właściwe wody 1,163 Wh/(kg·K)) oraz zmienne wejściowe z projektowego obciążenia cieplnego (OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik bezpieczeństwa strat w dół: 1,15",
        "Ciepło właściwe czynnika (woda): 1,163 Wh/(kg·K)",
        "Dopuszczalna prędkość przepływu: 0,2 - 0,5 m/s",
        "Limit oporów pętli rury 16mm: ~20 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-kalkulator-przeplywu",
    "name": "Kalkulator Przepływu Pętli Ogrzewania Podłogowego",
    "description": "Interaktywny widget obliczający w czasie rzeczywistym wymaganą moc pętli, przepływ w kg/h oraz nastawę rotametru w l/min na podstawie wprowadzonych strat cieplnych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container">
    <div class="rk-algo-header">
        <div class="rk-algo-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
            Inżynieria Obliczeniowa
        </div>
        <h2>Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264</h2>
        <p>Precyzyjne wyznaczenie przepływów i strat ciśnienia to fundament, na którym opiera się komfort cieplny. Zobacz, jak wyliczenia na papierze przekładają się na fizyczne działanie Twojej instalacji.</p>
    </div>

    <div class="rk-algo-calculator">
        <h3 class="rk-algo-calc-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-algo-blue)" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
            Symulator Nastaw Rotametru (Live)
        </h3>
        
        <div class="rk-algo-controls">
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Straty Ciepła Pomieszczenia (Q OZC)</span>
                    <span class="rk-algo-label-val" id="val-qozc">800 W</span>
                </div>
                <input type="range" id="slider-qozc" class="rk-algo-slider" min="200" max="2500" step="50" value="800">
            </div>
            
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Spadek temperatury wody (ΔT)</span>
                    <span class="rk-algo-label-val" id="val-dt">5 K</span>
                </div>
                <input type="range" id="slider-dt" class="rk-algo-slider" min="3" max="10" step="1" value="5">
            </div>
        </div>

        <div class="rk-algo-results">
            <div class="rk-algo-result-card">
                <span class="rk-algo-res-label">Całkowita moc pętli (Q_obl):</span>
                <span class="rk-algo-res-val" id="out-qobl">920 W</span>
            </div>
            <div class="rk-algo-result-card primary">
                <span class="rk-algo-res-label">Przepływ masowy czynnika (m):</span>
                <span class="rk-algo-res-val" id="out-m">158.21 kg/h</span>
            </div>
            <div class="rk-algo-result-card accent">
                <span class="rk-algo-res-label">Wynik do ustawienia na rotametrze (G):</span>
                <span class="rk-algo-res-val" id="out-g">2.64 l/min</span>
            </div>
        </div>
    </div>

    <div class="rk-algo-theory">
        <h3>Ścieżka matematyczna krok po kroku</h3>
        
        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">1</div>
                Wyznaczenie całkowitej mocy cieplnej pętli (Q_obl)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Obliczamy rzeczywistą moc, jaką musi dostarczyć układ, wykorzystując wyniki z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła OZC</a>. Obowiązkowo dodajemy współczynnik bezpieczeństwa (1,15), który rekompensuje straty ciepła uciekającego w dół posadzki.</p>
                    <div class="rk-algo-formula">Q_obl = Q_OZC × 1,15</div>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">2</div>
                Obliczenie wymaganego przepływu masowego (m)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Wiedząc, ile watów musimy dostarczyć, wyliczamy masę wody. Bierzemy pod uwagę ciepło właściwe wody (c_w = 1,163 Wh/(kg·K)) oraz założony projektowy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury (ΔT)</a> na pętli.</p>
                    <div class="rk-algo-formula">m = Q_obl / (c_w · ΔT)</div>
                    <p>Wartość w kg/h dzielimy przez 60, by uzyskać litry na minutę – jednostkę czytelną dla instalatora na rotametrze w rozdzielaczu.</p>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">3</div>
                Wyznaczenie liniowych strat ciśnienia pętli (Δp_l)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Straty ciśnienia determinują ostateczny dobór pompy obiegowej. Obliczamy jednostkowe opory tarcia rury (R), całkowitą <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">długość przewodu grzewczego (L)</a> i doliczamy współczynniki miejscowe (kolana, zwężki).</p>
                    <div class="rk-algo-formula">Δp_l = R · L + Σξ · (ρ · v²) / 2</div>
                    <p>Zasada twarda normy: Jeśli pętla (rura 16 mm) przekracza barierę 100 metrów, generuje opory pow. 20 kPa. W takim wypadku algorytm nakazuje podział pokoju na dwa niezależne obwody grzewcze, ratując pompę przed przeciążeniem.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Kalkulatora
    var sliderQozc = document.getElementById('slider-qozc');
    var sliderDt = document.getElementById('slider-dt');
    
    var valQozc = document.getElementById('val-qozc');
    var valDt = document.getElementById('val-dt');
    
    var outQobl = document.getElementById('out-qobl');
    var outM = document.getElementById('out-m');
    var outG = document.getElementById('out-g');

    function calculate() {
        var q_ozc = parseFloat(sliderQozc.value);
        var delta_t = parseFloat(sliderDt.value);

        // Update Labels
        valQozc.textContent = q_ozc + ' W';
        valDt.textContent = delta_t + ' K';

        // Math
        var q_obl = q_ozc * 1.15;
        var cw = 1.163;
        var m_kg = q_obl / (cw * delta_t);
        var g_lmin = m_kg / 60;

        // Output formatting
        outQobl.textContent = Math.round(q_obl) + ' W';
        outM.textContent = m_kg.toFixed(2) + ' kg/h';
        outG.textContent = g_lmin.toFixed(2) + ' l/min';
    }

    sliderQozc.addEventListener('input', calculate);
    sliderDt.addEventListener('input', calculate);
    
    // Inicjalizacja kalkulatora
    calculate();

    // Logika Akordeonu
    var steps = document.querySelectorAll('.rk-algo-step');

    steps.forEach(function(step) {
        var btn = step.querySelector('.rk-algo-step-btn');
        var content = step.querySelector('.rk-algo-step-content');

        btn.addEventListener('click', function() {
            var isOpen = content.style.maxHeight;

            // Zamykanie innych
            steps.forEach(function(s) {
                s.querySelector('.rk-algo-step-content').style.maxHeight = null;
            });

            // Otwieranie aktualnego (bezpieczny kod logiczny)
            if (!isOpen) {
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz pierwszy element po załadowaniu
    if (steps.length > 0) {
        var firstContent = steps[0].querySelector('.rk-algo-step-content');
        if (firstContent !== null) {
            firstContent.style.maxHeight = firstContent.scrollHeight + "px";
        }
    }
});
</script>



<style>
:root {
    --rk-wyl-dark: #0f172a;
    --rk-wyl-primary: #4f46e5;
    --rk-wyl-primary-light: #e0e7ff;
    --rk-wyl-success: #16a34a;
    --rk-wyl-success-bg: #dcfce7;
    --rk-wyl-danger: #dc2626;
    --rk-wyl-danger-bg: #fee2e2;
    --rk-wyl-bg: #ffffff;
    --rk-wyl-border: #e2e8f0;
    --rk-wyl-text: #334155;
    --rk-wyl-text-muted: #64748b;
}

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

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

.rk-wyl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #818cf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(129, 140, 248, 0.2);
}

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

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

/* Układ Jednokolumnowy (Zgodnie z wytycznymi) */
.rk-wyl-content {
    padding: 40px 50px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Interaktywna Karta Weryfikacyjna */
.rk-wyl-card {
    background: var(--rk-wyl-bg);
    border: 1px solid var(--rk-wyl-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.rk-wyl-card:hover {
    border-color: #c7d2fe;
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.1);
}

.rk-wyl-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-wyl-border);
}

.rk-wyl-card-header h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-wyl-dark);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-wyl-card-icon {
    width: 36px;
    height: 36px;
    background: var(--rk-wyl-primary-light);
    color: var(--rk-wyl-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Elementy Switch / Suwaka */
.rk-wyl-switch-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f1f5f9;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid var(--rk-wyl-border);
}

.rk-wyl-switch-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-wyl-text-muted);
    transition: color 0.3s;
}

.rk-wyl-switch-label.active {
    color: var(--rk-wyl-dark);
}

.rk-wyl-switch {
    position: relative;
    width: 44px;
    height: 24px;
    background: var(--rk-wyl-danger);
    border-radius: 24px;
    cursor: pointer;
    transition: background 0.3s;
}

.rk-wyl-switch.active {
    background: var(--rk-wyl-success);
}

.rk-wyl-switch-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #ffffff;
    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-wyl-switch.active .rk-wyl-switch-knob {
    transform: translateX(20px);
}

/* Zawartość Karty (Dynamiczna) */
.rk-wyl-view {
    display: none;
    animation: fadeView 0.4s ease;
}

.rk-wyl-view.active {
    display: block;
}

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

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

.rk-wyl-view a {
    color: var(--rk-wyl-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-wyl-list {
    margin: 0 0 15px 0;
    padding: 0;
    list-style: none;
}

.rk-wyl-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--rk-wyl-text);
    font-weight: 600;
}

.rk-wyl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f46e5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: cover;
}

.rk-wyl-alert {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-wyl-alert.danger {
    background: var(--rk-wyl-danger-bg);
    color: #991b1b;
    border-left: 4px solid var(--rk-wyl-danger);
}

.rk-wyl-alert.success {
    background: var(--rk-wyl-success-bg);
    color: #166534;
    border-left: 4px solid var(--rk-wyl-success);
}

@media (max-width: 768px) {
    .rk-wyl-header { padding: 35px 25px; }
    .rk-wyl-header h2 { font-size: 24px; }
    .rk-wyl-content { padding: 30px 20px; }
    .rk-wyl-card { padding: 20px; }
    .rk-wyl-card-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-wyl-switch-wrapper { align-self: flex-start; width: 100%; justify-content: space-between; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wytyczne-montazowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?",
    "description": "Zasady izolacji stropu, grubość wylewki (45 mm dla betonu) i taśmy brzegowe. Zobacz, jak norma chroni przed pękaniem posadzki z ogrzewaniem podłogowym.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wylewki",
    "name": "Zestawienie wymiarów i limitów dylatacyjnych wylewek grzewczych",
    "description": "Dokładne parametry techniczne dotyczące grubości jastrychu betonowego i anhydrytowego, ciśnień kontrolnych oraz oporów cieplnych izolacji EPS/XPS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki na ogrzewanie podłogowe",
      "dylatacje w podłogówce",
      "izolacja brzegowa ogrzewania",
      "próba szczelności podłogówki ciśnienie",
      "jastrych grzewczy norma"
    ],
    "measurementTechnique": "Wymogi minimalne oraz graniczne określone w Części 4 normy (wartości w [mm], [bar] oraz [m2K/W]).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny nad nieogrzewanym: R >= 2,25 m²K/W",
        "Minimalna grubość taśmy brzegowej: 8 mm",
        "Maksymalna powierzchnia pola dylatacyjnego: 40 m²",
        "Długość rury ochronnej (peszla) na dylatacji: 40 cm",
        "Ciśnienie podczas betonowania: min. 3 bar",
        "Wylewka cementowa nad rurą: min. 45 mm"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wylewki",
    "name": "Symulator Poprawności Wylewki i Dylatacji",
    "description": "Narzędzie interaktywne typu switch (suwak) demonstrujące różnice i zagrożenia pomiędzy amatorskim układaniem styropianu/betonu, a reżimem normy PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wyl-container" id="rk-wylewki-widget">
    <div class="rk-wyl-header">
        <div class="rk-wyl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            Ordynans Wykonawczy
        </div>
        <h2>Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?</h2>
        <p>Część czwarta normy to bezpośredni przewodnik dla instalatora. Definiuje ona surowe kryteria fizyczne, które muszą być spełnione przed, w trakcie i po zalaniu rur jastrychem grzewczym.</p>
    </div>

    <div class="rk-wyl-content">
        
        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    Wymagania dla izolacji termicznej
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="izolacja">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="izolacja-amator" class="rk-wyl-view active">
                <p>Użycie losowej warstwy styropianu bez analizy oporu cieplnego. Często prowadzi do strat energii uciekającej do gruntu zamiast do pomieszczenia.</p>
                <div class="rk-wyl-alert danger">
                    <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><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zbyt cienka izolacja = grzanie sufitu sąsiada lub ziemi pod domem.
                </div>
            </div>

            <div id="izolacja-norma" class="rk-wyl-view">
                <p>Norma bezwzględnie nakazuje stosowanie warstw izolacji o minimalnym oporze cieplnym <strong>R</strong>. Sprawdź dokładnie, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu zastosować</a>, bazując na twardych wyliczeniach:</p>
                <ul class="rk-wyl-list">
                    <li>Nad pomieszczeniem ogrzewanym: R ≥ 1,25 m²K/W</li>
                    <li>Nad pomieszczeniem nieogrzewanym lub bezpośrednio na gruncie: R ≥ 2,25 m²K/W</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Ciepło emitowane jest w 100% kierunkowo do wnętrza pomieszczenia.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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="9" y1="15" x2="15" y2="15"></line></svg>
                    </div>
                    Szczeliny dylatacyjne i brzegowe
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="dylatacje">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="dylatacje-amator" class="rk-wyl-view active">
                <p>Brak wklejania cienkiej taśmy i rozlewanie betonu w olbrzymich salonach jako jedna wielka płyta. Rury przechodzące przez progi układane są „gołe” bezpośrednio w zaprawie.</p>
                <div class="rk-wyl-alert danger">
                    <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><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Gwarantowane pęknięcia jastrychu ściętego u progu drzwi.
                </div>
            </div>

            <div id="dylatacje-norma" class="rk-wyl-view">
                <p>Jastrych rozszerza się liniowo pod wpływem temperatury. Prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja obwodowa (taśma minimum 8 mm)</a> musi oddzielać płytę od ścian. Ponadto normatywne dylatacje dzieli się, gdy:</p>
                <ul class="rk-wyl-list">
                    <li>Powierzchnia pola przekracza 40 m².</li>
                    <li>Długość boku wylewki przekracza 8 metrów.</li>
                    <li>Stosunek boków jest większy niż 2:1 (wąskie, długie korytarze).</li>
                </ul>
                <p>Przejścia rur przez szczeliny muszą być chronione peszlami (rurami ochronnymi) o długości minimum 40 cm (po 20 cm w każdym kierunku).</p>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Bezpieczna posadzka pracująca bez pękania płytek i fug.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    </div>
                    Grubość jastrychu i próba szczelności
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="cisnienie">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="cisnienie-amator" class="rk-wyl-view active">
                <p>Zalewanie układu bez wody w rurach. Operator pompy do betonu (tzw. miksokreta) stąpa po nienaprężonych, pustych przewodach. Grubość zaniżana pod wymiary starych futryn.</p>
                <div class="rk-wyl-alert danger">
                    <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><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Ryzyko zmiażdżenia rury łopatą i zalania budynku!
                </div>
            </div>

            <div id="cisnienie-norma" class="rk-wyl-view">
                <p>Zanim zalejesz beton, musisz wykonać <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">hydrauliczną próbę ciśnieniową na poziomie 6 bar</a> przez 30 minut. Norma nakazuje utrzymywanie instalacji pod napięciem (min. 3 bar) w trakcie lania betonu.</p>
                <p>Dbając o obciążenia, upewnij się o prawidłowej <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki na ogrzewanie podłogowe</a> (wartości mierzone nad wierzchem rury):</p>
                <ul class="rk-wyl-list">
                    <li>Dla betonu cementowego: minimum 45 mm</li>
                    <li>Dla wylewki anhydrytowej: minimum 35 mm (lub inna zgodna z kartą chemii)</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Naprężone rury nie ulegają zgnieceniu, a posadzka zyskuje akumulacyjność.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var switches = document.querySelectorAll('.rk-wyl-switch');

    switches.forEach(function(sw) {
        sw.addEventListener('click', function() {
            var isNorma = this.classList.contains('active');
            var targetId = this.getAttribute('data-target');
            
            var wrapper = this.closest('.rk-wyl-switch-wrapper');
            var labelAmator = wrapper.querySelector('[data-state="amator"]');
            var labelNorma = wrapper.querySelector('[data-state="norma"]');
            
            var viewAmator = document.getElementById(targetId + '-amator');
            var viewNorma = document.getElementById(targetId + '-norma');

            if (isNorma === true) {
                // Było Norma -> Zmień na Amator
                this.classList.remove('active');
                labelAmator.classList.add('active');
                labelNorma.classList.remove('active');
                
                if (viewNorma !== null) { viewNorma.classList.remove('active'); }
                if (viewAmator !== null) { viewAmator.classList.add('active'); }
            } else {
                // Było Amator -> Zmień na Norma
                this.classList.add('active');
                labelAmator.classList.remove('active');
                labelNorma.classList.add('active');
                
                if (viewAmator !== null) { viewAmator.classList.remove('active'); }
                if (viewNorma !== null) { viewNorma.classList.add('active'); }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-slate: #334155;
    --rk-proj-cyan: #0891b2;
    --rk-proj-cyan-light: #cffafe;
    --rk-proj-cyan-hover: #06b6d4;
    --rk-proj-accent: #f59e0b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-gray-bg: #f8fafc;
}

.rk-proj-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(8, 145, 178, 0.15);
    border: 1px solid var(--rk-proj-cyan);
    overflow: hidden;
}

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

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    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(34, 211, 238, 0.3);
}

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

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

/* Interaktywny Moduł Projektowy */
.rk-proj-interactive {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-proj-bg);
}

/* Nawigacja (Lewa strona na desktopie, góra/pion na mobile) */
.rk-proj-nav {
    background: var(--rk-proj-gray-bg);
    padding: 30px;
    border-right: 1px solid var(--rk-proj-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-proj-nav-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 16px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-proj-slate);
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-proj-nav-btn:hover {
    border-color: var(--rk-proj-cyan);
    transform: translateX(4px);
}

.rk-proj-nav-btn.active {
    background: var(--rk-proj-cyan);
    color: #ffffff;
    border-color: var(--rk-proj-cyan);
    box-shadow: 0 10px 15px -3px rgba(8, 145, 178, 0.3);
    transform: translateX(8px);
}

.rk-proj-nav-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--rk-proj-cyan-light);
    color: var(--rk-proj-cyan);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-proj-nav-btn.active .rk-proj-nav-icon {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Obszar Treści (Prawa strona na desktopie) */
.rk-proj-content-area {
    padding: 40px;
    position: relative;
}

.rk-proj-panel {
    display: none;
    animation: fadeInSlide 0.4s ease forwards;
}

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

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

.rk-proj-panel h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

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

.rk-proj-panel a:hover {
    color: var(--rk-proj-cyan-hover);
}

/* Wizualizacja inżynierska wewnątrz panelu */
.rk-proj-tech-box {
    background: var(--rk-proj-dark);
    border-radius: 12px;
    padding: 20px;
    margin-top: 25px;
    border-left: 4px solid var(--rk-proj-accent);
    color: #f8fafc;
}

.rk-proj-tech-box h4 {
    margin: 0 0 10px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
}

.rk-proj-tech-value {
    font-family: monospace;
    font-size: 18px;
    color: var(--rk-proj-cyan-light);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-proj-tech-value strong {
    font-size: 24px;
    color: #ffffff;
}

/* Sekcja CTA na dole */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: var(--rk-proj-gray-bg);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

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

.rk-proj-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: var(--rk-proj-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    width: 100%;
    max-width: 600px;
    margin-top: 20px;
    text-transform: uppercase;
}

.rk-proj-btn-massive:hover {
    transform: translateY(-5px);
    background: #d97706;
    color: #ffffff;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header { padding: 35px 25px; }
    .rk-proj-header h2 { font-size: 24px; }
    
    /* Zmiana na układ pionowy (akordeonowy) dla mobile */
    .rk-proj-interactive { grid-template-columns: 1fr; }
    .rk-proj-nav { padding: 25px; border-right: none; border-bottom: 1px solid var(--rk-proj-border); }
    
    .rk-proj-nav-btn:hover { transform: translateY(-2px); }
    .rk-proj-nav-btn.active { transform: translateY(-4px); }
    
    .rk-proj-content-area { padding: 30px 25px; }
    .rk-proj-cta-section { padding: 35px 25px; }
    .rk-proj-btn-massive { padding: 16px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zastosowanie normy PN-EN 1264 eliminuje błędy montażowe. Poznaj 4 filary profesjonalnego projektu: OZC, dobór pompy ciepła, zrównoważenie hydrauliczne i opory pętli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wplyw-normy",
    "name": "Kryteria inżynierskie projektu instalacji podłogowej wg PN-EN 1264",
    "description": "Baza danych parametrów uwzględnianych w profesjonalnym projekcie ogrzewania: integracja z OZC, temperatura zasilania pompy ciepła, nastawy rotametrów i wysokość podnoszenia pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "profesjonalny projekt ogrzewania podłogowego",
      "obliczenia strat ciepła OZC",
      "temperatura zasilania pompy ciepła",
      "zrównoważenie hydrauliczne rotametry",
      "dobór pompy obiegowej"
    ],
    "measurementTechnique": "Algorytmy obliczeniowe oparte na PN-EN 1264 i PN-EN 12831 wykorzystywane do optymalizacji układów z pompami ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC na gęstość rur (rozstawy 100mm vs 300mm)",
        "Optymalizacja temperatury zasilania do 35°C",
        "Wymagane zrównoważenie hydrauliczne pętli",
        "Kompensacja oporów hydraulicznych pompy (np. 25 kPa)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-projektu",
    "name": "Symulator Zgodności Projektu z PN-EN 1264",
    "description": "Interaktywny interfejs edukacyjny pozwalający inwestorowi przeanalizować cztery filary profesjonalnej inżynierii sanitarnej w zestawieniu z praktykami amatorskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-norm-impact-widget">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Inżynieria w Praktyce
        </div>
        <h2>Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Zastosowanie normy PN-EN 1264 całkowicie eliminuje rzemieślnicze schematy działania i przesuwa akcent na precyzyjne projektowanie. Wpływa ona na cztery fundamentalne obszary każdego profesjonalnego projektu instalacji.</p>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-nav">
            <button class="rk-proj-nav-btn active" data-panel="ozc">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                1. Integracja z OZC
            </button>
            <button class="rk-proj-nav-btn" data-panel="pompa">
                <div class="rk-proj-nav-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>
                2. Rozstaw rur a COP
            </button>
            <button class="rk-proj-nav-btn" data-panel="hydraulika">
                <div class="rk-proj-nav-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><path d="M12 8l4 4-4 4M8 12h8"></path></svg>
                </div>
                3. Zrównoważenie
            </button>
            <button class="rk-proj-nav-btn" data-panel="obieg">
                <div class="rk-proj-nav-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>
                4. Pompa Obiegowa
            </button>
        </div>

        <div class="rk-proj-content-area">
            
            <div class="rk-proj-panel active" id="panel-ozc">
                <h3>Integracja z normą PN-EN 12831 (OZC)</h3>
                <p>Wyznaczone <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">straty ciepła budynku</a> determinują maksymalny rozstaw rur dla każdego pomieszczenia indywidualnie.</p>
                <p>Jeśli budynek jest pasywny, matematyka pozwala na szerokie rozstawy rzędu 200–300 mm. W domach ze słabszą izolacją lub przy wielkich przeszkleniach w salonie (tzw. strefy brzegowe), norma wymusza zastosowanie gęstego rozstawu rur rzędu 100 mm.</p>
                <div class="rk-proj-tech-box">
                    <h4>Wynik Inżynieryjny:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><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></svg>
                        Uniknięcie stref niedogrzanych zimą
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-pompa">
                <h3>Dobór Rozstawu Rur pod Ograniczenia Pompy Ciepła</h3>
                <p>Każdy inżynier projektujący układ pod pompę ciepła dąży do uzyskania jak <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">najniższej temperatury zasilania</a> (optymalnie 35°C).</p>
                <p>Norma PN-EN 1264 dostarcza twardych narzędzi matematycznych do udowodnienia, że przy odpowiednio zagęszczonym rozstawie rur (np. co 10 cm), instalacja uzyska pożądaną moc grzewczą bez niszczycielskiej konieczności przegrzewania zładu wody do 45°C, co obniżyłoby COP pompy.</p>
                <div class="rk-proj-tech-box">
                    <h4>Parametr Celowy Projektu:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Zasilanie: <strong>35°C</strong>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-hydraulika">
                <h3>Zrównoważenie Hydrauliczne (Hydronic Balancing)</h3>
                <p>Ogrzewanie robione &#8222;na oko&#8221; kończy się tym, że krótkie pętle grzeją mocno, a długie pozostają zimne. Dzięki dokładnym obliczeniom strat ciśnienia dla każdej pętli z osobna, profesjonalny projekt zawiera tabelę z wytycznymi.</p>
                <p>Na jej podstawie instalator wykonuje <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">gotowe nastawy wstępne dla rotametrów</a> na rozdzielaczu, co wymusza równomierny przepływ w całym budynku.</p>
                <div class="rk-proj-tech-box">
                    <h4>Efekt Zastosowania Normy:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                        Jednorodna temperatura każdej posadzki
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-obieg">
                <h3>Wytyczne dla Doboru Pompy Obiegowej</h3>
                <p>Suma wszystkich strat tarcia i oporów miejscowych w najmniej korzystnym obiegu (czyli w pętli o największym oporze połączonej z magistralą zasilającą) definiuje wytyczne do wyboru urządzenia tłoczącego.</p>
                <p>Projekt oblicza wymaganą wysokość podnoszenia pompy obiegowej. Wiedząc, że układ stawia opór na poziomie np. 25 kPa (czyli około 2,5 metra słupa wody), <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">prawidłowy dobór pompy</a> staje się faktem matematycznym, a nie zgadywaniem.</p>
                <div class="rk-proj-tech-box">
                    <h4>Krytyczny Wynik Obliczeń:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg>
                        Wymagane podnoszenie: <strong>~25 kPa</strong>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie oszczędzaj na sercu swojego domu</h3>
        <p style="color: #475569; margin-bottom: 25px; font-size: 16px;">
            Amatorski montaż pociąga za sobą gigantyczne koszty eksploatacji i awarii. Zainwestuj w absolutną pewność inżynieryjną opartą na certyfikowanych normach.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-proj-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"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-nav-btn');
    var panels = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-panel');

            // 1. Reset przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // 2. Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            // Aktywacja docelowego panelu (bezpieczny JS, brak restrykcyjnych znaków logicznych)
            var activePanel = document.getElementById('panel-' + targetId);
            if (activePanel) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-red: #dc2626;
    --rk-case-red-light: #fef2f2;
    --rk-case-green: #059669;
    --rk-case-green-light: #ecfdf5;
    --rk-case-blue: #2563eb;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #cbd5e1;
    --rk-case-text: #334155;
    --rk-case-bg: #ffffff;
}

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

/* Nagłówek Case Study */
.rk-case-header {
    padding: 40px 50px 30px;
    background: var(--rk-case-dark);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-red);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(220, 38, 38, 0.2);
    color: #fca5a5;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(248, 113, 113, 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: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Panel Detektywistyczny (Interakcja) */
.rk-case-investigation {
    padding: 40px 50px;
    background: var(--rk-case-gray);
}

.rk-case-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-tab {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-case-tab-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    transition: all 0.3s;
}

.rk-case-tab-text h3 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-tab-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-case-text);
    font-weight: 600;
}

/* Stany aktywne zakładek */
.rk-case-tab[data-state="awaria"].active {
    border-color: var(--rk-case-red);
    background: var(--rk-case-red-light);
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.15);
}
.rk-case-tab[data-state="awaria"].active .rk-case-tab-icon {
    background: var(--rk-case-red);
    color: #ffffff;
}

.rk-case-tab[data-state="naprawa"].active {
    border-color: var(--rk-case-green);
    background: var(--rk-case-green-light);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.15);
}
.rk-case-tab[data-state="naprawa"].active .rk-case-tab-icon {
    background: var(--rk-case-green);
    color: #ffffff;
}

/* Widoki zawartości */
.rk-case-view {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-view.active {
    display: block;
    animation: slideUpCase 0.4s ease forwards;
}

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

.rk-case-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 25px;
}

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

.rk-case-list li {
    padding-left: 30px;
    position: relative;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-case-text);
    font-weight: 600;
}

.rk-case-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 20px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
}

/* Ikony list dla awarii (krzyżyk) */
.view-awaria .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
}

/* Ikony list dla naprawy (ptaszek) */
.view-naprawa .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
}

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

/* Ramka z danymi liczbowymi */
.rk-case-metrics {
    background: var(--rk-case-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-around;
    color: #ffffff;
}

.rk-case-metric {
    text-align: center;
}

.rk-case-metric-val {
    font-size: 24px;
    font-weight: 900;
    font-family: monospace;
    margin-bottom: 5px;
}

.view-awaria .rk-case-metric-val { color: #fca5a5; }
.view-naprawa .rk-case-metric-val { color: #6ee7b7; }

.rk-case-metric-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
}

/* Raport Finansowy */
.rk-case-finance {
    padding: 35px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-case-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.rk-case-finance-text h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-finance-text p {
    margin: 0;
    font-size: 15px;
    color: var(--rk-case-text);
    line-height: 1.6;
}

.rk-case-finance-box {
    background: #fef2f2;
    border: 2px solid var(--rk-case-red);
    padding: 20px 30px;
    border-radius: 16px;
    text-align: center;
    min-width: 250px;
}

.rk-case-finance-box span {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-red);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-case-finance-box strong {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Tagi Długiego Ogona */
.rk-case-tags {
    padding: 20px 50px 30px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-case-tag {
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-case-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-case-tag:hover {
    background: var(--rk-case-dark);
    color: #ffffff;
    border-color: var(--rk-case-dark);
}

@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-investigation { padding: 25px 20px; }
    
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab { padding: 15px; }
    
    .rk-case-view { padding: 25px 20px; }
    .rk-case-details { grid-template-columns: 1fr; gap: 20px; }
    .rk-case-metrics { flex-direction: column; gap: 20px; }
    
    .rk-case-finance { padding: 30px 20px; flex-direction: column; text-align: center; }
    .rk-case-finance-box { width: 100%; min-width: auto; }
    .rk-case-tags { padding: 0 20px 30px; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce instalacyjnej",
    "description": "Analiza rzeczywistej awarii. Zobacz, jak za długa pętla i brak projektu doprowadziły do niedogrzania salonu i kosztownego kucia wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-case-study",
    "name": "Raport Kosztów Awarii Ogrzewania Podłogowego",
    "description": "Porównanie kosztów prewencyjnego projektu inżynieryjnego z kosztami naprawy błędów wykonawczych (kucie wylewki, frezowanie) w budynku jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "za długa pętla podłogówki",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "koszt usunięcia awarii ogrzewania",
      "niedogrzany salon przyczyny"
    ],
    "measurementTechnique": "Analiza strat finansowych inwestora na podstawie realnego kosztorysu naprawczego (wymiana posadzki vs koszt projektu OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt projektu inżynieryjnego: 550 PLN",
        "Koszt kucia i wymiany wylewki (120m2): ~18 500 PLN",
        "Opory hydrauliczne przy pętli 180m: Przekroczenie limitu pompy",
        "Rozwiązanie alternatywne: Frezowanie podłogówki"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-ryzyka",
    "name": "Kalkulator Ryzyka i Diagnoza Awarii (Case Study)",
    "description": "Interaktywny panel śledczy demonstrujący proces diagnozowania i naprawy błędnie wykonanej instalacji (brak projektu, przekroczone długości rur).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-casestudy-widget">
    <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"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Analiza Przypadku (Case Study)
        </div>
        <h2>Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce</h2>
        <p>Zobacz na realnym przykładzie mojego klienta z okolic Poznania, jak brak profesjonalnego projektu i zaufanie do &#8222;oka&#8221; instalatora doprowadziło do paraliżu systemu grzewczego zimą.</p>
    </div>

    <div class="rk-case-investigation">
        <div class="rk-case-tabs" id="rkCaseTabs">
            <div class="rk-case-tab active" data-state="awaria">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Stan Zastany (Awaria)</h3>
                    <p>Grudzień 2025: Zamarzający dom</p>
                </div>
            </div>
            
            <div class="rk-case-tab" data-state="naprawa">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Interwencja (Norma)</h3>
                    <p>Styczeń 2026: Plan ratunkowy</p>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-awaria active" id="view-awaria">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Opis Problemu:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Inwestor zgłosił, że mimo zasilania pompy ciepła na poziomie 40°C, w salonie temperatura nie przekracza 18°C. Dodatkowo w rozdzielaczu słychać ciągły szum wody, a rotametry w ogóle nie reagują na regulację.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Diagnoza Błędów:</h4>
                    <ul class="rk-case-list">
                        <li><a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Za długa pętla podłogówki</a> – jedna z rur w salonie liczyła aż 180 metrów (norma dla rury 16mm to max. 120m).</li>
                        <li>Trwałe <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia</a> spowodowane kawitacją pompy, która nie mogła przepchnąć wody przez ogromne opory.</li>
                        <li>Rozstaw rur &#8222;na ślepo&#8221; co 20 cm pod grubym parkietem.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">180 m</div>
                    <div class="rk-case-metric-label">Długość najdłuższej pętli</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">42 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">0.0 l/min</div>
                    <div class="rk-case-metric-label">Przepływ na rotametrze</div>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-naprawa" id="view-naprawa">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Rozwiązanie Inżynieryjne:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Wykonaliśmy wsteczne obliczenia OZC. Aby uniknąć kucia całej posadzki, zdecydowaliśmy się na inwazyjne wpięcie w środku salonu i rozdzielenie gigantycznej pętli na dwa mniejsze obiegi przy użyciu muf prasowanych i żywicy epoksydowej. Alternatywą było tylko <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie podłogówki w starym systemie</a>.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Nowe Parametry (PN-EN 1264):</h4>
                    <ul class="rk-case-list">
                        <li>Podział krytycznej pętli na dwa osobne obiegi (po ~90m każdy).</li>
                        <li>Wymiana pompy obiegowej na jednostkę o większej wysokości podnoszenia.</li>
                        <li>Precyzyjne nastawy rotametrów według nowego bilansu hydraulicznego. Zasilanie spadło do 33°C.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">90 m / 90 m</div>
                    <div class="rk-case-metric-label">Skorygowane pętle</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">15 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny po resecie</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">2.1 l/min</div>
                    <div class="rk-case-metric-label">Stabilny przepływ</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-finance">
        <div class="rk-case-finance-text">
            <h3>Finansowe skutki &#8222;oszczędności&#8221;</h3>
            <p>To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>. Inwestor zaoszczędził 550 PLN na projekcie inżynieryjnym, ufając zapewnieniom instalatora. Naprawa błędu i lokalne kucie posadzki pochłonęło nieproporcjonalnie więcej środków i zszargało nerwy rodziny.</p>
        </div>
        <div class="rk-case-finance-box">
            <span>Koszt naprawy błędu</span>
            <strong>18 500 PLN</strong>
        </div>
    </div>

    <div class="rk-case-tags">
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-case-tag"># za długa pętla podłogówki co zrobić</a>
        <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-case-tag"># dlaczego podłogówka w salonie nie grzeje</a>
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-case-tag"># błędy wykonawcze ogrzewanie podłogowe</a>
        <a href="#" class="rk-case-tag"># rotametry na rozdzielaczu stoją w miejscu</a>
        <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/" class="rk-case-tag"># naprawa niedogrzanej podłogówki</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkCaseTabs .rk-case-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetState = this.getAttribute('data-state');
            
            // Usunięcie aktywnej klasy ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Ukrycie wszystkich widoków (bezpieczne sprawdzenie bez &&)
            var viewAwaria = document.getElementById('view-awaria');
            var viewNaprawa = document.getElementById('view-naprawa');
            
            if (viewAwaria !== null) { viewAwaria.classList.remove('active'); }
            if (viewNaprawa !== null) { viewNaprawa.classList.remove('active'); }
            
            // Aktywacja klikniętej zakładki i właściwego widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetState);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pro-dark: #0f172a;
    --rk-pro-slate: #475569;
    --rk-pro-blue: #2563eb;
    --rk-pro-blue-light: #eff6ff;
    --rk-pro-accent: #f59e0b;
    --rk-pro-bg: #ffffff;
    --rk-pro-bg-alt: #f8fafc;
    --rk-pro-border: #e2e8f0;
}

.rk-pro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-pro-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pro-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-pro-header {
    padding: 30px 40px;
    background: var(--rk-pro-dark);
    color: #ffffff;
}

.rk-pro-header h2 {
    font-size: 24px;
    font-weight: 800;
    margin: 0;
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-pro-header h2 svg {
    color: var(--rk-pro-accent);
}

/* Układ główny */
.rk-pro-body {
    display: flex;
    background: var(--rk-pro-bg);
}

/* Lewa Kolumna - Profil Eksperta */
.rk-pro-sidebar {
    width: 340px;
    padding: 40px 30px;
    background: var(--rk-pro-bg-alt);
    border-right: 1px solid var(--rk-pro-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-pro-avatar-wrapper {
    position: relative;
    margin-bottom: 25px;
}

.rk-pro-avatar {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-pro-bg);
    box-shadow: 0 8px 16px -4px rgba(15, 23, 42, 0.15);
}

.rk-pro-badge-check {
    position: absolute;
    bottom: 5px;
    right: 5px;
    background: var(--rk-pro-blue);
    color: #ffffff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--rk-pro-bg);
}

.rk-pro-name {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-pro-dark);
    margin: 0 0 5px 0;
    letter-spacing: -0.5px;
}

.rk-pro-role {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-pro-blue);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-pro-brand {
    font-size: 12px;
    font-weight: 800;
    background: var(--rk-pro-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    margin-bottom: 25px;
    letter-spacing: 0.5px;
}

.rk-pro-socials {
    display: flex;
    gap: 12px;
}

.rk-pro-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-pro-border);
    border-radius: 8px;
    color: var(--rk-pro-slate);
    text-decoration: none;
}

.rk-pro-social-link:hover {
    background: var(--rk-pro-blue-light);
    color: var(--rk-pro-blue);
    border-color: #bfdbfe;
}

/* Prawa Kolumna - Treść */
.rk-pro-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-pro-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-pro-border);
    background: var(--rk-pro-bg);
}

.rk-pro-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-pro-slate);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid transparent;
}

.rk-pro-tab.active {
    color: var(--rk-pro-blue);
    border-bottom-color: var(--rk-pro-blue);
    background: var(--rk-pro-blue-light);
}

.rk-pro-view {
    display: none;
    padding: 40px;
}

.rk-pro-view.active {
    display: block;
}

/* Typografia Cytatu */
.rk-pro-quote-box {
    position: relative;
    padding-left: 20px;
}

.rk-pro-quote-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 4px;
    background: var(--rk-pro-accent);
    border-radius: 2px;
}

.rk-pro-quote-text {
    font-size: 19px;
    font-weight: 800;
    line-height: 1.6;
    color: var(--rk-pro-dark);
    margin: 0 0 20px 0;
}

.rk-pro-quote-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-pro-slate);
    margin: 0;
}

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

/* Statystyki Nowoczesne */
.rk-pro-stats-intro {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-pro-dark);
    line-height: 1.6;
    margin: 0 0 30px 0;
}

.rk-pro-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-pro-stat-card {
    background: var(--rk-pro-bg);
    border: 1px solid var(--rk-pro-border);
    border-radius: 12px;
    padding: 25px 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pro-stat-card:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-pro-stat-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-pro-blue);
    margin-bottom: 8px;
    letter-spacing: -1px;
}

.rk-pro-stat-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-pro-slate);
    text-transform: uppercase;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .rk-pro-header { padding: 25px 20px; }
    .rk-pro-header h2 { font-size: 20px; }
    .rk-pro-body { flex-direction: column; }
    .rk-pro-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-pro-border); padding: 30px 20px; }
    .rk-pro-view { padding: 30px 20px; }
    .rk-pro-grid { grid-template-columns: 1fr; }
    .rk-pro-tabs { flex-direction: column; }
    .rk-pro-tab { border-bottom: none; border-left: 3px solid transparent; text-align: left; padding: 15px 20px; }
    .rk-pro-tab.active { border-left-color: var(--rk-pro-blue); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego",
    "description": "Autorytet w dziedzinie instalacji płaszczyznowych. Sprawdź, dlaczego ponad 1000 projektów ogrzewania musi opierać się na twardych wyliczeniach, a nie na przypuszczeniach.",
    "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": "Ekspert HVAC, CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "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-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-cennik-projekty",
    "name": "Cennik i Statystyki Projektowe - Robert Kucharski (2026)",
    "description": "Kluczowe wskaźniki efektywności i transparentne koszty wykonania profesjonalnej dokumentacji technicznej dla wodnego ogrzewania podłogowego w budownictwie jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "koszt projektu podłogówki",
      "dokumentacja techniczna hvac",
      "budowa bez ściemy",
      "ekspert ogrzewania podłogowego"
    ],
    "measurementTechnique": "Dane oparte na rzeczywistych zleceniach i realizacjach biura projektowego projekt-ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Średnia cena profesjonalnego projektu (OZC + pętle): 550 PLN",
        "Liczba zrealizowanych projektów: Ponad 1000",
        "Główny profil działalności: Obliczenia i dokumentacja techniczna zgodna z PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wizytowka-eksperta",
    "name": "Interaktywna Wizytówka Inżynierska",
    "description": "Nowoczesny moduł przełączający służący do szybkiego przeglądu kwalifikacji projektanta instalacji sanitarnych oraz głównych wytycznych, którymi kieruje się biuro projektowe.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pro-container" id="rk-modern-expert">
    <div class="rk-pro-header">
        <h2>
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego
        </h2>
    </div>

    <div class="rk-pro-body">
        
        <!-- Kolumna Lewa: Profil (E-E-A-T) -->
        <div class="rk-pro-sidebar">
            <div class="rk-pro-avatar-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-pro-avatar">
                <div class="rk-pro-badge-check" title="Zweryfikowany Specjalista">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
            </div>
            
            <h3 class="rk-pro-name">Robert Kucharski</h3>
            <div class="rk-pro-role">Główny Specjalista HVAC</div>
            <div class="rk-pro-brand">BUDOWA BEZ ŚCIEMY</div>
            
            <div class="rk-pro-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="Facebook">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="LinkedIn">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                </a>
            </div>
        </div>

        <!-- Kolumna Prawa: Interaktywne Zakładki -->
        <div class="rk-pro-content">
            <div class="rk-pro-tabs" id="rkProTabs">
                <button class="rk-pro-tab active" data-tab="cytat">Złota zasada instalatora</button>
                <button class="rk-pro-tab" data-tab="liczby">Dlaczego projekt?</button>
            </div>

            <!-- Widok: Cytat -->
            <div class="rk-pro-view active" id="view-cytat">
                <div class="rk-pro-quote-box">
                    <p class="rk-pro-quote-text">
                        Z perspektywy tysięcy przeanalizowanych instalacji mogę z pełną odpowiedzialnością stwierdzić jedno: wylewka betonowa wybacza wszystko, dopóki jej nie zalejesz. 
                    </p>
                    <p class="rk-pro-quote-desc">
                        Norma PN-EN 1264 to nie jest urzędniczy wymysł. To tarcza ochronna Twojego portfela. Ignorowanie prób ciśnieniowych (6 bar) i projektowania OZC z myślą &#8222;jakoś to będzie&#8221; niemal zawsze kończy się zjawiskiem niedogrzania lub zniszczonymi posadzkami. Kucie jastrychu w gotowym salonie kosztuje 10 razy więcej niż <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">kompleksowy projekt</a> u sprawdzonego inżyniera.
                    </p>
                </div>
            </div>

            <!-- Widok: Liczby -->
            <div class="rk-pro-view" id="view-liczby">
                <p class="rk-pro-stats-intro">
                    Jako projektant reklamuję w Google wyłącznie pełne opracowania techniczne, a nie pojedyncze rurki czy rozdzielacze. Dlaczego? Bo tylko profesjonalny projekt daje gwarancję sukcesu.
                </p>
                
                <div class="rk-pro-grid">
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">1000+</div>
                        <div class="rk-pro-stat-label">Wykonanych projektów</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">550 PLN</div>
                        <div class="rk-pro-stat-label">Średnia cena dokumentacji</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">3700</div>
                        <div class="rk-pro-stat-label">Obserwatorów fachowców</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">100%</div>
                        <div class="rk-pro-stat-label">Zgodności z normą PN-EN</div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkProTabs .rk-pro-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetViewId = this.getAttribute('data-tab');
            
            // Usunięcie klasy aktywnej ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Zamknięcie wszystkich widoków (bezpieczne sprawdzenie)
            var viewCytat = document.getElementById('view-cytat');
            var viewLiczby = document.getElementById('view-liczby');
            
            if (viewCytat !== null) { viewCytat.classList.remove('active'); }
            if (viewLiczby !== null) { viewLiczby.classList.remove('active'); }
            
            // Aktywacja wybranej zakładki i widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetViewId);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-slate: #334155;
    --rk-err-danger: #dc2626;
    --rk-err-danger-light: #fef2f2;
    --rk-err-warning: #ea580c;
    --rk-err-warning-light: #fff7ed;
    --rk-err-blue: #2563eb;
    --rk-err-bg: #ffffff;
    --rk-err-gray: #f8fafc;
    --rk-err-border: #cbd5e1;
}

.rk-err-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(220, 38, 38, 0.15);
    border: 1px solid var(--rk-err-danger);
    overflow: hidden;
}

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

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

.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: #f87171;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 750px;
}

/* Moduł 1: Interaktywny Skaner Błędów */
.rk-err-scanner {
    padding: 40px 50px;
    background: var(--rk-err-gray);
}

.rk-err-section-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-err-card {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-err-card:hover {
    border-color: var(--rk-err-warning);
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.1);
}

.rk-err-card.revealed {
    border-color: var(--rk-err-danger);
    background: var(--rk-err-danger-light);
}

.rk-err-card-front {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: opacity 0.3s;
}

.rk-err-card.revealed .rk-err-card-front {
    display: none;
}

.rk-err-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-err-hint {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-err-blue);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Skutek Błędu (Tył Karty) */
.rk-err-card-back {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: popIn 0.3s ease;
}

.rk-err-card.revealed .rk-err-card-back {
    display: flex;
}

@keyframes popIn {
    0% { transform: scale(0.9); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

.rk-err-danger-icon {
    color: var(--rk-err-danger);
    margin-bottom: 10px;
}

.rk-err-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-err-danger);
    margin: 0 0 10px 0;
}

.rk-err-link {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-err-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł 2: Odpowiedzialność na Budowie */
.rk-err-roles {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-err-border);
}

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

.rk-err-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-err-role-item {
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color 0.3s;
}

.rk-err-role-item.active {
    border-color: var(--rk-err-blue);
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.1);
}

.rk-err-role-btn {
    width: 100%;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    text-align: left;
}

.rk-err-role-header {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-role-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-err-gray);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-slate);
    transition: all 0.3s;
}

.rk-err-role-item.active .rk-err-role-icon {
    background: var(--rk-err-blue);
    color: #ffffff;
}

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

.rk-err-role-chevron {
    color: var(--rk-err-slate);
    transition: transform 0.3s;
}

.rk-err-role-item.active .rk-err-role-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-blue);
}

.rk-err-role-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-err-gray);
}

.rk-err-role-inner {
    padding: 0 25px 25px 80px;
}

.rk-err-role-inner p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-slate);
    font-weight: 500;
}

.rk-err-role-inner strong {
    color: var(--rk-err-dark);
    font-weight: 800;
}

/* Tagi SEO */
.rk-err-tags {
    padding: 0 50px 40px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-err-tag {
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-err-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-err-tag:hover {
    background: var(--rk-err-dark);
    color: #ffffff;
    border-color: var(--rk-err-dark);
}

@media (max-width: 768px) {
    .rk-err-header { padding: 35px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-scanner { padding: 35px 20px; }
    .rk-err-roles { padding: 35px 20px; }
    .rk-err-role-btn { padding: 15px; }
    .rk-err-role-inner { padding: 0 15px 20px 15px; }
    .rk-err-tags { padding: 0 20px 30px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawców łamiące PN-EN 1264 i odpowiedzialność na budowie",
    "description": "Sprawdź skutki braku OZC, zbyt długich pętli i braku dylatacji. Wyjaśniamy, czy instalator musi znać normę PN-EN 1264 i za co odpowiada kierownik budowy.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Rejestr Błędów Wykonawczych i Skutków Awarii Ogrzewania (2026)",
    "description": "Baza danych parująca najczęstsze uchybienia normatywne instalatorów z bezpośrednimi fizycznymi konsekwencjami dla budynku (pęknięcia, niedogrzanie, zalanie).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "brak ozc skutki",
      "za długa pętla podłogówki",
      "brak dylatacji ogrzewanie podłogowe",
      "obowiązki instalatora a projektant"
    ],
    "measurementTechnique": "Analiza przyczynowo-skutkowa odchyłek od europejskiej normy wbudowanych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd: Rozstaw 20-25 cm wszędzie -> Skutek: Zimne strefy",
        "Błąd: Brak OZC -> Skutek: Niedogrzanie",
        "Błąd: Pętle powyżej 120 m -> Skutek: Problemy hydrauliczne",
        "Błąd: Brak dylatacji -> Skutek: Pęknięcia jastrychu",
        "Błąd: Brak próby szczelności -> Skutek: Zalanie budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-audytor",
    "name": "Interaktywny Audytor Błędów Instalacyjnych",
    "description": "Narzędzie pozwalające inwestorowi na szybkie zdiagnozowanie potencjalnych skutków rzemieślniczych błędów montażowych oraz ustalenie matrycy odpowiedzialności na placu budowy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-errors-widget">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Ściana Płaczu Inwestora
        </div>
        <h2>Najczęstsze błędy wykonawców i odpowiedzialność na budowie</h2>
        <p>Instalacja podłogówki z pominięciem wytycznych normy to stąpanie po kruchym lodzie. Sprawdź, jakie są skutki najpopularniejszych błędów i dowiedz się ostatecznie: kto za to odpowiada?</p>
    </div>

    <div class="rk-err-scanner">
        <h3 class="rk-err-section-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Skaner Błędów Łamiących PN-EN 1264
        </h3>
        
        <div class="rk-err-grid" id="rkErrGrid">
            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg></div>
                    <h4>Rozstaw rur 20-25 cm wszędzie</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" 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 class="rk-err-result">Zimne Strefy i Paski</div>
                    <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-err-link">Brak pokrycia strat ciepła</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></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></div>
                    <h4>Brak obliczeń OZC</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    <div class="rk-err-result">Permanentne Niedogrzanie</div>
                    <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-err-link">Wymaga wyższej temp. pompy</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg></div>
                    <h4>Pętle powyżej 120 metrów</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" 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 class="rk-err-result">Problemy Hydrauliczne</div>
                    <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-link">Pompa nie pcha wody</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M5 12l-3 3 3 3"></path></svg></div>
                    <h4>Brak dylatacji jastrychu</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M16 21v-2a4 4 0 0 0-4-4H5.5"></path><polyline points="9 22 5.5 15 2 22"></polyline><path d="M22 3L2 22"></path></svg>
                    <div class="rk-err-result">Pęknięcia Posadzki</div>
                    <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">Kucie zerwanych płytek</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg></div>
                    <h4>Brak próby szczelności</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    <div class="rk-err-result">Zalanie Budynku</div>
                    <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-link">Awaria po wylaniu betonu</a>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-err-roles">
        <h3 class="rk-err-section-title">Czy instalator wykonujący podłogówkę ma obowiązek znać PN-EN 1264?</h3>
        <p class="rk-err-roles-intro">To pytanie, które najczęściej wpisują inwestorzy w przypadku awarii i szukania winnych. Prawo budowlane określa bardzo elegancki i jednoznaczny podział obowiązków między trzema głównymi aktorami na placu budowy.</p>

        <div class="rk-err-accordion" id="rkErrAccordion">
            
            <div class="rk-err-role-item active">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></div>
                        <h4 class="rk-err-role-title">Projektant HVAC</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" 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-err-role-content" style="max-height: 500px;">
                    <div class="rk-err-role-inner">
                        <p><strong>Tak, to jego absolutny obowiązek.</strong> Projektant jest intelektualnym twórcą układu. Musi wykonać obliczenia strat ciepła, dobrać rozstaw rur, obliczyć hydraulikę i stworzyć dokumentację stricte w oparciu o algorytmy PN-EN 1264. To on ponosi odpowiedzialność prawną za to, czy system wydajnościowo dogrzeje budynek w temperaturach ujemnych.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div>
                        <h4 class="rk-err-role-title">Instalator / Wykonawca</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" 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-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>Nie musi znać na pamięć wzorów matematycznych.</strong> Jego obowiązkiem nie jest projektowanie &#8222;z głowy&#8221;. Obowiązkiem instalatora jest rzetelne i bezbłędne odtworzenie na budowie tego, co projektant narysował w <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">projekcie ogrzewania podłogowego</a>. Musi jednak znać wytyczne montażowe (część 4 normy) dotyczące wykonywania prób ciśnieniowych (6 bar) i układania dylatacji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                        <h4 class="rk-err-role-title">Kierownik Budowy</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" 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-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>To główny audytor.</strong> Zgodnie z Prawem Budowlanym, to on odbiera tzw. prace zanikające (czyli rury przed zalaniem betonem). Jego obowiązkiem jest sprawdzenie, czy rozstaw rur na styropianie zgadza się z projektem oraz musi być fizycznie obecny lub wymagać podpisanego protokołu z próby szczelności przed wpuszczeniem posadzkarzy.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-tags">
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-err-tag"># błędy montażu ogrzewania podłogowego</a>
        <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/" class="rk-err-tag"># obowiązki instalatora</a>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="rk-err-tag"># projekt z głowy vs obliczenia</a>
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-tag"># za długa pętla skutki</a>
        <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-tag"># zalanie budynku podłogówka</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Logika Skanera Błędów (Karty)
    var cards = document.querySelectorAll('#rkErrGrid .rk-err-card');
    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            var isRevealed = this.classList.contains('revealed');
            if (isRevealed === false) {
                this.classList.add('revealed');
            } else {
                this.classList.remove('revealed');
            }
        });
    });

    // 2. Logika Akordeonu Ról (Bezpieczne JS)
    var accItems = document.querySelectorAll('#rkErrAccordion .rk-err-role-item');
    accItems.forEach(function(item) {
        var btn = item.querySelector('.rk-err-role-btn');
        var content = item.querySelector('.rk-err-role-content');

        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');

            // Zamknięcie wszystkich (opcjonalne, działa jak klasyczny akordeon)
            accItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                var innerContent = innerItem.querySelector('.rk-err-role-content');
                if (innerContent !== null) {
                    innerContent.style.maxHeight = null;
                }
            });

            // Otwarcie klikniętego (jeśli nie był otwarty)
            if (isActive === false) {
                item.classList.add('active');
                if (content !== null) {
                    content.style.maxHeight = content.scrollHeight + "px";
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #2563eb;
    --rk-faq-blue-hover: #1d4ed8;
    --rk-faq-light-blue: #eff6ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-bg: #ffffff;
    --rk-faq-icon: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 24px;
    box-shadow: 0 10px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid var(--rk-faq-blue);
    overflow: hidden;
}

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    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(96, 165, 250, 0.2);
}

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

/* Interaktywny Akordeon */
.rk-faq-list-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-faq-item:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.15);
}

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    color: var(--rk-faq-dark);
}

.rk-faq-item.active .rk-faq-btn {
    background: var(--rk-faq-light-blue);
}

.rk-faq-btn h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.4;
    flex: 1;
}

.rk-faq-icon-wrapper {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
}

.rk-faq-item.active .rk-faq-icon-wrapper {
    transform: rotate(180deg);
    background: var(--rk-faq-blue);
    color: #ffffff;
}

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

.rk-faq-content-inner {
    padding: 0 30px 30px 30px;
    color: var(--rk-faq-text);
    font-size: 16px;
    line-height: 1.7;
}

.rk-faq-item.active .rk-faq-content-inner {
    border-top: 1px solid transparent; /* Wizualny odstęp */
    padding-top: 10px;
}

.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

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

/* Informacja Wizualna w Treści */
.rk-faq-highlight {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    color: #166534;
    padding: 12px 16px;
    border-radius: 8px;
    border-left: 4px solid #22c55e;
    margin-top: 15px;
    font-weight: 600;
    font-size: 15px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 25px; }
    .rk-faq-list-wrapper { padding: 25px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-btn { padding: 20px; }
    .rk-faq-btn h3 { font-size: 16px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264",
    "description": "Odpowiedzi na kluczowe pytania inżynieryjne: wygrzewanie jastrychu, długość pętli, zabudowa meblowa i kary za brak próby szczelności ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską, a sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury, jednak powszechny standard inżynierski oparty na kryteriach normatywnych ogranicza długość rury 16x2 mm do 100–120 metrów, a rury 20x2 mm do 150 metrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym, co skutkuje koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz utratą gwarancji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (Rλ,B powyżej limitu 0,15 m²K/W), przez co układanie tam rur jest błędem – powoduje przegrzewanie mebli i marnowanie energii."
        }
      },
      {
        "@type": "Question",
        "name": "Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu betonowego, który może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach), zaczynając od temperatury zasilania 25°C przez 3 dni, a następnie podnosząc ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zestawienie parametrów krytycznych montażu i odbioru podłogówki (2026)",
    "description": "Baza danych parametrów kontrolnych: dni dojrzewania jastrychu, limity długości rur PEX oraz graniczne współczynniki oporu cieplnego wyciągnięte z norm inżynieryjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "długość pętli ogrzewania podłogowego",
      "wygrzewanie jastrychu anhydryt",
      "próba ciśnieniowa podłogówki",
      "ogrzewanie podłogowe pod meblami",
      "normy wykonawcze HVAC"
    ],
    "measurementTechnique": "Wytyczne normatywne służące za układ odniesienia dla biegłych sądowych i instalatorów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wygrzewanie betonu: start po 21 dniach",
        "Wygrzewanie anhydrytu: start po 7 dniach",
        "Startowa temperatura wygrzewania: 25°C przez 3 dni"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ PN-EN 1264",
    "description": "Moduł typu akordeon, który błyskawicznie dopasowuje inżynieryjne odpowiedzi do najczęściej wyszukiwanych problemów budowlanych z zakresu instalacji podłogowych.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="norma-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264</h2>
    </div>

    <div class="rk-faq-list-wrapper" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską. Wszelkie sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury. Jednak powszechny standard inżynierski oparty na kryteriach normatywnych określa jasne zasady: <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">ogranicza długość rury 16&#215;2 mm do 100–120 metrów</a>, a grubszej rury 20&#215;2 mm maksymalnie do 150 metrów.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym. Skutkuje to koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz całkowitą utratą gwarancji. To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (grubo powyżej normatywnego limitu 0,15 m²K/W). Przez to <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">układanie tam rur jest błędem</a> – powoduje przegrzewanie mebli, marnowanie energii i psucie artykułów spożywczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">Wygrzewanie wylewki betonowej</a> może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach). Rozpoczyna się od temperatury zasilania 25°C przez 3 dni, a następnie podnosi się ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej.</p>
                    
                    <div class="rk-faq-highlight">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Pominięcie wygrzewania skutkuje nieodwracalnym pękaniem płytek!
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(function(item) {
        var btn = item.querySelector('.rk-faq-btn');
        var content = item.querySelector('.rk-faq-content');
        
        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie (opcjonalne - działanie akordeonu)
            faqItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                innerItem.querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
                innerItem.querySelector('.rk-faq-content').style.maxHeight = null;
            });

            // Jeśli nie był aktywny, otwórz kliknięty
            if (isActive === false) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
                // Przypisanie dokładnej wysokości do płynnej animacji
                content.style.maxHeight = content.scrollHeight + 50 + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0ea5e9;
    --rk-fin-light-blue: #e0f2fe;
    --rk-fin-green: #10b981;
    --rk-fin-red: #ef4444;
    --rk-fin-gray: #64748b;
    --rk-fin-bg: #ffffff;
    --rk-fin-border: #cbd5e1;
}

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

/* Sekcja Nagłówkowa */
.rk-fin-header {
    padding: 40px 50px;
    background: var(--rk-fin-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-fin-blue);
}

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

.rk-fin-subtitle {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 750px;
}

/* Interaktywny Widget Weryfikacyjny */
.rk-fin-widget {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-fin-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-fin-tab {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 12px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-fin-tab:hover {
    border-color: var(--rk-fin-blue);
    background: var(--rk-fin-light-blue);
    color: var(--rk-fin-blue);
}

.rk-fin-tab.active {
    background: var(--rk-fin-blue);
    border-color: var(--rk-fin-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.3);
}

.rk-fin-tab svg {
    width: 20px;
    height: 20px;
}

/* Obszar wyświetlania danych */
.rk-fin-display {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 35px;
    display: flex;
    align-items: flex-start;
    gap: 30px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.rk-fin-display-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--rk-fin-light-blue);
    color: var(--rk-fin-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-fin-display-icon svg { width: 40px; height: 40px; }

.rk-fin-display-content h4 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

.rk-fin-display-content .rk-alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fef2f2;
    border-left: 4px solid var(--rk-fin-red);
    border-radius: 0 6px 6px 0;
    color: #991b1b;
    font-size: 14px;
    font-weight: 600;
    margin-top: 10px;
}

/* Konkluzja i Tagi */
.rk-fin-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-fin-border);
}

.rk-fin-conclusion p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: var(--rk-fin-dark);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-fin-blue);
    color: #ffffff;
    border-color: var(--rk-fin-blue);
}

/* CTA */
.rk-fin-cta {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, #1e293b 100%);
    text-align: center;
}

.rk-fin-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s ease;
    border: none;
    width: 100%;
    max-width: 500px;
}

.rk-fin-btn-cta:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-widget, .rk-fin-conclusion, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-title { font-size: 24px; }
    .rk-fin-tabs { flex-direction: column; }
    .rk-fin-display { flex-direction: column; align-items: center; text-align: center; padding: 25px 20px; }
    .rk-fin-display-content .rk-alert { text-align: left; }
    .rk-fin-btn-cta { padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie i kluczowe wnioski inżynieryjne z normy PN-EN 1264",
    "description": "Kodeks techniczny ogrzewania podłogowego. Poznaj maksymalną temperaturę podłogi, opór cieplny okładziny oraz limity długości pętli rury chroniące przed awarią.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity",
    "name": "Graniczne parametry instalacyjne normy PN-EN 1264",
    "description": "Zestawienie twardych danych technicznych dotyczących maksymalnych limitów operacyjnych dla wbudowanych systemów płaszczyznowych (temperatura, izolacja, hydraulika).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn en 1264",
      "maksymalna temperatura podłogi",
      "opór cieplny okładziny",
      "długość pętli ogrzewania podłogowego",
      "profesjonalny projekt instalacji"
    ],
    "measurementTechnique": "Wartości bezwzględne wynikające ze standardu europejskiego stosowane w procesie weryfikacji odbiorczej instalacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura w strefie stałego przebywania: 29°C",
        "Maksymalny dopuszczalny opór cieplny okładziny: 0,15 m2K/W",
        "Maksymalna długość pętli dla rury 16x2 mm: 100-120 metrów"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-weryfikator",
    "name": "Interaktywny Weryfikator Standardów PN-EN 1264",
    "description": "Symulator wizualizujący konsekwencje przekroczenia kluczowych limitów inżynieryjnych w wodnym ogrzewaniu podłogowym (niedogrzanie, awaria pompy, przegrzanie posadzki).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container">
    <div class="rk-fin-header">
        <h2 class="rk-fin-title">Podsumowanie i kluczowe wnioski inżynieryjne</h2>
        <p class="rk-fin-subtitle">
            Norma PN-EN 1264 to kompletny kodeks techniczny, który oddziela profesjonalne projektowanie instalacji HVAC od intuicyjnego układania rur przez przypadkowych wykonawców.
        </p>
    </div>

    <div class="rk-fin-widget">
        <h3 class="rk-fin-widget-title">Sprawdź 3 fundamenty bezpieczeństwa instalacji</h3>
        
        <div class="rk-fin-tabs" id="rkFinTabs">
            <button class="rk-fin-tab active" data-target="temp">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                Max. 29°C
            </button>
            <button class="rk-fin-tab" data-target="opor">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="16" width="20" height="4" rx="1"></rect><path d="M6 12h12M10 8h4M12 4v4"></path></svg>
                Max. 0,15 m²K/W
            </button>
            <button class="rk-fin-tab" data-target="petla">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Max. 120 m
            </button>
        </div>

        <div class="rk-fin-display" id="rkFinDisplay">
            <div class="rk-fin-display-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
            </div>
            <div class="rk-fin-display-content">
                <h4>Ograniczenie temperatury w strefie mieszkalnej</h4>
                <p>Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Projektowanie instalacji wymagającej wyższych temperatur zasilania dla zrównoważenia strat ciepła to błąd inżynieryjny.</p>
                <p>Bezpieczeństwo konstrukcyjne oraz zdrowie domowników zależą od utrzymania tego limitu.</p>
                <div class="rk-alert">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Przegrzewanie posadzki obniża żywotność paneli.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-conclusion">
        <p>
            Bezpieczeństwo konstrukcyjne, gwarancja stabilności posadzki oraz wysoka efektywność energetyczna nowoczesnych źródeł ciepła, takich jak <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">pompy ciepła</a> czy kotły kondensacyjne, są nierozerwalnie związane z przestrzeganiem reżimu matematycznego tej normy.
        </p>
        <p>
            Każda inwestycja w ogrzewanie płaszczyznowe powinna rozpoczynać się od sporządzenia profesjonalnego projektu instalacji opartego na rzeczywistych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">obliczeniach strat ciepła budowlanego</a>. Próba oszczędności na etapie inżynieryjnym i działanie &#8222;na oko&#8221; skutkuje wadami, których usunięcie po stwardnieniu betonu wiąże się z ogromnymi kosztami naprawczymi.
        </p>
        <p style="font-weight: 700; color: var(--rk-fin-dark); margin-top: 20px;">
            💡 Jako specjalista HVAC rekomenduję: zawsze żądaj od swojego projektanta lub instalatora jasnej deklaracji zgodności wykonanych obliczeń z normą PN-EN 1264.
        </p>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># norma pn en 1264</span>
            <span class="rk-mat-tag"># profesjonalny projekt instalacji</span>
            <span class="rk-mat-tag"># obliczenia strat ciepła</span>
            <span class="rk-mat-tag"># maksymalna temperatura podłogi</span>
            <span class="rk-mat-tag"># opór cieplny okładziny</span>
            <span class="rk-mat-tag"># długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># koszt usunięcia awarii wylewki</span>
            <span class="rk-mat-tag"># efektywne ogrzewanie płaszczyznowe</span>
        </div>
    </div>

    <div class="rk-fin-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-fin-btn-cta">
            CZYTAJ DALEJ NA BLOGU EKSPERCKIM
            <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 12h14M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-fin-tab');
    var display = document.getElementById('rkFinDisplay');

    var contentData = {
        'temp': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>',
            title: 'Ograniczenie temperatury w strefie mieszkalnej',
            text1: 'Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Próba ogrzania nieocieplonego domu wyłącznie podłogówką grozi łamaniem tego prawa.',
            text2: 'Zdrowie użytkowników oraz bezpieczeństwo materiałów podłogowych wymagają utrzymania parametrów niskotemperaturowych.',
            alert: 'Przegrzewanie posadzki skraca żywotność rur i klejów.'
        },
        'opor': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>',
            title: 'Bariera przewodnictwa posadzki',
            text1: 'Graniczny opór cieplny okładziny podłogowej wynosi <strong>0,15 m²K/W</strong>. Stosowanie grubych dywanów lub izolacyjnych podkładów blokuje strumień ciepła.',
            text2: 'Brak weryfikacji tego parametru przed wykonaniem <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">rozstawu rur</a> spowoduje permanentne niedogrzanie salonu.',
            alert: 'Zawsze konsultuj zmianę podłogi z projektantem!'
        },
        'petla': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg>',
            title: 'Krytyczne opory hydrauliczne obiegu',
            text1: 'Maksymalna długość pętli rury 16 mm nie powinna przekraczać <strong>100–120 m</strong>, aby utrzymać opory hydrauliczne w ryzach.',
            text2: 'Tworzenie pętli o długości 150 m prowadzi do zjawiska, w którym woda przestaje płynąć na końcu układu. Pompa obiegowa nie jest w stanie pokonać tarcia.',
            alert: 'Zbyt długa pętla = zimna strefa na środku pokoju.'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var target = this.getAttribute('data-target');
            var data = contentData[target];

            if (data !== undefined) {
                // Remove active class from all
                tabs.forEach(function(t) { t.classList.remove('active'); });
                // Add active to clicked
                this.classList.add('active');

                // Update content cleanly
                display.innerHTML = 
                    '<div class="rk-fin-display-icon">' + data.icon + '</div>' +
                    '<div class="rk-fin-display-content">' +
                        '<h4>' + data.title + '</h4>' +
                        '<p>' + data.text1 + '</p>' +
                        '<p>' + data.text2 + '</p>' +
                        '<div class="rk-alert">' +
                            '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> ' +
                            data.alert +
                        '</div>' +
                    '</div>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-slate: #475569;
    --rk-dl-blue: #2563eb;
    --rk-dl-blue-light: #eff6ff;
    --rk-dl-emerald: #059669;
    --rk-dl-emerald-light: #ecfdf5;
    --rk-dl-bg: #ffffff;
    --rk-dl-gray: #f8fafc;
    --rk-dl-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-dl-header {
    padding: 35px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-emerald);
    text-align: center;
}

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

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

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

/* Pozioma Nawigacja (Przyciski na górze) */
.rk-dl-nav {
    display: flex;
    background: var(--rk-dl-gray);
    padding: 20px 40px;
    gap: 20px;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-nav-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-dl-slate);
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-dl-nav-btn:hover {
    border-color: #94a3b8;
}

.rk-dl-nav-btn.active {
    background: var(--rk-dl-blue);
    border-color: var(--rk-dl-blue);
    color: #ffffff;
}

.rk-dl-nav-btn svg {
    flex-shrink: 0;
}

/* Obszar Treści (Grafika / Pobieranie pod spodem) */
.rk-dl-content {
    padding: 40px;
    background: var(--rk-dl-bg);
}

.rk-dl-view {
    display: none;
}

.rk-dl-view.active {
    display: block;
}

/* Widok 1: Podgląd Grafiki */
.rk-dl-preview-wrapper {
    background: var(--rk-dl-gray);
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.rk-dl-preview-img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15);
    border: 1px solid var(--rk-dl-border);
    display: block;
    margin: 0 auto;
}

/* Widok 2: Sekcja Pobierania */
.rk-dl-download-wrapper {
    background: var(--rk-dl-emerald-light);
    border: 2px solid var(--rk-dl-emerald);
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
}

.rk-dl-file-specs {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-dl-spec-badge {
    background: #ffffff;
    color: #065f46;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
    border: 1px solid #a7f3d0;
}

.rk-dl-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-emerald);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
}

.rk-dl-action-btn:hover {
    background: #047857;
}

/* Stopka (Na samym dole) */
.rk-dl-footer {
    background: var(--rk-dl-gray);
    padding: 25px 40px;
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-dl-footer-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-slate);
    flex-shrink: 0;
}

.rk-dl-footer-text {
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-slate);
    margin: 0;
}

.rk-dl-footer-text strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
    display: block;
    margin-bottom: 4px;
}

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

/* Tagi SEO */
.rk-dl-tags {
    padding: 0 40px 30px;
    background: var(--rk-dl-gray);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-dl-tag {
    background: #ffffff;
    color: var(--rk-dl-slate);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid var(--rk-dl-border);
    text-decoration: none;
}

.rk-dl-tag:hover {
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-color: var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-content, .rk-dl-footer, .rk-dl-tags { padding: 25px 20px; }
    .rk-dl-nav { padding: 20px; flex-direction: column; gap: 10px; }
    .rk-dl-footer { flex-direction: column; text-align: center; }
    .rk-dl-action-btn { width: 100%; padding: 15px 20px; font-size: 16px; }
    .rk-dl-file-specs { flex-direction: column; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-pobieranie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Materiały do pobrania: Infografika PN-EN 1264 w formacie PDF",
    "description": "Zdobądź inżynieryjną ściągawkę z normy PN-EN 1264. Darmowy plik PDF dla instalatorów przygotowany przez Roberta Kucharskiego do pobrania i wydruku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Inżynieryjna Infografika: Norma PN-EN 1264 (PDF)",
    "description": "Wizualne zestawienie parametrów technicznych ogrzewania podłogowego w postaci zoptymalizowanego dokumentu PDF przeznaczonego na place budowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "norma pn-en 1264 do druku",
      "ściągawka instalatora podłogówki",
      "schemat układania rur ogrzewania",
      "parametry podłogówki pdf"
    ],
    "measurementTechnique": "Kompilacja kluczowych wytycznych hydraulicznych i konstrukcyjnych w formacie grafiki wektorowej/PDF wysokiej rozdzielczości.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku miniatury: WebP (Szybkie ładowanie)",
        "Format pliku bazowego: PDF (Gotowy do druku)",
        "Ograniczenia licencyjne: Zakaz modyfikacji, obowiązek zachowania logotypu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-dystrybucja",
    "name": "Centrum Pobierania Materiałów Edukacyjnych HVAC",
    "description": "Interaktywny widget dystrybucyjny o układzie horyzontalnym umożliwiający podgląd miniatury materiału szkoleniowego (WebP) oraz bezpieczne pobranie zasobu bazowego (PDF).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-center-modern">
    <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"><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 Ciebie
        </div>
        <h2>Pobierz infografikę z normą PN-EN 1264</h2>
        <p>Przygotowałem dla Ciebie czytelną, inżynieryjną ściągawkę. Pobierz darmowy plik PDF, wydrukuj go i zabierz ze sobą na budowę, aby uniknąć kosztownych błędów.</p>
    </div>

    <div class="rk-dl-nav" id="rkDlNav">
        <button class="rk-dl-nav-btn active" data-view="podglad">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
            Podgląd Grafiki
        </button>

        <button class="rk-dl-nav-btn" data-view="pobieranie">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
            Pobierz Plik PDF
        </button>
    </div>

    <div class="rk-dl-content">
        
        <div class="rk-dl-view active" id="view-podglad">
            <div class="rk-dl-preview-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.webp" alt="Podgląd infografiki przedstawiającej normę PN-EN 1264" class="rk-dl-preview-img" loading="lazy">
            </div>
        </div>

        <div class="rk-dl-view" id="view-pobieranie">
            <div class="rk-dl-download-wrapper">
                <div class="rk-dl-file-specs">
                    <span class="rk-dl-spec-badge">Format: PDF</span>
                    <span class="rk-dl-spec-badge">Rozdzielczość: Druk (300 DPI)</span>
                    <span class="rk-dl-spec-badge">Rozmiar A4 / A3</span>
                </div>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.pdf" download="Infografika-PN-EN-1264.pdf" class="rk-dl-action-btn">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz Dokument PDF
                </a>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <div class="rk-dl-footer-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M15 9.354a4 4 0 1 0 0 5.292"></path></svg>
        </div>
        <p class="rk-dl-footer-text">
            <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong>
            Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku. Zobacz nasze inne <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekty z pompą ciepła</a>.
        </p>
    </div>

    <div class="rk-dl-tags">
        <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-dl-tag"># wylewka betonowa na podłogówkę</a>
        <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-dl-tag"># kalkulator doboru pompy</a>
        <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/" class="rk-dl-tag"># pojemność wodna instalacji pdf</a>
        <a href="#" class="rk-dl-tag"># schemat podłogówki do druku</a>
        <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-dl-tag"># rozdzielacz podłogówki schemat</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkDlNav .rk-dl-nav-btn');
    
    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-view');
            
            // Twarde usunięcie klas 'active' - brak animacji
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrycie widoków (użycie prostego if)
            var viewPodglad = document.getElementById('view-podglad');
            var viewPobieranie = document.getElementById('view-pobieranie');
            
            if (viewPodglad !== null) { viewPodglad.classList.remove('active'); }
            if (viewPobieranie !== null) { viewPobieranie.classList.remove('active'); }
            
            // Włączenie odpowiedniego przycisku i widoku
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Spadek temperatury (ΔT): Różnica między temperaturą zasilania a powrotu.</title>
		<link>https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 09 Jan 2026 09:36:16 +0000</pubDate>
				<category><![CDATA[Hydraulika budowlana]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Regulacja hydrauliczna]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[delta t]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kocioł kondensacyjny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja przepływu]]></category>
		<category><![CDATA[spadek temperatury]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3122</guid>

					<description><![CDATA[<p>Spadek temperatury (ΔT) to jeden z tych parametrów, które na pierwszy rzut oka wydają się czysto techniczne, ale w praktyce decydują o komforcie, rachunkach i trwałości całej instalacji. W artykule wyjaśniamy, czym dokładnie jest spadek temperatury (ΔT) w ogrzewaniu podłogowym, dlaczego projektanci przywiązują do niego tak dużą wagę oraz jak wpływa on na równomierność grzania, pracę pompy obiegowej i sprawność kotła lub pompy ciepła. To praktyczny przewodnik, który pozwala zrozumieć nie tylko teorię, ale i realne konsekwencje złych decyzji projektowych i regulacyjnych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">Spadek temperatury (ΔT): Różnica między temperaturą zasilania a powrotu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pierwszym i najważniejszym parametrem, który diagnozuje zdrowie każdej wodnej instalacji grzewczej, jest&nbsp;<strong>spadek temperatury (ΔT)</strong>. W kontekście&nbsp;<strong>wodnego ogrzewania podłogowego</strong>&nbsp;ten właśnie wskaźnik – będący różnicą między temperaturą wody zasilającej a temperaturą wody powrotnej z pętli grzewczej – decyduje nie tylko o naszym odczuwalnym komforcie cieplnym, ale także o ekonomiczności i trwałości całego systemu. Zrozumienie jego roli to klucz do świadomego projektowania, regulacji i eksploatacji nowoczesnego, niskotemperaturowego ogrzewania.</p>



<h2 class="wp-block-heading">Czym dokładnie jest spadek temperatury ΔT i jak go obliczyć?</h2>



<p class="wp-block-paragraph">W najprostszym ujęciu,&nbsp;<strong>spadek temperatury (ΔT)</strong>&nbsp;to fizyczny efekt oddawania ciepła przez nośnik energii (wodę) do otoczenia (płyta grzewcza, posadzka, pomieszczenie). Gdy ciepła woda przepływa przez zatopioną w wylewce rurę, stopniowo ochładza się, oddając swoją energię. Różnica między jej temperaturą na początku i na końcu tej drogi jest właśnie&nbsp;<strong>spadkiem temperatury</strong>.</p>



<p class="wp-block-paragraph"><strong>Obliczenie ΔT jest banalnie proste:</strong><br><code>ΔT = T_zasilania – T_powrotu</code></p>



<p class="wp-block-paragraph">Przykład: Jeśli na manometrze rozdzielacza lub czujnikach odczytamy, że do <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a> wpływa woda o temperaturze <strong>35°C</strong>, a po przepłynięciu przez nią wraca do źródła ciepła z temperaturą <strong>30°C</strong>, to:<br><code>ΔT = 35°C – 30°C = 5°C</code></p>



<p class="wp-block-paragraph">Wartość ta mówi nam, że każdy kilogram wody przepływający przez tę pętlę traci 5 stopni Celsjusza, oddając konkretną, obliczalną ilość energii.</p>



<h3 class="wp-block-heading">Fizyka za efektem: dlaczego woda się ochładza?</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/">Ogrzewanie podłogowe</a> działa jak ogromny, niskotemperaturowy wymiennik ciepła. Woda, będąc nośnikiem energii, transportuje ciepło z kotła lub pompy ciepła do płyty grzewczej. Energia ta jest następnie akumulowana w masywnej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewce betonowej</a> i stopniowo, w sposób równomierny, wypromieniowywana do pomieszczenia. Każdy metr bieżący rury to pewna strata ciśnienia i oddanie pewnej porcji ciepła. Im dłuższa i bardziej obciążona cieplnie pętla, tym większy (przy stałym przepływie) może być spadek temperatury.</p>



<h2 class="wp-block-heading">Optymalne wartości ΔT: dlaczego akurat 5-10°C?</h2>



<p class="wp-block-paragraph">W praktyce instalatorskiej i projektowej przyjęło się, że dla&nbsp;<strong>ogrzewania podłogowego</strong>&nbsp;optymalny&nbsp;<strong>spadek temperatury ΔT</strong>&nbsp;mieści się w przedziale&nbsp;<strong>od 5 do 10 stopni Celsjusza</strong>. Często spotykaną wartością projektową jest&nbsp;<strong>8°C</strong>&nbsp;lub&nbsp;<strong>10°C</strong>, podczas gdy dla systemów z kotłami kondensacyjnymi dąży się często do&nbsp;<strong>5°C</strong>. Skąd te konkretne liczby?</p>



<h3 class="wp-block-heading">Komfort użytkownika a rozkład temperatury podłogi.</h3>



<p class="wp-block-paragraph"><strong>Niski spadek temperatury (np. 3-5°C)</strong>&nbsp;gwarantuje niezwykle równomierny rozkład temperatury na powierzchni podłogi. Różnica między miejscem, gdzie woda &#8222;wchodzi&#8221; do pętli, a gdzie z niej &#8222;wychodzi&#8221;, jest praktycznie nieodczuwalna dla stóp. Cała podłoga jest przyjemnie, jednolicie ciepła.<br><strong>Wysoki spadek temperatury (np. powyżej 12-15°C)</strong>&nbsp;prowadzi do powstania tzw.&nbsp;<strong>&#8222;efektu tygrysa&#8221;</strong>&nbsp;– podłoga staje się &#8222;pasiasta&#8221;, z wyraźnie cieplejszymi i chłodniejszymi strefami. Jest to niekomfortowe, a czasem wręcz drażniące.</p>



<h3 class="wp-block-heading">Wpływ na źródło ciepła i efektywność systemu.</h3>



<p class="wp-block-paragraph">To jeden z najistotniejszych aspektów technicznych.</p>



<ul class="wp-block-list">
<li><strong>Dla <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotła kondensacyjnego</a>:</strong> Jego maksymalna sprawność (nawet powyżej 100% w odniesieniu do wartości opałowej) osiągana jest w tzw. <strong>trybie kondensacji</strong>, gdy temperatura wody powrotnej spada poniżej <strong>ok. 55°C</strong> (dla gazu ziemnego). Im niższa temperatura powrotu, tym lepiej. Dlatego projektując podłogówkę współpracującą z kondensacyjnym kotłem gazowym, <strong>celowo dąży się do niskiego ΔT (np. 5°C)</strong>. Pozwala to utrzymać temperaturę powrotu na bardzo niskim poziomie (np. zasilanie 35°C, powrót 30°C), zapewniając ciągłą, wysokosprawną pracę kotła.</li>



<li><strong>Dla <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>:</strong> Analogicznie – pompy ciepła najefektywniej (z najwyższym współczynnikiem COP) pracują na niskich parametrach temperaturowych. Niski ΔT i niska średnia temperatura systemu oznaczają mniejszą pracę sprężarki i niższe koszty eksploatacyjne.</li>
</ul>



<h3 class="wp-block-heading">Wymiarowanie hydrauliczne i praca pompy obiegowej.</h3>



<p class="wp-block-paragraph">Parametr ΔT jest bezpośrednio powiązany z wymaganym&nbsp;<strong>przepływem wody</strong>&nbsp;przez pętlę. Zależność tę opisuje podstawowy wzór z termodynamiki:</p>



<p class="wp-block-paragraph"><code>Q = m * c * ΔT</code></p>



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



<ul class="wp-block-list">
<li><code>Q</code>&nbsp;– moc cieplna potrzebna dla pętli [W]</li>



<li><code>m</code>&nbsp;– masowy strumień przepływu [kg/s]</li>



<li><code>c</code>&nbsp;– ciepło właściwe wody (~4180 J/(kg·K))</li>



<li><code>ΔT</code>&nbsp;– projektowy spadek temperatury [K]</li>
</ul>



<p class="wp-block-paragraph"><strong>Przekształcając wzór, widzimy kluczową zależność:</strong><br><code>m = Q / (c * ΔT)</code></p>



<p class="wp-block-paragraph"><strong>Oznacza to, że dla tej samej mocy grzewczej (Q):</strong></p>



<ul class="wp-block-list">
<li><strong>Przy wyższym ΔT (np. 10°C)</strong>&nbsp;wymagany&nbsp;<strong>przepływ masowy (m) będzie MNIEJSZY</strong>.</li>



<li><strong>Przy niższym ΔT (np. 5°C)</strong>&nbsp;wymagany&nbsp;<strong>przepływ masowy (m) będzie WIĘKSZY</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy:</strong>&nbsp;Dla pętli o mocy grzewczej Q = 1000 W (1 kW).</p>



<ul class="wp-block-list">
<li><strong>Wariant A (ΔT = 10°C):</strong>&nbsp;<code>m = 1000 / (4180 * 10) ≈ 0.0239 kg/s ≈ 86 kg/h</code></li>



<li><strong>Wariant B (ΔT = 5°C):</strong>&nbsp;<code>m = 1000 / (4180 * 5) ≈ 0.0478 kg/s ≈ 172 kg/h</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Wniosek:</strong>&nbsp;Niższy ΔT wymaga&nbsp;<strong>dwukrotnie większego przepływu</strong>! To ma bezpośrednie konsekwencje:</p>



<ul class="wp-block-list">
<li><strong>Większa średnica rur</strong>&nbsp;lub większa liczba pętli, aby uniknąć nadmiernych oporów hydraulicznych.</li>



<li><strong>Potrzeba bardziej wydajnej (lub pracującej z wyższą prędkością) pompy obiegowej</strong>, co może zwiększyć nieznacznie zużycie energii elektrycznej.</li>



<li><strong>Lepsza równomierność grzania i wyższa sprawność źródła ciepła.</strong></li>
</ul>



<p class="wp-block-paragraph">Wybór konkretnego ΔT to więc zawsze&nbsp;<strong>kompromis</strong>&nbsp;między równomiernością temperatury i sprawnością źródła ciepła a kosztami inwestycyjnymi (większe rury, pompa) i hydraulicznymi.</p>



<h2 class="wp-block-heading">Kluczowy etap: projektowanie ogrzewania podłogowego w kontekście spadku temperatury ΔT.</h2>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">Projektowanie instalacji ogrzewania podłogowego</a></strong> to proces, w którym <strong>spadek temperatury ΔT</strong> jest nie tyle efektem, co <strong>jednym z założonych, kluczowych parametrów wejściowych</strong>. Doświadczony projektant zaczyna od analizy zapotrzebowania cieplnego budynku, a następnie, znając charakterystykę źródła ciepła, <strong>świadomie dobiera wartość ΔT</strong>.</p>



<p class="wp-block-paragraph"><strong>Proces projektowania krok po kroku z uwzględnieniem ΔT:</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Obliczenie strat cieplnych</strong>&nbsp;dla każdego pomieszczenia (moc Q).</li>



<li><strong>Dobór źródła ciepła</strong>&nbsp;i analiza jego optymalnych parametrów pracy (np. dla kotła kondensacyjnego dążymy do niskiej temperatury powrotu).</li>



<li><strong>Przyjęcie założenia projektowego ΔT</strong>&nbsp;(np. 5°C, 8°C lub 10°C).</li>



<li><strong>Dobór rozstawu i średnicy rur</strong>&nbsp;(np. 16×2,0 mm, rozstaw 15-30 cm).</li>



<li><strong>Obliczenie wymaganego przepływu</strong>&nbsp;dla każdej pętli na podstawie wzoru&nbsp;<code>m = Q / (c * ΔT)</code>.</li>



<li><strong>Obliczenie długości pętli</strong>&nbsp;– musi ona być ograniczona, aby przy projektowym przepływie nie powstały nadmierne opory i aby&nbsp;<strong>rzeczywisty ΔT nie przekroczył założonej wartości</strong>. Zbyt długa pętla przy zbyt małym przepływie spowoduje zbyt duże wychłodzenie wody i nierównomierności grzania.</li>



<li><strong>Podział na pętle i zestawienie rozdzielacza</strong>&nbsp;– pętle w jednym pomieszczeniu powinny mieć zbliżoną długość (różnica do 10-15%), aby przy jednakowym ustawieniu na rozdzielaczu miały podobny przepływ i ΔT.</li>
</ol>



<p class="wp-block-paragraph"><strong>Błąd projektowy najczęściej popełniany:</strong>&nbsp;Przyjęcie zbyt małego ΔT (np. 3°C) bez odpowiedniego zwiększenia przepływu i średnicy rur, co prowadzi do trudności w wyregulowaniu systemu. Albo przeciwnie – przyjęcie zbyt wysokiego ΔT (np. 15°C) dla skrócenia pętli, co kończy się nierównomiernym grzaniem.</p>



<style>
.wp-table-wrap {
  overflow-x: auto;
  margin: 40px 0;
}

.wp-comparison-table {
  width: 100%;
  min-width: 800px;
  border-collapse: collapse;
  font-family: Arial, sans-serif;
  font-size: 15px;
}

.wp-comparison-table thead {
  background: #f3f4f6;
}

.wp-comparison-table th,
.wp-comparison-table td {
  padding: 14px 16px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}

.wp-comparison-table th {
  text-align: left;
  font-weight: 600;
}

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

.wp-comparison-table tbody tr:hover {
  background: #f1f5f9;
}

.wp-comparison-table strong {
  color: #111827;
}

@media (max-width: 768px) {
  .wp-comparison-table {
    font-size: 14px;
  }
}
</style>

<div class="wp-table-wrap">
  <table class="wp-comparison-table">
    <thead>
      <tr>
        <th>Parametr</th>
        <th>Niski ΔT (np. 4–6°C)</th>
        <th>Optymalny ΔT (np. 8–10°C)</th>
        <th>Zbyt wysoki ΔT (np. &gt;12°C)</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th>Równomierność temperatury podłogi</th>
        <td><strong>Idealna</strong>, brak odczuwalnych różnic.</td>
        <td><strong>Dobra</strong>, minimalne różnice.</td>
        <td><strong>Słaba</strong>, wyraźne pasy ciepła i chłodu („efekt tygrysa”).</td>
      </tr>
      <tr>
        <th>Temperatura powrotu</th>
        <td><strong>Bardzo niska</strong>, idealna dla kotła kondensacyjnego i pompy ciepła.</td>
        <td><strong>Niska</strong>, zazwyczaj akceptowalna dla nowoczesnych źródeł ciepła.</td>
        <td><strong>Wyższa</strong>, może wyprowadzić kocioł kondensacyjny z trybu kondensacji.</td>
      </tr>
      <tr>
        <th>Wymagany przepływ</th>
        <td><strong>Wysoki</strong> (większe rury, mocniejsza pompa).</td>
        <td><strong>Umiarkowany</strong> (standardowe rozwiązania).</td>
        <td><strong>Niski</strong> (mniejsze rury, oszczędność na pompie).</td>
      </tr>
      <tr>
        <th>Koszty inwestycyjne</th>
        <td><strong>Wyższe</strong> (większe średnice rur, droższa pompa).</td>
        <td><strong>Optymalne</strong> (standard).</td>
        <td><strong>Niższe</strong> (możliwe mniejsze średnice).</td>
      </tr>
      <tr>
        <th>Koszty eksploatacyjne</th>
        <td><strong>Najniższe</strong> (maksymalna sprawność źródła).</td>
        <td><strong>Niskie</strong> (dobra sprawność).</td>
        <td><strong>Wyższe</strong> (obniżona sprawność źródła).</td>
      </tr>
      <tr>
        <th>Stabilność pracy</th>
        <td><strong>Wysoka</strong>, system ma dużą bezwładność.</td>
        <td><strong>Dobra</strong>.</td>
        <td><strong>Obniżona</strong>, możliwa praca cykliczna (częste włączanie/wyłączanie).</td>
      </tr>
    </tbody>
  </table>
</div>



<h2 class="wp-block-heading">Praktyczna regulacja: jak osiągnąć i zmierzyć projektowy ΔT?</h2>



<p class="wp-block-paragraph">Zaprojektowanie systemu to połowa sukcesu. Druga połowa to&nbsp;<strong>precyzyjna regulacja hydrauliczna</strong>, czyli tzw.&nbsp;<strong>wyważenie instalacji</strong>. Jej celem jest zapewnienie, że&nbsp;<strong>każda pętla grzewcza otrzyma dokładnie taki przepływ, aby osiągnąć założony w projekcie spadek temperatury ΔT</strong>.</p>



<p class="wp-block-paragraph"><strong>Niezbędne narzędzia:</strong></p>



<ol start="1" class="wp-block-list">
<li><a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">Rozdzielacz </a>z zaworami regulacyjnymi (z podziałką lub z nastawą przy pomocy klucza).</li>



<li>Termometry stykowe (najlepiej elektroniczne z dwoma sondami).</li>



<li><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">Projekt instalacji</a> z podanymi przepływami lub mocami dla pętli.</li>
</ol>



<p class="wp-block-paragraph"><strong>Procedura regulacji krok po kroku (upraszczając):</strong></p>



<ol start="1" class="wp-block-list">
<li>Uruchom system grzewczy na projektowej temperaturze zasilania.</li>



<li>Zamknij wszystkie zawory regulacyjne na rozdzielaczu powrotnym.</li>



<li>Dla pierwszej pętli: Odczytać z projektu wymagany przepływ (np. 1,5 l/min). Otworzyć jej zawór na określoną liczbę obrotów (wg tabeli producenta) lub użyć przepływomierza (jeśli jest zamontowany).</li>



<li><strong>Pomiar ΔT:</strong>&nbsp;Przyłożyć sondy termometru do rur zasilania i powrotu danej pętli tuż przy rozdzielaczu. Poczekać na ustabilizowanie się odczytu.</li>



<li><strong>Analiza wyniku:</strong>
<ul class="wp-block-list">
<li>Jeśli&nbsp;<strong>ΔT jest ZA WYSOKI</strong>&nbsp;(np. 12°C zamiast planowanych 8°C) → oznacza to&nbsp;<strong>ZA MAŁY PRZEPŁYW</strong>. Należy nieco otworzyć zawór regulacyjny.</li>



<li>Jeśli&nbsp;<strong>ΔT jest ZA NISKI</strong>&nbsp;(np. 4°C zamiast 8°C) → oznacza to&nbsp;<strong>ZA DUŻY PRZEPŁYW</strong>. Należy przymknąć zawór regulacyjny.</li>
</ul>
</li>



<li>Powtórzyć kroki 3-5 dla każdej pętli. Regulacja jest iteracyjna – zmiana przepływu w jednej pętli może nieznacznie wpłynąć na inne, dlatego pomiary warto powtórzyć.</li>
</ol>



<p class="wp-block-paragraph"><strong>Przykład z życia:</strong>&nbsp;Pętla w salonie ma projektowy ΔT = 8°C. Po wstępnym ustawieniu przepływu, pomiar daje T_zas = 40°C, T_pow = 35°C, czyli ΔT = 5°C. Jest za niski. Zawężamy zawór, zmniejszając przepływ. Po czasie stabilizacji pomiar wskazuje T_zas = 40°C, T_pow = 32°C, czyli ΔT = 8°C. Cel osiągnięty.</p>



<h2 class="wp-block-heading">Wykres zależności: jak ΔT zmienia się w czasie?</h2>



<p class="wp-block-paragraph">Poniższy opis przedstawia typowy&nbsp;<strong>wykres czasowy temperatury zasilania i powrotu</strong>&nbsp;w prawidłowo wyregulowanym systemie ogrzewania podłogowego.</p>



<style>
.chart-container {
  width: 100%;
  max-width: 900px;
  margin: 40px auto;
}

.chart-title {
  text-align: center;
  font-weight: 600;
  margin-bottom: 10px;
}

.chart-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  font-size: 14px;
  margin-top: 10px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.legend-line {
  width: 20px;
  height: 3px;
  background: red;
}
</style>

<div class="chart-container">
  <div class="chart-title">
    Przebieg temperatury w czasie pracy instalacji
  </div>

  <svg viewBox="0 0 900 450" width="100%" height="auto">

    <!-- Osie -->
    <line x1="80" y1="40" x2="80" y2="380" stroke="#333" stroke-width="2"/>
    <line x1="80" y1="380" x2="860" y2="380" stroke="#333" stroke-width="2"/>

    <!-- Opisy osi -->
    <text x="20" y="140" font-size="14" transform="rotate(-90 20,140)">
      Temperatura [°C]
    </text>
    <text x="820" y="415" font-size="14">Czas</text>

    <!-- Skala temperatur -->
    <g font-size="12" fill="#555">
      <text x="40" y="380">20</text>
      <text x="40" y="330">25</text>
      <text x="40" y="280">30</text>
      <text x="40" y="230">35</text>
      <text x="40" y="180">40</text>
      <text x="40" y="130">45</text>
    </g>

    <!-- Linie pomocnicze -->
    <g stroke="#ddd" stroke-dasharray="4">
      <line x1="80" y1="330" x2="860" y2="330"/>
      <line x1="80" y1="280" x2="860" y2="280"/>
      <line x1="80" y1="230" x2="860" y2="230"/>
      <line x1="80" y1="180" x2="860" y2="180"/>
      <line x1="80" y1="130" x2="860" y2="130"/>
    </g>

    <!-- Wykres -->
    <polyline
      points="
      80,380
      180,330
      300,250
      420,170
      520,130
      620,130
      720,250
      860,380"
      fill="none"
      stroke="red"
      stroke-width="4"
      stroke-linecap="round"
      stroke-linejoin="round"/>

    <!-- Etapy -->
    <g font-size="13" fill="#000">
      <text x="150" y="410">Start nagrzewania</text>
      <text x="430" y="410">Stan ustalony</text>
      <text x="690" y="410">Wyłączenie źródła</text>
    </g>

  </svg>

  <div class="chart-legend">
    <div class="legend-item">
      <div class="legend-line"></div>
      Temperatura instalacji
    </div>
  </div>
</div>



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



<ol start="1" class="wp-block-list">
<li><strong>Faza nagrzewania:</strong>&nbsp;Po włączeniu źródła ciepła, temperatura zasilania rośnie szybko. Powrót jest jeszcze zimny, więc&nbsp;<strong>ΔT jest bardzo duży</strong>&nbsp;(nawet 15-20°C). To stan przejściowy.</li>



<li><strong>Stan ustalony (praca nominalna):</strong>&nbsp;System osiągnął założoną moc. Temperatury się stabilizują, a&nbsp;<strong>spadek temperatury ΔT utrzymuje się na stałym, projektowym poziomie</strong>&nbsp;(np. 8°C). Linie są równoległe. To docelowy tryb pracy.</li>



<li><strong>Wyłączenie źródła:</strong>&nbsp;Zasilanie zostaje odcięte. Temperatura zasilania gwałtownie spada, a masywna wylewka jeszcze długo oddaje ciepło, podgrzewając wodę w rurach. W tej fazie&nbsp;<strong>ΔT może stać się ujemne</strong>&nbsp;(powrót cieplejszy niż zasilanie) – to normalne zjawisko w systemach o dużej bezwładności.</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-1767948352272"><strong class="schema-faq-question"><strong>Czym dokładnie jest spadek temperatury (ΔT) w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">To różnica między temperaturą wody zasilającej a temperaturą wody powracającej z pętli grzewczej. Informuje, ile energii oddała woda do podłogi.</p> </div> <div class="schema-faq-section" id="faq-question-1767948363790"><strong class="schema-faq-question"><strong>Jaki spadek temperatury ΔT jest najlepszy dla podłogówki?</strong></strong> <p class="schema-faq-answer">Najczęściej przyjmuje się zakres 5–10°C. Niższe wartości dają lepszą równomierność grzania, wyższe zmniejszają wymagany przepływ.</p> </div> <div class="schema-faq-section" id="faq-question-1767948375842"><strong class="schema-faq-question"><strong>Czy zbyt wysoki ΔT jest problemem?</strong></strong> <p class="schema-faq-answer">Tak. Może powodować nierówną temperaturę podłogi („efekt tygrysa”), spadek komfortu i gorszą sprawność źródła ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1767948392593"><strong class="schema-faq-question"><strong>Jak ΔT wpływa na pracę pompy ciepła lub kotła kondensacyjnego?</strong></strong> <p class="schema-faq-answer">Niski ΔT oznacza niską temperaturę powrotu, co poprawia sprawność pompy ciepła i umożliwia pełną kondensację w kotle gazowym.</p> </div> <div class="schema-faq-section" id="faq-question-1767948404241"><strong class="schema-faq-question"><strong>Czy można zmienić ΔT w istniejącej instalacji?</strong></strong> <p class="schema-faq-answer">Tak, poprzez regulację przepływów na rozdzielaczu. Wymaga to jednak pomiarów temperatury i świadomego wyważenia hydraulicznego systemu.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Podsumowując</strong>,&nbsp;<strong>spadek temperatury ΔT</strong>&nbsp;nie jest tajemniczym parametrem, lecz&nbsp;<strong>fundamentalnym narzędziem do diagnostyki, projektowania i regulacji wodnego ogrzewania podłogowego</strong>. Świadome nim zarządzanie – poprzez dobór odpowiedniej wartości projektowej, precyzyjne wyważenie hydrauliczne i współpracę z efektywnym źródłem ciepła – przekłada się bezpośrednio na&nbsp;<strong>niemal niedostrzegalny, ale doskonały komfort cieplny</strong>&nbsp;oraz&nbsp;<strong>znaczące oszczędności na rachunkach za energię</strong>&nbsp;przez długie lata eksploatacji. To parametr, który w pełni zasługuje na miano serca i mózgu nowoczesnej instalacji grzewczej.</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="ZIBd1RBph4"><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=DD0iSzsdKN#?secret=ZIBd1RBph4" data-secret="ZIBd1RBph4" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">Spadek temperatury (ΔT): Różnica między temperaturą zasilania a powrotu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy warto montować sterowniki do ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 11 Dec 2025 10:36:22 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Smart home]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[smart home]]></category>
		<category><![CDATA[sterownik pogodowy]]></category>
		<category><![CDATA[sterownik pokojowy]]></category>
		<category><![CDATA[sterowniki do podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2934</guid>

					<description><![CDATA[<p>Czy warto montować sterowniki do ogrzewania podłogowego? To pytanie zadaje sobie dziś większość osób planujących nowoczesny system grzewczy w swoim domu. Podłogówka sama w sobie daje komfort, ale dopiero odpowiednia automatyka pozwala realnie oszczędzać, podnosić wygodę i wykorzystać pełen potencjał instalacji. W zajawce wyjaśniamy, dlaczego sterowniki stają się nieodłącznym elementem współczesnych systemów grzewczych i jak wpływają na ich efektywność, trwałość oraz codzienną eksploatację.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-green: #10b981;
    --rk-intro-green-light: #dcfce7;
    --rk-intro-gray: #475569;
    --rk-intro-gray-light: #f8fafc;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border: 2px solid var(--rk-intro-dark);
    /* Brak border-radius - styl surowy, techniczny */
}

/* Sekcja Hook i Szybka Odpowiedź */
.rk-intro-hero {
    padding: 45px 50px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
}

.rk-intro-hook {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-blue-light);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-intro-answer-box {
    background: #1e293b;
    border-left: 6px solid var(--rk-intro-green);
    padding: 25px 30px;
}

.rk-intro-answer-title {
    font-size: 13px;
    color: var(--rk-intro-green);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-intro-answer-text {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    margin: 0;
    color: #f8fafc;
}

.rk-intro-answer-text strong {
    color: #ffffff;
    font-weight: 900;
    background: var(--rk-intro-green);
    padding: 2px 8px;
    border-radius: 4px;
}

/* Sekcja merytoryczna */
.rk-intro-content {
    padding: 40px 50px;
    font-size: 16px;
    color: var(--rk-intro-gray);
    line-height: 1.7;
}

.rk-intro-content p {
    margin: 0 0 20px 0;
}

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

/* Interaktywny Nawigator Artykułu (Brak animacji) */
.rk-intro-nav {
    margin-top: 40px;
    border: 1px solid var(--rk-intro-border);
    background: var(--rk-intro-gray-light);
}

.rk-intro-nav-header {
    background: var(--rk-intro-border);
    padding: 15px 30px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    font-size: 15px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-intro-nav-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-intro-border);
    background: #ffffff;
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: none;
    border-bottom: 3px solid transparent;
    border-right: 1px solid var(--rk-intro-border);
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-gray);
    cursor: pointer;
}

.rk-intro-tab-btn:last-child {
    border-right: none;
}

.rk-intro-tab-btn:hover {
    background: var(--rk-intro-gray-light);
}

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

.rk-intro-panels {
    padding: 30px;
    background: #ffffff;
}

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

.rk-intro-panel.is-active {
    display: block;
}

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

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

@media (max-width: 768px) {
    .rk-intro-container { margin: 20px auto; border-left: none; border-right: none; }
    .rk-intro-hero, .rk-intro-content { padding: 30px 20px; }
    .rk-intro-hero h2 { font-size: 24px; }
    .rk-intro-answer-box { padding: 20px; }
    .rk-intro-answer-text { font-size: 16px; }
    .rk-intro-nav-tabs { flex-direction: column; }
    .rk-intro-tab-btn { border-right: none; border-bottom: 1px solid var(--rk-intro-border); border-left: 4px solid transparent; text-align: left; }
    .rk-intro-tab-btn.is-active { border-left-color: var(--rk-intro-blue); border-bottom-color: var(--rk-intro-border); }
    .rk-intro-panels { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Czy warto montować sterowniki do ogrzewania podłogowego? Szybka odpowiedź",
    "description": "Bezpośrednia inżynierska odpowiedź na pytanie o opłacalność automatyki podłogówki. Poznaj argumenty, które pozwolą Ci zaoszczędzić od 15% do 25% energii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Kluczowe wskaźniki efektywności (KPI) dla automatyki ogrzewania płaszczyznowego",
    "description": "Wstępne zestawienie danych wejściowych dotyczących redukcji kosztów eksploatacyjnych po montażu sterowników strefowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do ogrzewania podłogowego",
      "automatyka strefowa do podłogówki czy warto",
      "koszty eksploatacji budynku z pompą ciepła",
      "bezwładność termiczna jastrychu a sterowanie",
      "optymalizacja sprawności cop kotła"
    ],
    "measurementTechnique": "Deklaracja początkowego wskaźnika redukcji zużycia energii (15-25%) uzyskanego poprzez strefową blokadę przepływu czynnika grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż sterowników jest w 100% technicznie i ekonomicznie uzasadniony.",
        "Automatyka zabezpiecza materiał posadzki przed przegrzewaniem i optymalizuje COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-wstep",
    "name": "Nawigator Narzędzi Inżynierskich",
    "description": "Moduł wprowadzający czytelnika do zagnieżdżonych w artykule interaktywnych kalkulatorów i symulatorów procesów cieplnych.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-hero">
        <div class="rk-intro-hook">
            <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="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            Budowa bez ściemy
        </div>
        <h2>Czy warto montować sterowniki do ogrzewania podłogowego?</h2>
        
        <div class="rk-intro-answer-box">
            <div class="rk-intro-answer-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Inżynierski Werdykt
            </div>
            <p class="rk-intro-answer-text">
                <strong>TAK.</strong> Montaż sterowników do wodnego ogrzewania podłogowego jest opłacalny i technicznie uzasadniony. Pozwala obniżyć koszty eksploatacji budynku o <strong>15% do 25%</strong>, brutalnie eliminując zjawisko permanentnego przegrzewania pomieszczeń.
            </p>
        </div>
    </div>

    <div class="rk-intro-content">
        <p>Instalator mówi, że pompa ciepła &#8222;sama sobie poradzi&#8221;, a Ty zastanawiasz się, czy inwestować w dodatkową elektronikę? Prawda jest taka, że bez precyzyjnego sterowania oddajesz kontrolę nad swoimi rachunkami ślepemu trafowi.</p>
        
        <p>Automatyka strefowa bezpośrednio dopasowuje wydatek cieplny poszczególnych pętli do rzeczywistego zapotrzebowania, kompensując tym samym wysoką <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność termiczną jastrychu</a>. Bezpośrednia kontrola nad przepływem czynnika grzewczego w każdej strefie z osobna chroni drogi materiał posadzki przed uszkodzeniem termicznym i drastycznie optymalizuje sprawność (COP) Twojej pompy ciepła lub kotła kondensacyjnego.</p>

        <div class="rk-intro-nav">
            <div class="rk-intro-nav-header">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Co potrafią darmowe narzędzia w tym artykule?
            </div>
            
            <div class="rk-intro-nav-tabs">
                <button class="rk-intro-tab-btn is-active" data-show="n-roi">Kalkulator ROI</button>
                <button class="rk-intro-tab-btn" data-show="n-pwm">Symulator Algorytmu</button>
                <button class="rk-intro-tab-btn" data-show="n-ntc">Ochrona Posadzki</button>
            </div>

            <div class="rk-intro-panels">
                <div class="rk-intro-panel is-active" id="n-roi">
                    <h4 class="rk-intro-panel-title">Oblicz, kiedy zwróci Ci się inwestycja</h4>
                    <p class="rk-intro-panel-desc">Poniżej znajdziesz interaktywny kalkulator finansowy. Wpisz powierzchnię swojego domu oraz cenę prądu, aby natychmiast zobaczyć, w ile miesięcy oszczędności pokryją koszt zakupu listwy, siłowników i termostatów.</p>
                </div>
                
                <div class="rk-intro-panel" id="n-pwm">
                    <h4 class="rk-intro-panel-title">Zobacz fizykę w akcji (Algorytm PWM)</h4>
                    <p class="rk-intro-panel-desc">Oddajemy w Twoje ręce symulator inżynierski. Przekonaj się na własne oczy, jak uchyb temperatury wpływa na czas otwarcia siłownika przy wylewce betonowej, a jak przy anhydrytowej. Koniec z wróżeniem z fusów.</p>
                </div>
                
                <div class="rk-intro-panel" id="n-ntc">
                    <h4 class="rk-intro-panel-title">Ochrona paneli przed stopieniem (Czujnik NTC)</h4>
                    <p class="rk-intro-panel-desc">Wizualizacja trybu dwukanałowego. Sprawdź interaktywny model pokazujący, co dzieje się z Twoimi panelami winylowymi, gdy przekroczysz barierę 27°C i dlaczego czujnik w wylewce to absolutna konieczność.</p>
                </div>
            </div>
        </div>
        
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const navBtns = document.querySelectorAll('.rk-intro-tab-btn');
    const navPanels = document.querySelectorAll('.rk-intro-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Twarde przełączanie (bez animacji, bez &&)
            const targetId = this.getAttribute('data-show');
            
            navBtns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            
            navPanels.forEach(function(p) {
                p.classList.remove('is-active');
            });

            this.classList.add('is-active');
            
            const activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('is-active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-darker: #0b1120;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #e0f2fe;
    --rk-flow-green: #10b981;
    --rk-flow-orange: #f59e0b;
    --rk-flow-red: #ef4444;
    --rk-flow-gray: #475569;
    --rk-flow-bg: #ffffff;
    --rk-flow-border: #e2e8f0;
}

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

.rk-flow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-flow-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.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 0 15px 0;
    line-height: 1.7;
}
.rk-flow-header p:last-child { margin-bottom: 0; }

.rk-flow-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-flow-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-flow-body {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-flow-text-section {
    background: var(--rk-flow-bg);
    border: 1px solid var(--rk-flow-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-flow-text-section p {
    font-size: 15px;
    color: var(--rk-flow-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-flow-highlight {
    background: var(--rk-flow-blue-light);
    color: var(--rk-flow-blue);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

/* Interaktywny Symulator Pętli */
.rk-flow-interactive {
    background: var(--rk-flow-darker);
    border-radius: 20px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.3);
}

.rk-flow-interactive-title {
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 30px 0;
    text-align: center;
}

.rk-flow-btn-trigger {
    background: var(--rk-flow-orange);
    color: #ffffff;
    border: none;
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 800;
    border-radius: 12px;
    cursor: pointer;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 40px;
    z-index: 10;
}

.rk-flow-btn-trigger:hover {
    transform: translateY(-3px);
    background: #d97706;
}

.rk-flow-btn-trigger:disabled {
    background: #475569;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Kontener SVG */
.rk-flow-svg-wrap {
    width: 100%;
    max-width: 700px;
    height: 250px;
    position: relative;
}

.rk-svg-component {
    fill: #1e293b;
    stroke: #334155;
    stroke-width: 2;
    rx: 8;
    transition: all 0.3s;
}

.rk-svg-text {
    fill: #cbd5e1;
    font-size: 12px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-anchor: middle;
}

.rk-svg-wire {
    fill: none;
    stroke: #334155;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rk-svg-signal {
    fill: none;
    stroke: var(--rk-flow-blue);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
}

.rk-svg-sun {
    fill: var(--rk-flow-orange);
    opacity: 0;
    transform: scale(0.5);
    transform-origin: 50px 50px;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Stany Animacji (Dodawane przez JS) */
.state-step-1 .rk-svg-sun { opacity: 1; transform: scale(1); animation: rkPulseSun 2s infinite; }
.state-step-2 .rk-svg-comp-thermostat { fill: var(--rk-flow-blue); stroke: #38bdf8; }
.state-step-2 .rk-svg-text-thermostat { fill: #ffffff; }
.state-step-3 .rk-svg-signal-1 { animation: rkRunSignal 1s forwards linear; }
.state-step-4 .rk-svg-comp-listwa { fill: var(--rk-flow-blue); stroke: #38bdf8; }
.state-step-5 .rk-svg-signal-2 { animation: rkRunSignal 1.5s forwards linear; }
.state-step-6 .rk-svg-comp-actuator { fill: var(--rk-flow-red); stroke: #fca5a5; transition: fill 3s; /* Symulacja powolnego zamknięcia */ }
.state-step-6 .rk-svg-water-flow { stroke-dashoffset: 100; transition: stroke-dashoffset 3s linear; }

@keyframes rkPulseSun {
    0% { filter: drop-shadow(0 0 5px rgba(245, 158, 11, 0.5)); }
    50% { filter: drop-shadow(0 0 15px rgba(245, 158, 11, 0.8)); transform: scale(1.1); }
    100% { filter: drop-shadow(0 0 5px rgba(245, 158, 11, 0.5)); }
}

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

.rk-flow-status-text {
    position: absolute;
    bottom: 20px;
    color: var(--rk-flow-green);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0;
    transition: opacity 0.5s;
}

.rk-flow-status-text.visible {
    opacity: 1;
}

@media (max-width: 768px) {
    .rk-flow-container { margin: 20px auto; border-radius: 16px; }
    .rk-flow-header, .rk-flow-body { padding: 25px 20px; }
    .rk-flow-header h2 { font-size: 24px; }
    .rk-flow-svg-wrap { height: 350px; }
    .rk-flow-interactive { padding: 30px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-sprzezenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak działa automatyka do podłogówki i dlaczego ręczna regulacja pętli generuje straty?",
    "description": "Analiza strat energii rzędu 5-18% wywołanych ręczną regulacją zaworów. Poznaj algorytmy TPI/PWM i zobacz interaktywną wizualizację pętli sprzężenia zwrotnego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-sprzezenie",
    "name": "Analiza strat energii przy ręcznej regulacji podłogówki",
    "description": "Techniczne uwarunkowania bezwładności termicznej jastrychu oraz dynamika siłowników termoelektrycznych w systemach zamkniętej pętli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm TPI PWM",
      "siłowniki termoelektryczne 230V",
      "bezwładność jastrychu 6.5cm",
      "przegrzewanie pomieszczeń podłogówka",
      "listwa sterująca do podłogówki",
      "zamknięte sprzężenie zwrotne ogrzewanie"
    ],
    "measurementTechnique": "Ewaluacja czasu reakcji komponentów automatyki (3 do 5 minut) w stosunku do akumulacyjności termicznej wylewki grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak automatyki prowadzi do przegrzewania pomieszczeń o 1-3°C, generując straty na poziomie 5-18%.",
        "Algorytmy PWM dawkują energię impulsowo zapobiegając przegrzewaniu poprzez wyprzedzające zamykanie pętli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-sprzezenie",
    "name": "Symulator Pętli Sprzężenia Zwrotnego",
    "description": "Edukacyjna aplikacja wizualizująca komunikację między termostatem a listwą centralną i siłownikiem podczas redukcji zysków ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-flow-app">
    <div class="rk-flow-header">
        <h2>Jak działa automatyka do podłogówki i dlaczego ręczna regulacja pętli generuje straty?</h2>
        <p>Ręczne sterowanie wodnym ogrzewaniem podłogowym za pomocą zaworów miniaturowych na rozdzielaczu uniemożliwia stabilizację temperatury wewnętrznej, co prowadzi do permanentnego przegrzewania pomieszczeń o 1°C do 3°C i zwiększenia zużycia energii o <span class="rk-flow-highlight">5% do 18%</span>.</p>
        <p>Wynika to bezpośrednio z <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności termicznej</a> płyty grzewczej (jastrychu o grubości 6,5 cm), która magazynuje potężne ilości energii i oddaje ją przez wiele godzin po mechanicznym odcięciu zasilania.</p>
    </div>

    <div class="rk-flow-body">
        
        <div class="rk-flow-text-section">
            <p>Automatyka strefowa działa w <strong>pętli zamkniętego sprzężenia zwrotnego</strong>. Czujnik pokojowy stale monitoruje temperaturę powietrza oraz temperaturę podłogi. W momencie rejestracji zysków ciepła (np. od nasłonecznienia), sygnał przekazywany jest do listwy centralnej, która odcina zasilanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> (230V/24V). Zastosowanie algorytmu <strong>TPI / PWM</strong> pozwala na pulsacyjne dawkowanie energii zanim nastąpi przekroczenie progu wygody.</p>
        </div>

        <div class="rk-flow-interactive" id="flowSimulator">
            <h3 class="rk-flow-interactive-title">Schemat Komunikacji Komponentów</h3>
            
            <button class="rk-flow-btn-trigger" id="btnSimulate">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                Symuluj nasłonecznienie
            </button>

            <div class="rk-flow-svg-wrap">
                <svg viewBox="0 0 700 250" width="100%" height="100%">
                    
                    <g class="rk-svg-sun">
                        <circle cx="60" cy="50" r="15"/>
                        <line x1="60" y1="20" x2="60" y2="30" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="60" y1="70" x2="60" y2="80" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="30" y1="50" x2="40" y2="50" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="80" y1="50" x2="90" y2="50" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                    </g>
                    
                    <path d="M 550 200 L 150 200" fill="none" stroke="#e2e8f0" stroke-width="12" stroke-linecap="round"/>
                    <path class="rk-svg-water-flow" id="waterFlow" d="M 550 200 L 150 200" fill="none" stroke="#38bdf8" stroke-width="6" stroke-linecap="round" stroke-dasharray="10 15"/>

                    <path class="rk-svg-wire" d="M 150 120 L 350 120"/>
                    <path class="rk-svg-wire" d="M 350 120 L 550 120"/>

                    <path class="rk-svg-signal rk-svg-signal-1" d="M 150 120 L 350 120"/>
                    <path class="rk-svg-signal rk-svg-signal-2" d="M 350 120 L 550 120"/>

                    <rect x="100" y="90" width="100" height="60" class="rk-svg-component rk-svg-comp-thermostat"/>
                    <text x="150" y="115" class="rk-svg-text rk-svg-text-thermostat">TERMOSTAT</text>
                    <text x="150" y="135" class="rk-svg-text rk-svg-text-thermostat">(Pomiar Pokoju)</text>

                    <rect x="300" y="80" width="100" height="80" class="rk-svg-component rk-svg-comp-listwa"/>
                    <text x="350" y="115" class="rk-svg-text rk-svg-text-thermostat">LISTWA</text>
                    <text x="350" y="135" class="rk-svg-text rk-svg-text-thermostat">(Algorytm PWM)</text>

                    <rect x="500" y="90" width="100" height="60" class="rk-svg-component rk-svg-comp-actuator"/>
                    <text x="550" y="115" class="rk-svg-text rk-svg-text-thermostat">SIŁOWNIK NC</text>
                    <text x="550" y="135" class="rk-svg-text rk-svg-text-thermostat">(Zawór Pętli)</text>
                    
                    <line x1="550" y1="150" x2="550" y2="194" stroke="#334155" stroke-width="4"/>
                </svg>
            </div>
            
            <div class="rk-flow-status-text" id="statusMessage">Pętla grzewcza zamknięta (Brak przepływu)</div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSimulate = document.getElementById('btnSimulate');
    const simulator = document.getElementById('flowSimulator');
    const statusMsg = document.getElementById('statusMessage');

    btnSimulate.addEventListener('click', function() {
        // Blokada przycisku
        btnSimulate.disabled = true;
        btnSimulate.innerText = "Przetwarzanie pętli...";
        
        // Reset klas
        simulator.className = "rk-flow-interactive";
        statusMsg.classList.remove('visible');
        
        // Brak operatorów && - czysta kaskada timeoutów symulująca proces inżynierski
        
        // Krok 1: Słońce świeci (Zysk pasywny)
        setTimeout(function() {
            simulator.classList.add('state-step-1');
        }, 100);

        // Krok 2: Termostat rejestruje przekroczenie temperatury
        setTimeout(function() {
            simulator.classList.add('state-step-2');
        }, 1500);

        // Krok 3: Wysłanie sygnału do listwy centralnej
        setTimeout(function() {
            simulator.classList.add('state-step-3');
        }, 2500);

        // Krok 4: Listwa interpretuje algorytm PWM
        setTimeout(function() {
            simulator.classList.add('state-step-4');
        }, 3500);

        // Krok 5: Listwa odcina napięcie 230V do siłownika
        setTimeout(function() {
            simulator.classList.add('state-step-5');
        }, 4500);

        // Krok 6: Siłownik NC (Normalnie Zamknięty) powoli się zamyka (w rzeczywistości 3 minuty)
        setTimeout(function() {
            simulator.classList.add('state-step-6');
            statusMsg.classList.add('visible');
            btnSimulate.innerText = "Zresetuj symulację";
            btnSimulate.disabled = false;
            
            // Re-map the button to act as a reset next time
            btnSimulate.onclick = function() {
                simulator.className = "rk-flow-interactive";
                statusMsg.classList.remove('visible');
                btnSimulate.innerText = "Symuluj nasłonecznienie";
                // Restore original listener logic safely without &&
                setTimeout(function(){
                    location.reload(); // Prosty i bezpieczny reset stanu narzędzia edukacyjnego
                }, 300);
            };
        }, 6000);
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-dark-card: #1e293b;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #e0f2fe;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #475569;
    --rk-calc-gray-light: #f8fafc;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
}

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

.rk-calc-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #0f172a 100%);
    color: #ffffff;
}

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

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

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

.rk-calc-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-calc-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-calc-body {
    padding: 40px 50px;
}

/* Sekcja Case Study */
.rk-calc-casestudy {
    background: var(--rk-calc-gray-light);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px 30px;
    margin-bottom: 40px;
}

.rk-calc-casestudy h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
}

.rk-calc-casestudy p {
    font-size: 15px;
    color: var(--rk-calc-gray);
    line-height: 1.6;
    margin: 0 0 10px 0;
}

.rk-calc-math {
    background: var(--rk-calc-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-calc-blue);
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-calc-dark);
    margin: 15px 0;
    font-weight: 600;
}

/* Kaskadowy układ - 1 kolumna */
.rk-roi-stack {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Karty Suwaków */
.rk-input-card {
    background: var(--rk-calc-bg);
    border: 1px solid var(--rk-calc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
}

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

.rk-input-header label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
}

.rk-input-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-blue-light);
    padding: 5px 15px;
    border-radius: 12px;
}

.rk-slider-wrapper {
    position: relative;
    width: 100%;
}

.rk-calc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 10px;
    border-radius: 5px;
    background: var(--rk-calc-border);
    outline: none;
}

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

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

/* Karta Wyników (Dashboard) */
.rk-roi-output-card {
    background: var(--rk-calc-dark-card);
    border-radius: 20px;
    padding: 50px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.4);
    text-align: center;
    margin-top: 15px;
}

.rk-roi-output-card::before {
    content: '';
    position: absolute;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(16,185,129,0.1) 0%, rgba(0,0,0,0) 70%);
    border-radius: 50%;
    pointer-events: none;
}

.rk-output-stats {
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: relative;
    z-index: 2;
}

.rk-stat-group {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-stat-divider {
    width: 50px;
    height: 2px;
    background: #334155;
    margin: 0 auto;
}

.rk-stat-label {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 10px;
}

.rk-stat-value {
    font-size: 52px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -1px;
}

.rk-stat-sub {
    font-size: 20px;
    font-weight: 700;
    color: #cbd5e1;
    margin-left: 5px;
}

.rk-val-highlight-green { color: var(--rk-calc-green); text-shadow: 0 0 30px rgba(16, 185, 129, 0.3); }
.rk-val-highlight-white { color: #ffffff; }

@media (max-width: 768px) {
    .rk-calc-container { margin: 20px auto; border-radius: 16px; }
    .rk-calc-header, .rk-calc-body { padding: 30px 20px; }
    .rk-calc-header h2 { font-size: 24px; }
    
    .rk-input-card { padding: 25px 20px; }
    .rk-input-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-input-value { align-self: flex-start; font-size: 24px; }
    
    .rk-roi-output-card { padding: 40px 20px; }
    .rk-stat-value { font-size: 42px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-roi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Ile można zaoszczędzić na ogrzewaniu podłogowym montując sterowniki pokojowe?",
    "description": "Zgodnie z normą PN-EN 12831, obniżenie temperatury o 1°C daje 6% oszczędności. Zobacz studium przypadku i oblicz zwrot z inwestycji (ROI) dla swojego domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-roi",
    "name": "Analiza ROI automatyki strefowej wg PN-EN 12831",
    "description": "Zestawienie zużycia energii w kWh oraz kosztów w PLN dla instalacji bez automatyki strefowej i po jej wdrożeniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile kosztuje ogrzewanie domu pompą ciepła",
      "jak obliczyć zwrot z inwestycji ogrzewanie",
      "norma pn en 12831 oszczędności",
      "zmniejszenie rachunków za prąd podłogówka",
      "cena prądu g12w ogrzewanie",
      "zużycie prądu pompa ciepła dom 150m2",
      "termostaty pokojowe a oszczędności",
      "koszt automatyki do podłogówki"
    ],
    "measurementTechnique": "Szacowanie zapotrzebowania na energię dla domów jednorodzinnych z uwzględnieniem redukcji temperatury nocnej i zysków pasywnych z nasłonecznienia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obniżenie temperatury wewnętrznej o 1°C w skali sezonu redukuje koszty o około 6%.",
        "Dla domu 150m2 inwestycja w sterowniki (1800-2500 PLN) zwraca się w czasie krótszym niż 12 miesięcy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-roi",
    "name": "Kalkulator Oszczędności i ROI Automatyki Strefowej",
    "description": "Narzędzie finansowe obliczające roczne oszczędności eksploatacyjne w PLN oraz czas zwrotu z inwestycji (ROI) w komponenty automatyki sterującej ogrzewaniem.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    <div class="rk-calc-header">
        <h2>Ile można zaoszczędzić na ogrzewaniu podłogowym montując sterowniki pokojowe?</h2>
        <p>Montaż sterowników pokojowych pozwala na realną redukcję rocznych <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">kosztów ogrzewania</a> o 15% do 25% w odniesieniu do instalacji sterowanej wyłącznie krzywą grzewczą źródła ciepła. Według wytycznych <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normy PN-EN 12831</a>, obniżenie temperatury wewnętrznej o 1°C w skali całego sezonu grzewczego generuje średnio 6% oszczędności paliwa lub energii elektrycznej.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-casestudy">
            <h3>Wyliczenie matematyczne oszczędności energii (Case Study)</h3>
            <p>Dla domu jednorodzinnego o powierzchni 150 m² i projektowym zapotrzebowaniu na ciepło 9 kW (przy temp. zewnętrznej -20°C):</p>
            <ul style="color: var(--rk-calc-gray); font-size: 14px; line-height: 1.6; padding-left: 20px;">
                <li>Sezonowe zapotrzebowanie na energię <strong>bez automatyki strefowej</strong> (utrzymywanie stałej temperatury 22°C w nocy i podczas nieobecności, plus przegrzewanie od nasłonecznienia): E1 = 14 500 kWh/rok.</li>
                <li>Sezonowe zapotrzebowanie na energię <strong>po wdrożeniu automatyki</strong> (redukcja nocna do 20°C w sypialniach, obniżenie temperatury w salonie do 19°C podczas nieobecności, wykorzystanie zysków pasywnych): E2 = 11 165 kWh/rok.</li>
            </ul>
            <div class="rk-calc-math">
                ΔE = 14 500 &#8211; 11 165 = 3 335 kWh/rok oszczędności
            </div>
            <p>Przyjmując średni koszt energii dla pompy ciepła na poziomie 0,75 PLN/kWh, roczna oszczędność finansowa wynosi równe <strong>2 501,25 PLN/rok</strong>. Koszt zakupu inteligentnego systemu automatyki (listwa + 6 termostatów + siłowniki) dla takiego metrażu zamyka się w kwocie 1800 &#8211; 2500 PLN, co oznacza <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji (ROI)</a> w czasie poniżej 12 miesięcy.</p>
        </div>

        <!-- Układ Kaskadowy W Pełni Pionowy -->
        <div class="rk-roi-stack">
            
            <div class="rk-input-card">
                <div class="rk-input-header">
                    <label>Powierzchnia Twojego domu</label>
                    <div class="rk-input-value"><span id="valAreaOut">150</span> m²</div>
                </div>
                <div class="rk-slider-wrapper">
                    <input type="range" class="rk-calc-slider" id="inpArea" min="80" max="300" step="5" value="150">
                </div>
            </div>
            
            <div class="rk-input-card">
                <div class="rk-input-header">
                    <label>Średnia cena 1 kWh</label>
                    <div class="rk-input-value"><span id="valPriceOut">0.75</span> PLN</div>
                </div>
                <div class="rk-slider-wrapper">
                    <input type="range" class="rk-calc-slider" id="inpPrice" min="0.40" max="1.50" step="0.05" value="0.75">
                </div>
            </div>

            <div class="rk-roi-output-card">
                <div class="rk-output-stats">
                    
                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Roczne Oszczędności Eksploatacyjne</div>
                        <div class="rk-stat-value rk-val-highlight-green"><span id="resSavings">2501</span><span class="rk-stat-sub">PLN</span></div>
                    </div>
                    
                    <div class="rk-stat-divider"></div>
                    
                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Szacowany koszt systemu automatyki</div>
                        <div class="rk-stat-value rk-val-highlight-white"><span id="resCost">2500</span><span class="rk-stat-sub">PLN</span></div>
                    </div>

                    <div class="rk-stat-divider"></div>

                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Pełny zwrot z inwestycji (ROI) za:</div>
                        <div class="rk-stat-value"><span id="resMonths" class="rk-val-highlight-green">12</span><span class="rk-stat-sub">miesięcy</span></div>
                    </div>

                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const sldArea = document.getElementById('inpArea');
    const sldPrice = document.getElementById('inpPrice');
    
    const valAreaOut = document.getElementById('valAreaOut');
    const valPriceOut = document.getElementById('valPriceOut');
    
    const resSavings = document.getElementById('resSavings');
    const resCost = document.getElementById('resCost');
    const resMonths = document.getElementById('resMonths');

    function calculateData() {
        let area = parseFloat(sldArea.value);
        let price = parseFloat(sldPrice.value);
        
        valAreaOut.innerText = area;
        valPriceOut.innerText = price.toFixed(2);

        // Algorytm Oszczędności (Case Study)
        // Średnio 96.66 kWh/m2 bez automatyki
        let energyBase = area * 96.66; 
        
        // Z automatyką oszczędności na poziomie 23% względem bazy
        let energyAuto = energyBase * 0.77; 

        // Różnica w kWh i PLN
        let savingsKwh = energyBase - energyAuto;
        let savingsPln = savingsKwh * price;

        // Koszty systemu: 1000 PLN + 10 PLN / m2
        let sysCost = 1000 + (area * 10);
        
        // ROI
        let roiMonths = (sysCost / savingsPln) * 12;

        resSavings.innerText = Math.round(savingsPln).toLocaleString('pl-PL');
        resCost.innerText = Math.round(sysCost).toLocaleString('pl-PL');
        resMonths.innerText = Math.round(roiMonths);

        // Bezpieczny warunek zmiany koloru (bez &&)
        if (roiMonths < 18) {
            resMonths.className = "rk-val-highlight-green";
            resMonths.style.color = "";
        } else {
            if (roiMonths < 36) {
                resMonths.className = "";
                resMonths.style.color = "#eab308"; // Żółty
            } else {
                resMonths.className = "";
                resMonths.style.color = "#ef4444"; // Czerwony
            }
        }
    }

    sldArea.addEventListener('input', calculateData);
    sldPrice.addEventListener('input', calculateData);

    // Initial calculation
    calculateData();
});
</script>



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

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

.rk-curve-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-curve-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

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

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

.rk-curve-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-curve-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-curve-body {
    padding: 40px 50px;
}

/* Interaktywny Symulator */
.rk-curve-simulator {
    background: var(--rk-curve-gray-light);
    border: 1px solid var(--rk-curve-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-curve-sim-title {
    text-align: center;
    margin: 0;
}

.rk-curve-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-curve-dark);
    margin: 0 0 5px 0;
}

.rk-curve-sim-title p {
    font-size: 14px;
    color: var(--rk-curve-gray);
    margin: 0;
}

.rk-curve-layout {
    display: flex;
    gap: 40px;
    align-items: stretch;
}

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

.rk-curve-slider-box {
    background: var(--rk-curve-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-curve-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-curve-slider-box label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-curve-dark);
    margin-bottom: 10px;
}

.rk-curve-slider-desc {
    font-size: 12px;
    color: var(--rk-curve-gray);
    margin-bottom: 20px;
    display: block;
}

.rk-curve-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-curve-blue), #cbd5e1, var(--rk-curve-red));
    outline: none;
    margin-bottom: 25px;
    direction: rtl; /* Od +20 do -20, wizualnie chłodniej z prawej lub na odwrót - dostosujemy logicznie */
}

/* Dostosowanie suwaka zima-lato */
.rk-curve-slider.temp-slider {
    background: linear-gradient(to right, var(--rk-curve-blue), #cbd5e1, var(--rk-curve-red));
    direction: ltr;
}

.rk-curve-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-curve-dark);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.3);
}

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

.rk-curve-data-card {
    background: var(--rk-curve-gray-light);
    border: 1px solid var(--rk-curve-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
}

.rk-curve-data-card span {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-curve-gray);
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-curve-data-card strong {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-curve-dark);
}

.rk-data-highlight strong {
    color: var(--rk-curve-green);
}

/* Panel Wizualizacji SVG */
.rk-curve-visual {
    flex: 1.2;
    background: var(--rk-curve-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}

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

.rk-svg-axis { stroke: #475569; stroke-width: 2; }
.rk-svg-grid { stroke: #1e293b; stroke-width: 1; }
.rk-svg-text { fill: #94a3b8; font-size: 10px; font-weight: 600; font-family: monospace; }
.rk-svg-line { fill: none; stroke: var(--rk-curve-blue); stroke-width: 4; stroke-linecap: round; }
.rk-svg-dot { fill: var(--rk-curve-red); stroke: #ffffff; stroke-width: 2; transition: all 0.2s ease-out; }
.rk-svg-guide { stroke: var(--rk-curve-red); stroke-width: 1; stroke-dasharray: 4 4; transition: all 0.2s ease-out; }

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-curve-container { margin: 20px auto; border-radius: 16px; }
    .rk-curve-header, .rk-curve-body { padding: 25px 20px; }
    .rk-curve-header h2 { font-size: 22px; }
    .rk-curve-simulator { padding: 20px; }
    .rk-curve-layout { flex-direction: column; gap: 20px; }
    .rk-curve-controls, .rk-curve-visual { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-pogodowka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak sterownik pogodowy z krzywą grzewczą optymalizuje temperaturę zasilania podłogówki?",
    "description": "Zrozum działanie krzywej grzewczej (Tz względem Te) wg normy PN-EN 1264. Sprawdź, jak obniżenie temperatury zasilania poprawia współczynnik COP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-pogodowka",
    "name": "Wpływ krzywej grzewczej na efektywność instalacji płaszczyznowej (COP)",
    "description": "Dane tabelaryczne i algorytmiczne wiążące temperaturę zewnętrzną (NTC) z temperaturą zasilania obiegu grzewczego i sprawnością źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza pompy ciepła podłogówka",
      "sterownik regulator pogodowy",
      "temperatura zasilania ogrzewania podłogowego",
      "współczynnik cop a temperatura zasilania",
      "czujnik temperatury zewnętrznej"
    ],
    "measurementTechnique": "Modelowanie spadku temperatury (Delta T) na podstawie algorytmu kompensacji pogodowej (krzywa n=1.1) z inkrementalnym przyrostem sprawności COP.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kompensacja pogodowa dostosowuje temperaturę zasilania (Tz) od 25°C do 38°C proporcjonalnie do temperatury zewnętrznej (Te).",
        "Obniżenie temperatury zasilania pompy ciepła o każdy 1°C skutkuje wzrostem współczynnika COP o około 2.5% - 3.0%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-pogodowka",
    "name": "Symulator Krzywej Grzewczej (Kompensacja Pogodowa)",
    "description": "Interaktywny interfejs inżynierski obrazujący ruch punktu pracy instalacji na wykresie krzywej grzewczej w zależności od warunków atmosferycznych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-curve-container" id="rk-curve-app">
    <div class="rk-curve-header">
        <h2>Jak sterownik pogodowy z krzywą grzewczą optymalizuje temperaturę zasilania podłogówki?</h2>
        <p><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik pogodowy</a> automatycznie obniża lub podwyższa temperaturę wody zasilającej instalację podłogową w zakresie od 25°C do 38°C na podstawie odczytu z zewnętrznego czujnika temperatury (NTC), zgodnie z bezwzględnymi wymaganiami normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>.</p>
        <p>Działanie to opiera się na matematycznie zdefiniowanej <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>, która dopasowuje temperaturę zasilania (Tz) do aktualnej temperatury zewnętrznej (Te). Wzrost temperatury zewnętrznej o każde 5°C powoduje natychmiastowe obniżenie temperatury na wyjściu ze źródła ciepła. Dla pompy ciepła obniżenie temperatury zasilania o 1°C podnosi jej współczynnik efektywności grzewczej COP o około 2,5% do 3%. Sterowanie pogodowe eliminuje opóźnienie wynikające z bezwładności budynku – instalacja reaguje na chłód, zanim przeniknie on przez ściany.</p>
    </div>

    <div class="rk-curve-body">
        <div class="rk-curve-simulator">
            <div class="rk-curve-sim-title">
                <h3>Symulator Kompensacji Pogodowej</h3>
                <p>Przesuń suwak pogody i zobacz, jak algorytm steruje parametrami.</p>
            </div>

            <div class="rk-curve-layout">
                <div class="rk-curve-controls">
                    <div class="rk-curve-slider-box">
                        <label>Temperatura Zewnętrzna (Czujnik Pogodowy)</label>
                        <span class="rk-curve-slider-desc">Symulacja zmiany frontu atmosferycznego</span>
                        <input type="range" class="rk-curve-slider temp-slider" id="envSlider" min="-20" max="20" step="1" value="0">
                        
                        <div class="rk-curve-data-grid">
                            <div class="rk-curve-data-card">
                                <span>Temp. Zewnętrzna (Te)</span>
                                <strong id="valTe">0°C</strong>
                            </div>
                            <div class="rk-curve-data-card">
                                <span>Temp. Zasilania (Tz)</span>
                                <strong id="valTz" style="color: var(--rk-curve-blue);">31.5°C</strong>
                            </div>
                            <div class="rk-curve-data-card rk-data-highlight" style="grid-column: span 2;">
                                <span>Wzrost Sprawności COP (Względem Tz=38°C)</span>
                                <strong id="valCop">+18.0%</strong>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="rk-curve-visual">
                    <div class="rk-curve-svg-wrapper">
                        <svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
                            <line x1="40" y1="20" x2="280" y2="20" class="rk-svg-grid"/> <line x1="40" y1="70" x2="280" y2="70" class="rk-svg-grid"/> <line x1="40" y1="120" x2="280" y2="120" class="rk-svg-grid"/> <line x1="40" y1="10" x2="40" y2="160" class="rk-svg-axis"/>
                            <text x="30" y="25" class="rk-svg-text" text-anchor="end">40°</text>
                            <text x="30" y="75" class="rk-svg-text" text-anchor="end">30°</text>
                            <text x="30" y="125" class="rk-svg-text" text-anchor="end">20°</text>
                            <text x="40" y="10" class="rk-svg-text" fill="#ffffff" dy="-5">Tz</text>
                            
                            <line x1="40" y1="160" x2="290" y2="160" class="rk-svg-axis"/>
                            <text x="40" y="175" class="rk-svg-text" text-anchor="middle">+20°</text>
                            <text x="100" y="175" class="rk-svg-text" text-anchor="middle">+10°</text>
                            <text x="160" y="175" class="rk-svg-text" text-anchor="middle">0°</text>
                            <text x="220" y="175" class="rk-svg-text" text-anchor="middle">-10°</text>
                            <text x="280" y="175" class="rk-svg-text" text-anchor="middle">-20°</text>
                            <text x="290" y="155" class="rk-svg-text" fill="#ffffff" text-anchor="start">Te</text>
                            
                            <path class="rk-svg-line" d="M 40 95 Q 160 80 280 30" />
                            
                            <line class="rk-svg-guide" id="guideX" x1="160" y1="160" x2="160" y2="65" />
                            <line class="rk-svg-guide" id="guideY" x1="40" y1="65" x2="160" y2="65" />
                            <circle class="rk-svg-dot" id="workPoint" cx="160" cy="65" r="6" />
                        </svg>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('envSlider');
    const displayTe = document.getElementById('valTe');
    const displayTz = document.getElementById('valTz');
    const displayCop = document.getElementById('valCop');
    
    // Elementy SVG
    const workPoint = document.getElementById('workPoint');
    const guideX = document.getElementById('guideX');
    const guideY = document.getElementById('guideY');

    // Konfiguracja matematyczna wykresu SVG
    // X axis: 40px (+20st) to 280px (-20st) -> span 240px. 
    // Y axis: 120px (20st) to 20px (40st) -> span 100px. 1st = 5px.
    
    function updateCurve() {
        let Te = parseInt(slider.value); // od -20 do +20
        
        // Logika obliczania Tz (Model krzywej aproksymujący kwadratowo/liniowo)
        // Jeśli Te = +20 -> Tz = 25
        // Jeśli Te = -20 -> Tz = 38
        
        // Parametryzacja z użyciem bezpiecznych warunków (bez operatora "&&")
        // Skala 0 do 1 (gdzie 0 to -20st, a 1 to +20st)
        let ratio = (Te + 20) / 40; 
        
        // Tworzymy lekkie wygięcie krzywej bazując na ratio
        // Tz = 38 (max) minus spadek
        let Tz = 38 - (ratio * 13); // liniowo
        
        // Dodajmy lekką korektę nieliniową
        if (ratio > 0) {
            if (ratio < 1) {
               // Niewielkie ugięcie w dół
               Tz = Tz - (Math.sin(ratio * Math.PI) * 1.5);
            }
        }

        // Zabezpieczenie limitów
        if (Tz < 25) { Tz = 25; }
        if (Tz > 38) { Tz = 38; }

        // Wpływ na COP: zysk 2.75% za każdy stopień poniżej 38°C
        let copGain = (38 - Tz) * 2.75;

        // Aktualizacja tekstów
        if (Te > 0) {
            displayTe.innerText = "+" + Te + "°C";
        } else {
            displayTe.innerText = Te + "°C";
        }
        
        displayTz.innerText = Tz.toFixed(1) + "°C";
        displayCop.innerText = "+" + copGain.toFixed(1) + "%";

        // Obliczanie współrzędnych SVG
        // X: -20 to x=280, +20 to x=40
        let svgX = 280 - (ratio * 240);
        
        // Y: 20st = 120px, 40st = 20px
        // Różnica od 40st w dół: (40 - Tz) * 5
        let svgY = 20 + ((40 - Tz) * 5);

        // Aktualizacja DOM (SVG)
        workPoint.setAttribute('cx', svgX);
        workPoint.setAttribute('cy', svgY);
        
        guideX.setAttribute('x1', svgX);
        guideX.setAttribute('x2', svgX);
        guideX.setAttribute('y1', '160');
        guideX.setAttribute('y2', svgY);
        
        guideY.setAttribute('x1', '40');
        guideY.setAttribute('x2', svgX);
        guideY.setAttribute('y1', svgY);
        guideY.setAttribute('y2', svgY);
    }

    // Nasłuchiwacz suwaka
    slider.addEventListener('input', updateCurve);
    
    // Uruchomienie na start
    updateCurve();
});
</script>



<style>
:root {
    --rk-tech-dark: #0f172a;
    --rk-tech-blue: #0284c7;
    --rk-tech-blue-light: #e0f2fe;
    --rk-tech-green: #10b981;
    --rk-tech-purple: #8b5cf6;
    --rk-tech-purple-light: #ede9fe;
    --rk-tech-gray: #475569;
    --rk-tech-bg: #ffffff;
    --rk-tech-border: #e2e8f0;
}

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

.rk-tech-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-tech-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

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

.rk-tech-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Master Toggle */
.rk-tech-toggle-wrapper {
    display: flex;
    background: var(--rk-tech-border);
    border-radius: 16px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
}

.rk-tech-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tech-gray);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.4s ease;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-tech-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    background: var(--rk-tech-blue);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* Visualizer SVG */
.rk-tech-visualizer {
    background: var(--rk-tech-dark);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 35px;
    height: 160px;
    position: relative;
    overflow: hidden;
}

.rk-tech-svg-wrap {
    width: 100%;
    max-width: 400px;
}

/* SVG Animations */
.rk-anim-cable { stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 1s ease; }
.rk-anim-wave { opacity: 0; transform: scale(0.5); transform-origin: center; transition: all 0.5s ease; }

.state-wired .rk-anim-cable { stroke-dashoffset: 0; }
.state-wireless .rk-anim-wave { opacity: 1; transform: scale(1); animation: pulseRadio 2s infinite; }

@keyframes pulseRadio {
    0% { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}

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

.rk-param-card {
    background: var(--rk-tech-bg);
    border: 1px solid var(--rk-tech-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-param-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-tech-blue);
}

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

.rk-param-card h3 {
    font-size: 14px;
    color: var(--rk-tech-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    margin: 0 0 10px 0;
}

.rk-param-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--rk-tech-dark);
    line-height: 1.5;
}

.rk-param-value strong {
    font-size: 20px;
    font-weight: 900;
    display: block;
    margin-bottom: 5px;
    transition: color 0.4s;
}

.rk-param-value a {
    color: var(--rk-tech-blue);
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-tech-blue);
}

/* Stan bezprzewodowy kolorystyka (Fiolet) */
.state-wireless-theme .rk-param-icon { background: var(--rk-tech-purple-light); color: var(--rk-tech-purple); }
.state-wireless-theme .rk-param-value strong { color: var(--rk-tech-purple); }

/* Hide/Show logic within cards */
.rk-val-content { display: none; animation: fadeInText 0.4s forwards; }
.rk-val-content.active { display: block; }

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

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-tech-container { margin: 20px auto; }
    .rk-tech-header, .rk-tech-interactive { padding: 25px 20px; }
    .rk-tech-header h2 { font-size: 22px; }
    
    .rk-tech-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; gap: 10px;}
    .rk-tech-toggle-bg { display: none; }
    
    .rk-tech-toggle-btn {
        background: var(--rk-tech-border);
        color: var(--rk-tech-gray);
        border: 2px solid transparent;
    }
    
    .rk-tech-toggle-btn.active[data-tech="wired"] {
        background: var(--rk-tech-blue);
        color: #ffffff;
        border-color: var(--rk-tech-blue);
    }
    
    .rk-tech-toggle-btn.active[data-tech="wireless"] {
        background: var(--rk-tech-purple);
        color: #ffffff;
        border-color: var(--rk-tech-purple);
    }
    
    .rk-tech-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-technologie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Czym różni się sterowanie przewodowe od bezprzewodowego i co wybrać?",
    "description": "Szczegółowe porównanie technologii sterowania ogrzewaniem podłogowym. Niezawodność sygnału, zasilanie i koszty systemów przewodowych (230V) vs bezprzewodowych (ZigBee).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-technologie",
    "name": "Zestawienie parametrów techniczno-użytkowych systemów automatyki HVAC",
    "description": "Dane porównawcze dla systemów przewodowych (topologia gwiazdy) oraz bezprzewodowych (topologia Mesh ZigBee) obejmujące koszty, niezawodność i metody zasilania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie przewodowe czy bezprzewodowe podłogówka",
      "termostaty bezprzewodowe zigbee",
      "kable do sterowania ogrzewaniem",
      "topologia mesh ogrzewanie",
      "koszt automatyki podłogówki"
    ],
    "measurementTechnique": "Analiza kosztorysowa punktów pomiarowych oraz ewaluacja tłumienności sygnału radiowego względem stabilności połączeń kablowych YDY/FTP.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System przewodowy oferuje 100% odporności na zakłócenia przy średnim koszcie punktu 150-250 PLN.",
        "System bezprzewodowy pozwala na elastyczny montaż w wykończonych domach przy koszcie 280-450 PLN za punkt pomiarowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-technologie",
    "name": "Symulator Architektury Sterowania Podłogówką",
    "description": "Interaktywne narzędzie pozwalające na błyskawiczne przekrojowe porównanie technologii przewodowej i radiowej na poziomie komponentów i topologii sieci.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-container" id="rk-tech-app">
    <div class="rk-tech-header">
        <h2>Czym różni się sterowanie przewodowe od bezprzewodowego i co wybrać?</h2>
        <p>Wybór między systemem z okablowaniem a radiowym determinuje stabilność transmisji sygnału oraz łączny koszt inwestycji. Przełącz technologie, aby porównać kluczowe parametry techniczno-użytkowe obu rozwiązań.</p>
    </div>

    <div class="rk-tech-interactive">
        
        <div class="rk-tech-toggle-wrapper">
            <div class="rk-tech-toggle-bg" id="rkTechBg"></div>
            <button class="rk-tech-toggle-btn active" data-tech="wired" style="color: #ffffff;">
                <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="M5 12h14"></path><path d="M12 5v14"></path></svg>
                System Przewodowy (Bus/230V)
            </button>
            <button class="rk-tech-toggle-btn" data-tech="wireless">
                <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="M5 12.55a11 11 0 0 1 14.08 0"></path><path d="M1.42 9a16 16 0 0 1 21.16 0"></path><path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path><line x1="12" y1="20" x2="12.01" y2="20"></line></svg>
                System Bezprzewodowy (ZigBee)
            </button>
        </div>

        <div class="rk-tech-visualizer state-wired" id="rkTechVisual">
            <div class="rk-tech-svg-wrap">
                <svg viewBox="0 0 400 120" xmlns="http://www.w3.org/2000/svg">
                    <rect x="20" y="40" width="40" height="40" rx="4" fill="#334155" stroke="#cbd5e1" stroke-width="2"/>
                    <text x="40" y="65" fill="#ffffff" font-size="12" text-anchor="middle" font-weight="bold">22°C</text>
                    
                    <rect x="300" y="20" width="80" height="80" rx="4" fill="#334155" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="310" y="30" width="60" height="60" fill="#1e293b"/>
                    
                    <path class="rk-anim-cable" id="wirePath" d="M 60 60 L 150 60 L 150 90 L 300 90" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linejoin="round"/>
                    
                    <g class="rk-anim-wave" id="radioWaves">
                        <circle cx="100" cy="60" r="15" fill="none" stroke="#a78bfa" stroke-width="3"/>
                        <circle cx="100" cy="60" r="30" fill="none" stroke="#a78bfa" stroke-width="2"/>
                        <circle cx="200" cy="60" r="15" fill="none" stroke="#a78bfa" stroke-width="3"/>
                        <circle cx="200" cy="60" r="30" fill="none" stroke="#a78bfa" stroke-width="2"/>
                    </g>
                </svg>
            </div>
        </div>

        <div class="rk-tech-grid" id="rkTechGrid">
            
            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <h3>Niezawodność sygnału</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">100% Odporności</strong>
                        Całkowita odporność na zakłócenia elektromagnetyczne i grube bariery budowlane.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>92-98% Stabilności</strong>
                        Podatność na tłumienie przez stropy żelbetowe; często wymaga stosowania wzmacniaczy (repeaterów).
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <h3>Zasilanie elementów</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">Stałe 230V / 24V</strong>
                        Bezpośrednie zasilanie z magistrali; całkowity brak konieczności pamiętania o wymianie ogniw.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>Bateryjne (2x AAA)</strong>
                        Żywotność ogniwa wynosi od 12 do 24 miesięcy w zależności od użytego protokołu komunikacyjnego.
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <h3>Architektura & Montaż</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">Topologia Gwiazdy (SSZ)</strong>
                        Kable YDY/FTP zbiegające się w <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">szafce rozdzielaczowej</a>. Montaż możliwy tylko przed tynkami.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>Topologia Siatki (Mesh)</strong>
                        Każde urządzenie (zasilane z sieci) rozszerza zasięg. Dowolny <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">moment montażu</a> – idealne do modernizacji.
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="20" height="12" rx="2"></rect><circle cx="12" cy="12" r="2"></circle><path d="M6 12h.01M18 12h.01"></path></svg>
                </div>
                <h3>Średni koszt inwestycji</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">150 - 250 PLN</strong>
                        Szacunkowy koszt na jeden punkt pomiarowy (termostat). Należy doliczyć koszty okablowania ścian.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>280 - 450 PLN</strong>
                        Szacunkowy koszt na jeden punkt (termostat + moduł radiowy). Brak kosztów ukrytych okablowania.
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-tech-toggle-btn');
    const toggleBg = document.getElementById('rkTechBg');
    const visualizer = document.getElementById('rkTechVisual');
    const grid = document.getElementById('rkTechGrid');
    const wirePath = document.getElementById('wirePath');
    const radioWaves = document.getElementById('radioWaves');
    
    // Bezpieczny selektor elementów do przełączania (bez &&)
    const valContents = document.querySelectorAll('.rk-val-content');

    btns.forEach((btn, index) => {
        btn.addEventListener('click', function() {
            
            // Reset stylów przycisków
            btns.forEach(b => {
                b.classList.remove('active');
                if(window.innerWidth > 768) {
                    b.style.color = 'var(--rk-tech-gray)';
                }
            });
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            const tech = this.getAttribute('data-tech');
            
            // Logika wizualna (Slider w tle)
            if(window.innerWidth > 768) {
                this.style.color = '#ffffff';
                if(index === 0) {
                    // Wired Mode
                    toggleBg.style.transform = 'translateX(0)';
                    toggleBg.style.backgroundColor = 'var(--rk-tech-blue)';
                    
                    grid.classList.remove('state-wireless-theme');
                    visualizer.classList.add('state-wired');
                    visualizer.classList.remove('state-wireless');
                    
                    wirePath.style.display = 'block';
                    radioWaves.style.display = 'none';
                } else {
                    // Wireless Mode
                    toggleBg.style.transform = 'translateX(100%)';
                    toggleBg.style.backgroundColor = 'var(--rk-tech-purple)';
                    
                    grid.classList.add('state-wireless-theme');
                    visualizer.classList.add('state-wireless');
                    visualizer.classList.remove('state-wired');
                    
                    wirePath.style.display = 'none';
                    radioWaves.style.display = 'block';
                }
            } else {
                // Logika dla urządzeń mobilnych
                if(tech === 'wired') {
                    grid.classList.remove('state-wireless-theme');
                    visualizer.classList.add('state-wired');
                    visualizer.classList.remove('state-wireless');
                    wirePath.style.display = 'block';
                    radioWaves.style.display = 'none';
                } else {
                    grid.classList.add('state-wireless-theme');
                    visualizer.classList.add('state-wireless');
                    visualizer.classList.remove('state-wired');
                    wirePath.style.display = 'none';
                    radioWaves.style.display = 'block';
                }
            }

            // Przełączanie treści w kartach (tylko if/else)
            valContents.forEach(content => {
                const ref = content.getAttribute('data-ref');
                if (ref === tech) {
                    content.classList.add('active');
                } else {
                    content.classList.remove('active');
                }
            });
        });
    });

    // Zabezpieczenie dla zmiany orientacji urządzenia
    window.addEventListener('resize', function() {
        if(window.innerWidth <= 768) {
            btns.forEach(b => b.style.color = ''); 
        } else {
            const activeBtn = document.querySelector('.rk-tech-toggle-btn.active');
            if (activeBtn) {
                activeBtn.style.color = '#ffffff';
            }
        }
    });
    
    // Inicjalny stan ukrycia fal radiowych
    radioWaves.style.display = 'none';
});
</script>



<style>
:root {
    --rk-ntc-dark: #0f172a;
    --rk-ntc-blue: #0284c7;
    --rk-ntc-red: #ef4444;
    --rk-ntc-red-light: #fef2f2;
    --rk-ntc-green: #10b981;
    --rk-ntc-green-light: #dcfce7;
    --rk-ntc-gray: #475569;
    --rk-ntc-gray-light: #f8fafc;
    --rk-ntc-bg: #ffffff;
    --rk-ntc-border: #e2e8f0;
}

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

.rk-ntc-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-ntc-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

.rk-ntc-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 0 15px 0;
    line-height: 1.7;
}
.rk-ntc-header p:last-child {
    margin: 0;
}

.rk-ntc-header a {
    color: #7dd3fc;
    text-decoration: none;
    border-bottom: 1px dashed #7dd3fc;
    font-weight: 600;
    transition: color 0.2s;
}

.rk-ntc-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-ntc-body {
    padding: 40px 50px;
}

/* Simulator Wrapper */
.rk-ntc-simulator {
    background: var(--rk-ntc-gray-light);
    border: 1px solid var(--rk-ntc-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-ntc-sim-title {
    text-align: center;
    margin: 0;
}

.rk-ntc-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-ntc-dark);
    margin: 0 0 5px 0;
}

.rk-ntc-sim-title p {
    font-size: 14px;
    color: var(--rk-ntc-gray);
    margin: 0;
}

/* Layout */
.rk-ntc-layout {
    display: flex;
    gap: 40px;
    align-items: stretch;
}

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

.rk-ntc-toggle-group {
    display: flex;
    background: var(--rk-ntc-border);
    border-radius: 12px;
    padding: 5px;
}

.rk-ntc-toggle-btn {
    flex: 1;
    padding: 14px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-ntc-gray);
    cursor: pointer;
    transition: all 0.3s;
}

.rk-ntc-toggle-btn.active[data-mode="on"] {
    background: var(--rk-ntc-green);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(16, 185, 129, 0.2);
}

.rk-ntc-toggle-btn.active[data-mode="off"] {
    background: var(--rk-ntc-red);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(239, 68, 68, 0.2);
}

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

.rk-ntc-slider-group label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-ntc-dark);
    margin-bottom: 15px;
}

.rk-ntc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-ntc-border);
    outline: none;
    margin-bottom: 20px;
}

.rk-ntc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-ntc-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

.rk-ntc-readings {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px dashed var(--rk-ntc-border);
}

.rk-ntc-reading-box {
    text-align: center;
}

.rk-ntc-reading-box span {
    display: block;
    font-size: 12px;
    color: var(--rk-ntc-gray);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.rk-ntc-reading-box strong {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-ntc-dark);
}

/* Visualization */
.rk-ntc-visual {
    flex: 1;
    background: var(--rk-ntc-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-ntc-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-ntc-status-badge {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 800;
    transition: all 0.3s;
    z-index: 10;
}

.rk-badge-safe { background: var(--rk-ntc-green-light); color: var(--rk-ntc-green); }
.rk-badge-warn { background: var(--rk-ntc-red-light); color: var(--rk-ntc-red); }

.rk-ntc-svg-wrap {
    width: 100%;
    max-width: 250px;
    margin-top: 20px;
}

/* SVG Animations & States */
.rk-svg-panel { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); fill: #e2e8f0; }
.rk-svg-pipe { transition: fill 0.4s; fill: #94a3b8; }
.rk-svg-lzo { opacity: 0; transition: opacity 0.3s, transform 2s; }

/* States */
.state-heating .rk-svg-pipe { fill: var(--rk-ntc-red); }
.state-heating .rk-svg-panel { fill: #f8fafc; }

.state-blocked .rk-svg-pipe { fill: var(--rk-ntc-blue); }
.state-blocked .rk-svg-panel { fill: #f8fafc; }

.state-damaged .rk-svg-pipe { fill: var(--rk-ntc-red); }
.state-damaged .rk-svg-panel { fill: #fecaca; transform: translateY(-5px) rotate(2deg); transform-origin: center; }
.state-damaged .rk-svg-lzo { opacity: 1; animation: floatUp 2s infinite linear; }

@keyframes floatUp {
    0% { transform: translateY(0) scale(1); opacity: 0.8; }
    100% { transform: translateY(-30px) scale(1.5); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-ntc-container { margin: 20px auto; }
    .rk-ntc-header, .rk-ntc-body { padding: 25px 20px; }
    .rk-ntc-header h2 { font-size: 22px; }
    .rk-ntc-layout { flex-direction: column; gap: 20px; }
    .rk-ntc-simulator { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-czujnik",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Dlaczego czujnik podłogowy jest niezbędny przy panelach winylowych i parkiecie?",
    "description": "Zrozum tryb dwukanałowy termostatu. Zobacz, jak brak czujnika NTC w wylewce prowadzi do przegrzania posadzki powyżej 27 stopni i nieodwracalnych uszkodzeń paneli LVT.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-czujnik",
    "name": "Graniczne temperatury posadzek (Czujnik NTC)",
    "description": "Parametry krytyczne dla bezpiecznej eksploatacji ogrzewania płaszczyznowego z okładzinami wrażliwymi termicznie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czujnik temperatury podłogi do paneli winylowych",
      "maksymalna temperatura ogrzewania podłogowego parkiet",
      "termostat dwukanałowy pokojowo podłogowy",
      "emisja LZO z paneli ogrzewanie",
      "deformacja paneli ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Pomiar dwukanałowy: równoległa ewaluacja temperatury powietrza i wylewki celem wywołania zjawiska sprzężenia zwrotnego i zamknięcia zaworu (siłownika NC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit temperaturowy 27°C jako absolutne maksimum dla gwarancji paneli i parkietów.",
        "Przekroczenie bariery 27°C powoduje rozsychanie zamków oraz zwiększoną emisję lotnych związków organicznych (LZO)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-czujnik",
    "name": "Symulator termicznego zabezpieczenia posadzki (NTC)",
    "description": "Fizyczny symulator obrazujący asymetrię nagrzewania powietrza i wylewki oraz konsekwencje braku dwukanałowego zabezpieczenia instalacji podłogowej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ntc-container" id="rk-ntc-app">
    <div class="rk-ntc-header">
        <h2>Dlaczego czujnik podłogowy jest niezbędny przy panelach winylowych i parkiecie?</h2>
        <p>Czujnik temperatury podłogi (rezystancyjny czujnik NTC umieszczony w peszlu ochronnym wewnątrz wylewki) jest bezwzględnie wymagany, gdy <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzinę stanowią panele</a> laminowane, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele winylowe (LVT)</a> lub <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">parkiet warstwowy</a>, ponieważ producenci tych materiałów bezwzględnie ograniczają maksymalną temperaturę podłogi do 27°C.</p>
        <p>Termostat pokojowo-podłogowy działa w trybie dwukanałowym. Nadrzędnym celem jest osiągnięcie temperatury powietrza (np. 22°C), ale jeśli w procesie nagrzewania, na skutek zbyt <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">wysokiej temperatury zasilania</a>, wylewka osiągnie 27°C, czujnik podłogowy wymusza natychmiastowe zamknięcie siłownika pętli. Przekroczenie tego limitu to utrata gwarancji, emisja szkodliwych związków lotnych (LZO) oraz destrukcja materiału.</p>
    </div>

    <div class="rk-ntc-body">
        <div class="rk-ntc-simulator">
            <div class="rk-ntc-sim-title">
                <h3>Symulator Trybu Dwukanałowego (NTC)</h3>
                <p>Zobacz, jak zachowuje się posadzka w fazie intensywnego nagrzewania pokoju.</p>
            </div>

            <div class="rk-ntc-layout">
                <div class="rk-ntc-controls">
                    <div class="rk-ntc-toggle-group">
                        <button class="rk-ntc-toggle-btn active" data-mode="on" id="btnNtcOn">Termostat z czujnikiem NTC</button>
                        <button class="rk-ntc-toggle-btn" data-mode="off" id="btnNtcOff">Tylko czujnik powietrza</button>
                    </div>

                    <div class="rk-ntc-slider-group">
                        <label>Zwiększ zapotrzebowanie na ciepło (Nagrzewanie)</label>
                        <input type="range" class="rk-ntc-slider" id="heatSlider" min="0" max="100" value="0">
                        
                        <div class="rk-ntc-readings">
                            <div class="rk-ntc-reading-box">
                                <span>Temp. Powietrza</span>
                                <strong id="valAir">20.0°C</strong>
                            </div>
                            <div class="rk-ntc-reading-box">
                                <span>Temp. Posadzki</span>
                                <strong id="valFloor" style="color: var(--rk-ntc-blue);">20.0°C</strong>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="rk-ntc-visual" id="visualBox">
                    <div class="rk-ntc-status-badge rk-badge-safe" id="statusBadge">System Oczekuje</div>
                    
                    <div class="rk-ntc-svg-wrap">
                        <svg viewBox="0 0 200 150" xmlns="http://www.w3.org/2000/svg">
                            <rect x="10" y="80" width="180" height="60" fill="#cbd5e1" rx="4"/>
                            <line x1="10" y1="110" x2="190" y2="110" stroke="#94a3b8" stroke-width="2" stroke-dasharray="10 5"/>
                            
                            <circle cx="40" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="80" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="120" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="160" cy="95" r="8" class="rk-svg-pipe"/>

                            <rect x="10" y="65" width="180" height="10" class="rk-svg-panel" rx="2"/>
                            
                            <line x1="70" y1="65" x2="70" y2="75" stroke="#94a3b8" stroke-width="1"/>
                            <line x1="130" y1="65" x2="130" y2="75" stroke="#94a3b8" stroke-width="1"/>

                            <g class="rk-svg-lzo">
                                <circle cx="50" cy="45" r="4" fill="#ef4444"/>
                                <circle cx="150" cy="35" r="3" fill="#ef4444"/>
                                <circle cx="100" cy="50" r="5" fill="#ef4444"/>
                                <text x="100" y="25" font-size="10" fill="#ef4444" text-anchor="middle" font-weight="bold">LZO!</text>
                            </g>
                        </svg>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    let modeNTC = true; // true = z czujnikiem (bezpiecznie), false = bez (niebezpiecznie)
    
    const btnOn = document.getElementById('btnNtcOn');
    const btnOff = document.getElementById('btnNtcOff');
    const slider = document.getElementById('heatSlider');
    const valAir = document.getElementById('valAir');
    const valFloor = document.getElementById('valFloor');
    const visualBox = document.getElementById('visualBox');
    const statusBadge = document.getElementById('statusBadge');

    function updateSimulation() {
        let heatInput = parseInt(slider.value); // 0 do 100
        
        // Bazy temperaturowe
        let baseAir = 20.0;
        let baseFloor = 20.0;

        // Bezwładność: podłoga nagrzewa się 3x szybciej niż powietrze w tej symulacji
        // Max heatInput(100) -> powietrze rośnie o 3°C, podłoga o 12°C
        let currentAir = baseAir + (heatInput * 0.03);
        let currentFloor = baseFloor + (heatInput * 0.12);

        // Reset klas
        visualBox.className = 'rk-ntc-visual';
        statusBadge.className = 'rk-ntc-status-badge';

        if (modeNTC) {
            // TRYB ZABEZPIECZONY NTC
            if (currentFloor > 27) {
                // Czujnik ucina zasilanie na 27°C
                currentFloor = 27;
                visualBox.classList.add('state-blocked');
                
                statusBadge.classList.add('rk-badge-safe');
                statusBadge.innerText = 'Zawór Zamknięty (Limit 27°C)';
                valFloor.style.color = 'var(--rk-ntc-blue)';
            } else {
                if (heatInput > 0) {
                    visualBox.classList.add('state-heating');
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'Nagrzewanie Bezpieczne';
                    valFloor.style.color = 'var(--rk-ntc-green)';
                } else {
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'System Oczekuje';
                    valFloor.style.color = 'var(--rk-ntc-blue)';
                }
            }
        } else {
            // TRYB BEZ CZUJNIKA NTC (Katastrofa)
            if (currentFloor > 27) {
                visualBox.classList.add('state-damaged');
                statusBadge.classList.add('rk-badge-warn');
                statusBadge.innerText = 'KRYTYCZNE PRZEGRZANIE POSADZKI!';
                valFloor.style.color = 'var(--rk-ntc-red)';
            } else {
                if (heatInput > 0) {
                    visualBox.classList.add('state-heating');
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'Nagrzewanie...';
                    valFloor.style.color = 'var(--rk-ntc-green)';
                } else {
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'System Oczekuje';
                    valFloor.style.color = 'var(--rk-ntc-blue)';
                }
            }
        }

        // Aktualizacja UI
        valAir.innerText = currentAir.toFixed(1) + '°C';
        valFloor.innerText = currentFloor.toFixed(1) + '°C';
    }

    // Obsługa zdarzeń (bezpieczna logika IF/ELSE)
    btnOn.addEventListener('click', function() {
        modeNTC = true;
        btnOn.classList.add('active');
        btnOff.classList.remove('active');
        updateSimulation();
    });

    btnOff.addEventListener('click', function() {
        modeNTC = false;
        btnOff.classList.add('active');
        btnOn.classList.remove('active');
        updateSimulation();
    });

    slider.addEventListener('input', updateSimulation);

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



<style>
:root {
    --rk-sreg-dark: #0f172a;
    --rk-sreg-blue: #0284c7;
    --rk-sreg-blue-light: #e0f2fe;
    --rk-sreg-gold: #eab308;
    --rk-sreg-gray: #475569;
    --rk-sreg-gray-light: #f8fafc;
    --rk-sreg-bg: #ffffff;
    --rk-sreg-border: #e2e8f0;
}

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

.rk-sreg-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-sreg-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-sreg-gold);
}

.rk-sreg-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

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

.rk-sreg-header a {
    color: var(--rk-sreg-gold);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--rk-sreg-gold);
}

.rk-sreg-body {
    padding: 40px 50px;
}

/* Interaktywny symulator */
.rk-sreg-simulator {
    background: var(--rk-sreg-gray-light);
    border: 1px solid var(--rk-sreg-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-sreg-sim-title {
    text-align: center;
    margin: 0;
}

.rk-sreg-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sreg-dark);
    margin: 0 0 8px 0;
}

.rk-sreg-sim-title span {
    font-size: 14px;
    color: var(--rk-sreg-gray);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-sreg-layout {
    display: flex;
    align-items: center;
    gap: 40px;
}

/* Panel sterowania */
.rk-sreg-controls {
    flex: 1;
    background: var(--rk-sreg-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-sreg-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

.rk-sreg-input-group label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-sreg-gray);
    margin-bottom: 12px;
}

.rk-sreg-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-sreg-border);
    outline: none;
}

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

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

.rk-sreg-value-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sreg-dark);
    margin-top: 8px;
}

.rk-sreg-fixed-val {
    padding-top: 15px;
    border-top: 1px dashed var(--rk-sreg-border);
}

.rk-sreg-fixed-val div {
    font-size: 13px;
    color: var(--rk-sreg-gray);
    font-weight: 600;
}

.rk-sreg-fixed-val strong {
    font-size: 18px;
    color: var(--rk-sreg-dark);
    display: block;
    margin-top: 5px;
}

/* Panel wizualizacji */
.rk-sreg-visual {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-sreg-dark);
    border-radius: 16px;
    padding: 30px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-sreg-visual::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px;
    background: #334155; /* Symulacja płyty fundamentowej */
}

.rk-sreg-emission-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-sreg-gold);
    line-height: 1;
    margin-bottom: 5px;
    z-index: 2;
}

.rk-sreg-emission-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #cbd5e1;
    z-index: 2;
    margin-bottom: 25px;
}

/* Fale ciepła SVG */
.rk-sreg-heat-waves {
    width: 100px;
    height: 80px;
    z-index: 2;
    margin-bottom: 10px;
}

.rk-wave-path {
    fill: none;
    stroke: var(--rk-sreg-gold);
    stroke-width: 4;
    stroke-linecap: round;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-wave-1 { opacity: 1; transform: translateY(0); }
.rk-wave-2 { opacity: 0.7; transform: translateY(0); }
.rk-wave-3 { opacity: 0.4; transform: translateY(0); }

/* Komunikat o blokadzie */
.rk-sreg-block-msg {
    position: absolute;
    top: 20px;
    background: var(--rk-sreg-blue);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.3s;
    z-index: 3;
}

.rk-sreg-block-msg.show {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 768px) {
    .rk-sreg-container { margin: 20px auto; border-radius: 16px; }
    .rk-sreg-header, .rk-sreg-body { padding: 25px 20px; }
    .rk-sreg-header h2 { font-size: 22px; }
    
    .rk-sreg-simulator { padding: 20px; }
    .rk-sreg-layout { flex-direction: column; gap: 20px; }
    .rk-sreg-controls, .rk-sreg-visual { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-samoregulacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Kiedy montaż sterowników do podłogówki mija się z celem? Wyjątki i ograniczenia",
    "description": "Zrozum zjawisko samoregulacji termicznej w budynkach pasywnych. Kiedy płyta fundamentowa grzewcza nie wymaga instalacji termostatów pokojowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-samoregulacja",
    "name": "Parametry fizyczne zjawiska samoregulacji podłogówki",
    "description": "Fizyczne dane dotyczące spadku emisji cieplnej jastrychu w zależności od różnicy temperatur (Delta T) między powierzchnią a powietrzem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "domy pasywne ogrzewanie podłogowe",
      "płyta fundamentowa grzewcza",
      "samoregulacja termiczna podłogówki",
      "bezwładność cieplna wylewki",
      "pasywne zyski ciepła"
    ],
    "measurementTechnique": "Kalkulacja procentowego spadku emisji ciepła na podstawie zawężającej się różnicy temperatur przy stałej temperaturze podłogi (24 st. C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek różnicy temperatur z 2K do 1K obniża emisję ciepła przez posadzkę o 50%.",
        "Zjawisko samoregulacji jest w pełni wystarczające w budynkach o zapotrzebowaniu na energię EU poniżej 15 kWh/(m2/rok)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-samoregulacja",
    "name": "Symulator Zjawiska Samoregulacji Termicznej",
    "description": "Narzędzie fizyczne wizualizujące blokadę oddawania ciepła przez podłogę pod wpływem pasywnych zysków wewnętrznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sreg-container" id="rk-sreg-app">
    <div class="rk-sreg-header">
        <h2>Kiedy montaż sterowników do podłogówki mija się z celem? Wyjątki i ograniczenia</h2>
        <p>Automatyka strefowa (termostaty pokojowe zamykające pętle) staje się technicznie nieefektywna w <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">budynkach pasywnych</a> oraz wysoce energooszczędnych o rocznym zapotrzebowaniu na energię użytkową do ogrzewania EU &le; 15 kWh/(m²&middot;rok), w których zastosowano grubą <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">płytę fundamentową grzewczą</a> (wylewka >10 cm). W takich obiektach bezwładność cieplna układu wynosi od 12 do 24 godzin, co sprawia, że zanim siłownik zamknie przepływ, zapotrzebowanie na ciepło zdąży się drastycznie zmienić.</p>
        
        <p>W domach o tak niskich stratach ciepła, o stabilny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budowli</a> dba zjawisko samoregulacji termicznej (self-regulation effect). Jeśli temperatura powietrza w pokoju wynosi 22&deg;C, a powierzchnia podłogi ma 24&deg;C, różnica wynosi zaledwie 2 K. Gdy temperatura w pokoju wzrośnie do 23&deg;C (np. z powodu <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywnych zysków od słońca</a>), różnica temperatur spada do 1 K, co powoduje automatyczny, fizyczny spadek emisji ciepła przez podłogę o blisko 50% bez jakiejkolwiek ingerencji elektroniki. W takich przypadkach optymalnym rozwiązaniem jest sterowanie wyłącznie centralne.</p>
    </div>

    <div class="rk-sreg-body">
        <div class="rk-sreg-simulator">
            <div class="rk-sreg-sim-title">
                <h3>Wizualizacja Samoregulacji Termicznej</h3>
                <span>Zobacz jak fizyka zastępuje elektronikę</span>
            </div>

            <div class="rk-sreg-layout">
                <div class="rk-sreg-controls">
                    <div class="rk-sreg-input-group">
                        <label>Zyski ciepła (Temp. powietrza w pokoju)</label>
                        <input type="range" class="rk-sreg-slider" id="srAirTemp" min="20.0" max="25.0" step="0.5" value="20.0">
                        <div class="rk-sreg-value-display"><span id="srAirDisplay">20.0</span> &deg;C</div>
                    </div>
                    
                    <div class="rk-sreg-fixed-val">
                        <div>Stała temperatura nagrzanej płyty podłogowej:</div>
                        <strong>24.0 &deg;C</strong>
                    </div>
                </div>

                <div class="rk-sreg-visual">
                    <div class="rk-sreg-block-msg" id="srBlockMsg">Fizyczna Blokada Emisji!</div>
                    
                    <div class="rk-sreg-emission-val"><span id="srPowerDisplay">100</span>%</div>
                    <div class="rk-sreg-emission-label">Emisja ciepła z posadzki</div>

                    <svg class="rk-sreg-heat-waves" viewBox="0 0 100 80">
                        <path class="rk-wave-path rk-wave-1" id="wave1" d="M20 70 Q35 50 50 70 T80 70" />
                        <path class="rk-wave-path rk-wave-2" id="wave2" d="M20 45 Q35 25 50 45 T80 45" />
                        <path class="rk-wave-path rk-wave-3" id="wave3" d="M20 20 Q35 0 50 20 T80 20" />
                    </svg>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const sliderAir = document.getElementById('srAirTemp');
    const displayAir = document.getElementById('srAirDisplay');
    const displayPower = document.getElementById('srPowerDisplay');
    const blockMsg = document.getElementById('srBlockMsg');
    
    // Fale SVG
    const wave1 = document.getElementById('wave1');
    const wave2 = document.getElementById('wave2');
    const wave3 = document.getElementById('wave3');

    const floorTemp = 24.0;
    const maxDelta = 4.0; // Różnica bazowa (24 - 20) dla 100% emisji

    function updatePhysics() {
        let airTemp = parseFloat(sliderAir.value);
        displayAir.innerText = airTemp.toFixed(1);

        let deltaT = floorTemp - airTemp;
        
        // Zabezpieczenie przed wartością ujemną
        if (deltaT < 0) {
            deltaT = 0;
        }

        // Procent emisji
        let powerPercent = (deltaT / maxDelta) * 100;
        
        if (powerPercent < 0) {
            powerPercent = 0;
        }

        displayPower.innerText = Math.round(powerPercent);

        // Wizualizacja fal
        if (powerPercent > 70) {
            wave1.style.opacity = '1';
            wave2.style.opacity = '0.8';
            wave3.style.opacity = '0.5';
            wave1.style.transform = 'translateY(0)';
            wave2.style.transform = 'translateY(0)';
            wave3.style.transform = 'translateY(0)';
            blockMsg.classList.remove('show');
        } else if (powerPercent > 40) {
            wave1.style.opacity = '0.8';
            wave2.style.opacity = '0.4';
            wave3.style.opacity = '0';
            wave1.style.transform = 'translateY(5px)';
            wave2.style.transform = 'translateY(10px)';
            blockMsg.classList.remove('show');
        } else if (powerPercent > 0) {
            wave1.style.opacity = '0.4';
            wave2.style.opacity = '0';
            wave3.style.opacity = '0';
            wave1.style.transform = 'translateY(15px)';
            blockMsg.classList.remove('show');
        } else {
            // Emisja równa 0%
            wave1.style.opacity = '0';
            wave2.style.opacity = '0';
            wave3.style.opacity = '0';
            blockMsg.classList.add('show');
        }
    }

    sliderAir.addEventListener('input', updatePhysics);
    
    // Inicjalizacja
    updatePhysics();
});
</script>



<style>
:root {
    --rk-pwm-dark: #0f172a;
    --rk-pwm-blue: #0284c7;
    --rk-pwm-blue-light: #e0f2fe;
    --rk-pwm-orange: #f97316;
    --rk-pwm-orange-light: #ffedd5;
    --rk-pwm-gray: #475569;
    --rk-pwm-bg: #ffffff;
    --rk-pwm-border: #e2e8f0;
}

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

.rk-pwm-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-pwm-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

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

.rk-pwm-body {
    padding: 40px 50px;
}

.rk-pwm-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.rk-pwm-step {
    background: #f8fafc;
    border: 1px solid var(--rk-pwm-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-pwm-step-number {
    display: inline-block;
    background: var(--rk-pwm-blue);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    text-align: center;
    line-height: 32px;
    font-weight: 800;
    margin-bottom: 15px;
}

.rk-pwm-step h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-pwm-dark);
    margin: 0 0 10px 0;
}

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

.rk-pwm-step a {
    color: var(--rk-pwm-blue);
    text-decoration: none;
    font-weight: 600;
}

/* Interaktywny Symulator */
.rk-pwm-simulator {
    background: var(--rk-pwm-dark);
    border-radius: 20px;
    padding: 40px;
    color: #ffffff;
}

.rk-pwm-sim-title {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 30px 0;
    text-align: center;
    color: var(--rk-pwm-orange);
}

.rk-pwm-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

.rk-pwm-control-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-pwm-control-group label {
    font-size: 14px;
    font-weight: 700;
    color: #cbd5e1;
}

.rk-pwm-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #334155;
    outline: none;
}

.rk-pwm-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-pwm-orange);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(249, 115, 22, 0.5);
}

.rk-pwm-val-display {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin-top: 5px;
}

/* Przełącznik Wylewki */
.rk-screed-toggle {
    display: flex;
    background: #1e293b;
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 20px;
}

.rk-screed-btn {
    flex: 1;
    padding: 12px;
    text-align: center;
    background: transparent;
    border: none;
    color: #94a3b8;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
}

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

/* Wyniki */
.rk-pwm-results {
    background: #1e293b;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-pwm-result-box {
    flex: 1;
    text-align: center;
}

.rk-pwm-result-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 8px;
}

.rk-pwm-result-value {
    font-size: 32px;
    font-weight: 900;
}

.rk-val-open { color: var(--rk-pwm-orange); }
.rk-val-closed { color: var(--rk-pwm-blue); }

.rk-pwm-visual {
    width: 120px;
    height: 120px;
    position: relative;
}

.rk-svg-circle {
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
    transition: stroke-dasharray 0.5s ease;
}

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

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

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

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

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

@media (max-width: 768px) {
    .rk-pwm-container { margin: 20px auto; }
    .rk-pwm-header, .rk-pwm-body, .rk-pwm-simulator, .rk-pwm-cta { padding: 30px 20px; }
    .rk-pwm-steps { grid-template-columns: 1fr; gap: 20px; }
    .rk-pwm-controls { grid-template-columns: 1fr; gap: 30px; }
    .rk-pwm-results { flex-direction: column; text-align: center; }
    .rk-svg-circle-wrap { margin: 20px auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-pwm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak poprawnie skonfigurować algorytm sterowania ogrzewaniem? Przewodnik krok po kroku",
    "description": "Techniczny przewodnik kalibracji automatyki podłogówki. Obliczanie czasu otwarcia siłowników w algorytmie PWM w zależności od uchybu temperatury i rodzaju wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-pwm",
    "name": "Parametry kalibracji algorytmu PWM/TPI w ogrzewaniu płaszczyznowym",
    "description": "Zbiór danych i wzorów matematycznych definiujących poprawną konfigurację systemów sterowania strefowego w zależności od masy termicznej jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm PWM w ogrzewaniu",
      "histereza czy PWM",
      "czas otwarcia siłownika podłogówki",
      "wylewka anhydrytowa a sterowanie",
      "taktowanie pompy ciepła"
    ],
    "measurementTechnique": "Obliczanie cyklu pracy siłowników (t_on) z wykorzystaniem wzmocnienia proporcjonalnego Kp (0,2) oraz uchybu regulacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Baza czasu dla wylewki betonowej: 60 minut.",
        "Baza czasu dla wylewki anhydrytowej: 30 minut.",
        "Minimalny bezpieczny czas otwarcia siłownika (ochrona przekaźników): 3 minuty."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-pwm",
    "name": "Symulator Algorytmu PWM dla Ogrzewania Podłogowego",
    "description": "Interaktywne narzędzie obliczeniowe pozwalające na symulację zachowania siłowników termoelektrycznych na podstawie zmiennej temperatury zadanej i aktualnej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pwm-container" id="rk-pwm-app">
    <div class="rk-pwm-header">
        <h2>Jak poprawnie skonfigurować algorytm sterowania ogrzewaniem? Przewodnik krok po kroku</h2>
        <p>Prawidłowa parametryzacja automatyki podłogówki zapobiega taktowaniu źródła ciepła i stabilizuje temperaturę. Poniżej znajduje się logika konfiguracji sterownika z uwzględnieniem algorytmu modulacji.</p>
    </div>

    <div class="rk-pwm-body">
        <div class="rk-pwm-steps">
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">1</span>
                <h3>Wybór trybu pracy (PWM vs Histereza)</h3>
                <p>Należy bezwzględnie wyłączyć klasyczną histerezę, ponieważ wygeneruje ona przesterowania temperatury o ponad 1,5°C ze względu na <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność wylewki</a>. Aktywuj algorytm <strong>PWM / TPI</strong>, dedykowany do układów inercyjnych.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">2</span>
                <h3>Określenie czasu cyklu PWM</h3>
                <p>Dla standardowej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej</a> czas cyklu ustawia się na <strong>60 minut</strong>. Dla wylewek anhydrytowych (cieńszych, szybko przewodzących ciepło) bazę czasu skracamy do <strong>30 minut</strong>.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">3</span>
                <h3>Wyliczenie czasu otwarcia siłownika</h3>
                <p>Algorytm oblicza czas zasilania siłownika w każdym cyklu na podstawie uchybu regulacji (różnicy temperatur):<br>
                <strong>Czas Otwarcia = Cykl × [ Kp × (Temp. Zadana - Temp. Aktualna) ]</strong><br>
                Gdzie wzmocnienie Kp wynosi zazwyczaj 0,2.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">4</span>
                <h3>Limity dla ochrony źródła</h3>
                <p>Należy wprowadzić minimalny czas otwarcia <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownika termoelektrycznego</a> na poziomie <strong>3 minut</strong>. Zapobiega to zbędnemu uruchamianiu pompy obiegowej na zaledwie kilkanaście sekund.</p>
            </div>
        </div>

        <div class="rk-pwm-simulator">
            <h3 class="rk-pwm-sim-title">Symulator czasu pracy siłownika w algorytmie PWM</h3>
            
            <div class="rk-screed-toggle">
                <button class="rk-screed-btn active" data-cycle="60" id="btnBeton">Wylewka Betonowa (Cykl 60 min)</button>
                <button class="rk-screed-btn" data-cycle="30" id="btnAnhydryt">Wylewka Anhydrytowa (Cykl 30 min)</button>
            </div>

            <div class="rk-pwm-controls">
                <div class="rk-pwm-control-group">
                    <label>Temperatura Zadana (Termostat)</label>
                    <input type="range" class="rk-pwm-slider" id="tempZadana" min="18.0" max="25.0" step="0.1" value="22.0">
                    <div class="rk-pwm-val-display"><span id="valZadana">22.0</span> °C</div>
                </div>
                <div class="rk-pwm-control-group">
                    <label>Temperatura Aktualna w Pokoju</label>
                    <input type="range" class="rk-pwm-slider" id="tempAktualna" min="18.0" max="25.0" step="0.1" value="21.5">
                    <div class="rk-pwm-val-display"><span id="valAktualna">21.5</span> °C</div>
                </div>
            </div>

            <div class="rk-pwm-results">
                <div class="rk-pwm-result-box">
                    <div class="rk-pwm-result-label">Zawór otwarty (Grzanie)</div>
                    <div class="rk-pwm-result-value rk-val-open"><span id="outOpen">6</span> min</div>
                </div>
                
                <div class="rk-svg-circle-wrap">
                    <svg class="rk-pwm-visual" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="45" fill="none" stroke="#0284c7" stroke-width="10"></circle>
                        <circle cx="50" cy="50" r="45" fill="none" stroke="#f97316" stroke-width="10" stroke-dasharray="0 283" class="rk-svg-circle" id="svgProgress"></circle>
                    </svg>
                </div>

                <div class="rk-pwm-result-box">
                    <div class="rk-pwm-result-label">Zawór zamknięty (Przerwa)</div>
                    <div class="rk-pwm-result-value rk-val-closed"><span id="outClosed">54</span> min</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pwm-cta">
        <h3>Projekt instalacji dopasowany do logiki sterownika</h3>
        <p>Błędnie dobrany rozstaw rur zniszczy efektywność nawet najlepszego sterownika z algorytmem PWM. Wybierz kompleksowy projekt instalacji grzewczej oparty na rzetelnych wyliczeniach hydraulicznych OZC.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO ONLINE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    let cycleTime = 60; // Domyślnie beton
    const Kp = 0.2; // Wzmocnienie proporcjonalne
    
    const btnBeton = document.getElementById('btnBeton');
    const btnAnhydryt = document.getElementById('btnAnhydryt');
    const sliderZadana = document.getElementById('tempZadana');
    const sliderAktualna = document.getElementById('tempAktualna');
    const displayZadana = document.getElementById('valZadana');
    const displayAktualna = document.getElementById('valAktualna');
    const outOpen = document.getElementById('outOpen');
    const outClosed = document.getElementById('outClosed');
    const svgProgress = document.getElementById('svgProgress');

    // Funkcja obliczająca bez użycia &&
    function calculatePWM() {
        let tZad = parseFloat(sliderZadana.value);
        let tAkt = parseFloat(sliderAktualna.value);
        
        displayZadana.innerText = tZad.toFixed(1);
        displayAktualna.innerText = tAkt.toFixed(1);

        let error = tZad - tAkt;
        
        if (error < 0) {
            error = 0;
        }

        let timeOn = cycleTime * (Kp * error);

        if (timeOn > cycleTime) {
            timeOn = cycleTime;
        }

        if (timeOn > 0) {
            if (timeOn < 3) {
                // Zabezpieczenie źródła - limit minimum 3 min
                timeOn = 0;
            }
        }

        let timeOnRounded = Math.round(timeOn);
        let timeOff = cycleTime - timeOnRounded;

        outOpen.innerText = timeOnRounded;
        outClosed.innerText = timeOff;

        // Obliczenie proporcji do koła SVG (obwód = 2 * PI * 45 = ok. 282.7)
        let circumference = 283;
        let percentage = timeOnRounded / cycleTime;
        let strokeDash = percentage * circumference;
        
        svgProgress.style.strokeDasharray = strokeDash + " 283";
    }

    // Eventy dla przycisków wylewki
    btnBeton.addEventListener('click', function() {
        btnBeton.classList.add('active');
        btnAnhydryt.classList.remove('active');
        cycleTime = 60;
        calculatePWM();
    });

    btnAnhydryt.addEventListener('click', function() {
        btnAnhydryt.classList.add('active');
        btnBeton.classList.remove('active');
        cycleTime = 30;
        calculatePWM();
    });

    // Eventy dla suwaków
    sliderZadana.addEventListener('input', calculatePWM);
    sliderAktualna.addEventListener('input', calculatePWM);

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



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #38bdf8;
    --rk-proj-gray: #475569;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-hover: #f8fafc;
}

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

.rk-project-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

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

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

.rk-project-body {
    padding: 40px 50px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-node-item {
    background: var(--rk-proj-bg);
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-node-item.is-active {
    border-color: var(--rk-proj-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
}

.rk-node-trigger {
    width: 100%;
    padding: 24px 30px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    gap: 24px;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.3s ease;
}

.rk-node-trigger:hover {
    background-color: var(--rk-proj-hover);
}

.rk-node-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--rk-proj-blue-light);
    color: var(--rk-proj-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-node-item.is-active .rk-node-icon {
    background: var(--rk-proj-blue);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

.rk-node-title {
    flex: 1;
}

.rk-node-title h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0;
    transition: color 0.3s ease;
}

.rk-node-item.is-active .rk-node-title h3 {
    color: var(--rk-proj-blue);
}

.rk-node-indicator {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: 2px solid var(--rk-proj-border);
    border-radius: 50%;
    position: relative;
    transition: all 0.3s ease;
}

.rk-node-indicator::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 12px;
    height: 12px;
    background: var(--rk-proj-blue);
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-node-item.is-active .rk-node-indicator {
    border-color: var(--rk-proj-blue);
}

.rk-node-item.is-active .rk-node-indicator::after {
    transform: translate(-50%, -50%) scale(1);
}

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

.rk-node-content-inner {
    padding: 0 30px 30px 102px; /* Dostosowane do ikony */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-proj-gray);
    border-top: 1px solid transparent;
}

.rk-node-item.is-active .rk-node-content-inner {
    border-top-color: var(--rk-proj-blue-light);
    padding-top: 20px;
    margin-top: 5px;
}

.rk-node-content-inner strong {
    color: var(--rk-proj-dark);
    font-weight: 700;
}

.rk-node-content-inner a {
    color: var(--rk-proj-blue);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-proj-blue);
    transition: all 0.2s;
}

.rk-node-content-inner a:hover {
    color: var(--rk-proj-dark);
    border-bottom-color: var(--rk-proj-dark);
}

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

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

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

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

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

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

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

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-project-container { margin: 20px auto; border-radius: 16px; }
    .rk-project-header, .rk-project-body, .rk-proj-cta { padding: 30px 20px; }
    .rk-project-header h2 { font-size: 24px; }
    
    .rk-node-trigger { padding: 20px; gap: 16px; }
    .rk-node-icon { width: 40px; height: 40px; border-radius: 10px; }
    .rk-node-icon svg { width: 20px; height: 20px; }
    .rk-node-title h3 { font-size: 16px; }
    
    .rk-node-content-inner { padding: 0 20px 20px 20px; } /* Usunięcie lewego wcięcia na mobile */
    .rk-btn-premium { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak automatyka strefowa wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zobacz, jak inteligentne sterowanie wymusza zmiany w architekturze kotłowni. Wpływ automatyki na bufor ciepła, pompę obiegową ΔP-c oraz rozstaw rur w projekcie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Wymagania hydrauliczne dla automatyki strefowej wg PN-EN 1264",
    "description": "Korelacja między cyfrowym zamykaniem pętli grzewczych a wydajnością masową pomp ciepła oraz bilansem ciśnień w rozdzielaczach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego online",
      "sprzęgło hydrauliczne w pompie ciepła",
      "bufor ciepła a podłogówka",
      "pompa obiegowa ze zmiennym ciśnieniem",
      "obliczenia OZC dla stref"
    ],
    "measurementTechnique": "Analiza współzależności parametrów hydraulicznych (przepływ masowy, opory miejscowe) w zmiennych warunkach pracy wywołanych dławieniem strefowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg stosowania sprzęgła/bufora przy zamykaniu 70% pętli dla zachowania przepływu parownika.",
        "Konieczność zastosowania pomp obiegowych z autoadaptacją ciśnienia stałego ΔP-c."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Symulator Wymagań Hydraulicznych",
    "description": "Interaktywny walidator zależności między sterowaniem strefowym a architekturą kotłowni i parametrami rozdzielaczy podłogowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rk-proj-sys">
    <div class="rk-project-header">
        <h2>Jak automatyka strefowa wpływa na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Dobór systemu sterowania musi być integralną częścią obliczeń hydraulicznych na etapie projektowania instalacji zgodnie z normą <strong>PN-EN 1264</strong>. Wybierz węzeł, aby zobaczyć inżynierskie konsekwencje.</p>
    </div>

    <div class="rk-project-body" id="rkProjectNodes">
        
        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Projektowanie stref i pętli (OZC)</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Dokładne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenie strat ciepła</a> dla każdego pomieszczenia (OZC) pozwala przyporządkować konkretne pętle do osobnych stref sterowania. Pomieszczenia o skrajnie różnych zyskach (np. salon z dużymi przeszkleniami południowymi vs sypialnia północna) muszą bezwzględnie posiadać niezależne termostaty.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><line x1="12" y1="2" x2="12" y2="8"></line><line x1="12" y1="16" x2="12" y2="22"></line><line x1="2" y1="12" x2="8" y2="12"></line><line x1="16" y1="12" x2="22" y2="12"></line></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Sprzęgło hydrauliczne i bufor w układzie</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Gdy sterowniki pokojowe zamkną np. 70% pętli na rozdzielaczach, drastycznie spada przepływ masowy w instalacji. Pompa ciepła, która do prawidłowej pracy wymaga minimalnego, stabilnego przepływu (np. 1,2 m³/h), wejdzie w stan awarii (błąd <em>flow switch error</em>). Projekt musi uwzględniać <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a> lub <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor spięty jako bypass</a>, aby odsprzęgnąć obieg źródła od zablokowanego obiegu instalacji.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Dobór pompy obiegowej z trybem ΔP-c</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa podłogówki</a> musi pracować w trybie stałego ciśnienia (proporcjonalnego redukowania obrotów) <strong>ΔP-c</strong>. Gdy automatyka zamyka kolejne siłowniki, opory hydrauliczne instalacji rosną. Inteligentna pompa wykrywa zmianę ciśnienia, redukuje swoje obroty i pobór mocy (z np. 45W do 4W), skutecznie zapobiegając generowaniu szumów na rotometrach rozdzielacza.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 9h16"></path><path d="M4 15h16"></path><path d="M10 3v18"></path><path d="M14 3v18"></path></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Rozstaw rur a autorytet zaworów</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Przy gęstym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur</a> (np. co 10 cm przy pompie ciepła) moc jednostkowa podłogi jest wysoka. Brak automatyki drastycznie pogłębia tu błędy regulacyjne, dlatego średnice rur zasilających rozdzielacz oraz autorytet zaworów z siłownikami muszą być tak przeliczone w projekcie, aby po odcięciu części stref nie dochodziło do rozrównoważenia pozostałych pętli.
                </div>
            </div>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h3>Nie zgaduj parametrów swojej instalacji</h3>
        <p>Gdy stawką jest bezawaryjna praca pompy ciepła, matematyka wygrywa z instalatorską intuicją. Wyeliminuj błędy, zaufaj inżynierom i zdobądź pełną dokumentację swojego układu.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-premium">
            ZAMÓW KOMPLEKSOWY PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO ONLINE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

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

    nodeItems.forEach(function(item) {
        const triggerBtn = item.querySelector('.rk-node-trigger');
        const contentDiv = item.querySelector('.rk-node-content');

        triggerBtn.addEventListener('click', function() {
            // Bezpieczna logika przełączania - eliminacja operatorów &&
            
            if (item.classList.contains('is-active')) {
                // Zwiń, jeśli jest już otwarty
                item.classList.remove('is-active');
                triggerBtn.setAttribute('aria-expanded', 'false');
                contentDiv.style.maxHeight = null;
            } else {
                // Najpierw zwiń wszystkie inne aktywne węzły
                nodeItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        if (otherItem.classList.contains('is-active')) {
                            otherItem.classList.remove('is-active');
                            otherItem.querySelector('.rk-node-trigger').setAttribute('aria-expanded', 'false');
                            otherItem.querySelector('.rk-node-content').style.maxHeight = null;
                        }
                    }
                });
                
                // Otwórz kliknięty węzeł
                item.classList.add('is-active');
                triggerBtn.setAttribute('aria-expanded', 'true');
                contentDiv.style.maxHeight = contentDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-matrix-dark: #0f172a;
    --rk-matrix-dark-card: #1e293b;
    --rk-matrix-blue: #0284c7;
    --rk-matrix-blue-light: #e0f2fe;
    --rk-matrix-green: #10b981;
    --rk-matrix-red: #ef4444;
    --rk-matrix-gray: #475569;
    --rk-matrix-gray-light: #f8fafc;
    --rk-matrix-bg: #ffffff;
    --rk-matrix-border: #e2e8f0;
}

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

.rk-matrix-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-matrix-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

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

.rk-matrix-body {
    padding: 40px 50px;
    background: var(--rk-matrix-gray-light);
}

/* Interaktywny Dashboard */
.rk-matrix-dashboard {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Panel wyboru (Poziomy) */
.rk-matrix-levels {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-matrix-btn {
    background: var(--rk-matrix-bg);
    border: 2px solid var(--rk-matrix-border);
    padding: 20px 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-matrix-btn:hover {
    border-color: var(--rk-matrix-blue-light);
    transform: translateY(-2px);
}

.rk-matrix-btn.is-active {
    background: var(--rk-matrix-blue);
    border-color: var(--rk-matrix-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-matrix-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-matrix-dark);
    transition: color 0.3s;
}

.rk-matrix-btn.is-active .rk-matrix-btn-title {
    color: #ffffff;
}

.rk-matrix-btn-sub {
    font-size: 11px;
    font-weight: 600;
    color: var(--rk-matrix-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.3s;
}

.rk-matrix-btn.is-active .rk-matrix-btn-sub {
    color: var(--rk-matrix-blue-light);
}

/* Wyświetlacz danych (Output) */
.rk-matrix-output {
    background: var(--rk-matrix-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-matrix-border);
    padding: 35px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-matrix-output-header {
    border-bottom: 1px dashed var(--rk-matrix-border);
    padding-bottom: 25px;
}

.rk-matrix-output-header h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-matrix-dark);
    margin: 0 0 10px 0;
}

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

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

/* Parametry grid */
.rk-matrix-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-matrix-stat-box {
    background: var(--rk-matrix-gray-light);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-matrix-border);
}

.rk-stat-title {
    font-size: 12px;
    color: var(--rk-matrix-gray);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.rk-stat-desc {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-matrix-dark);
    line-height: 1.4;
}

.rk-stat-desc.rk-color-red { color: var(--rk-matrix-red); }
.rk-stat-desc.rk-color-green { color: var(--rk-matrix-green); }
.rk-stat-desc.rk-color-blue { color: var(--rk-matrix-blue); }

/* SVG Wizualizacja */
.rk-matrix-visual {
    background: var(--rk-matrix-dark-card);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 120px;
}

.rk-svg-comp { transition: all 0.4s ease; fill: #334155; }
.rk-svg-line { transition: all 0.4s ease; stroke: #334155; stroke-width: 3; fill: none; }
.rk-svg-active { fill: var(--rk-matrix-blue); }
.rk-svg-active-line { stroke: var(--rk-matrix-blue); stroke-dasharray: 6 4; animation: rkFlowAnim 1s linear infinite; }
.rk-svg-active-green { fill: var(--rk-matrix-green); }

@keyframes rkFlowAnim {
    to { stroke-dashoffset: -10; }
}

@media (max-width: 768px) {
    .rk-matrix-container { margin: 20px auto; border-radius: 16px; }
    .rk-matrix-header, .rk-matrix-body { padding: 25px 20px; }
    .rk-matrix-header h2 { font-size: 24px; }
    
    .rk-matrix-levels { grid-template-columns: 1fr; gap: 10px; }
    .rk-matrix-btn { flex-direction: row; padding: 15px 20px; justify-content: space-between; }
    .rk-matrix-btn-title { font-size: 15px; }
    
    .rk-matrix-output { padding: 25px 20px; }
    .rk-matrix-stats { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Zestawienie systemów: Brak sterowników vs Pogodówka vs Termostaty",
    "description": "Kompleksowa tabela porównawcza technologii sterowania ogrzewaniem podłogowym. Sprawdź, który wariant zapewnia najwyższy komfort i najniższe 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-porownanie",
    "name": "Macierz porównawcza technologii sterowania podłogówką",
    "description": "Zestawienie efektywności, kosztów i komfortu dla 4 wariantów instalacyjnych: Brak, Pogodowe, Pokojowe, Hybrydowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela porównawcza ogrzewanie podłogowe",
      "sterowanie pogodowe a termostaty pokojowe",
      "jakie sterowanie do pompy ciepła wybrać",
      "wady i zalety sterowania podłogówką",
      "zawór mieszający w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Macierz analityczna oceniająca potencjał oszczędności energii i komfortu termicznego w relacji do skomplikowania układu hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant 1: Brak automatyki - najwyższe ryzyko przegrzewania i najniższy komfort.",
        "Wariant 4: Hybryda - maksymalna optymalizacja COP pompy ciepła połączona ze strefową blokadą zysków pasywnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-porownanie",
    "name": "Kalkulator Poziomów Automatyki (System Upgrade Simulator)",
    "description": "Interaktywny interfejs typu dashboard umożliwiający przełączanie i weryfikację ewolucji systemów sterowania HVAC.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-matrix-container" id="rk-matrix-app">
    <div class="rk-matrix-header">
        <h2>Porównanie systemów: Od braku automatyki do pełnej hybrydy</h2>
        <p>Decyzja o wyborze sterowania determinuje koszty eksploatacji na lata. Zamiast obszernej tabeli, przygotowałem interaktywną macierz. Wybierz poziom zaawansowania instalacji, aby sprawdzić, co zyskujesz, a co tracisz.</p>
    </div>

    <div class="rk-matrix-body">
        <div class="rk-matrix-dashboard">
            
            <div class="rk-matrix-levels">
                <button class="rk-matrix-btn is-active" data-level="0">
                    <span class="rk-matrix-btn-sub">Wariant Podstawowy</span>
                    <span class="rk-matrix-btn-title">Brak Sterowników</span>
                </button>
                <button class="rk-matrix-btn" data-level="1">
                    <span class="rk-matrix-btn-sub">Tylko Źródło</span>
                    <span class="rk-matrix-btn-title">Sterowanie Pogodowe</span>
                </button>
                <button class="rk-matrix-btn" data-level="2">
                    <span class="rk-matrix-btn-sub">Tylko Strefy</span>
                    <span class="rk-matrix-btn-title">Termostaty Pokojowe</span>
                </button>
                <button class="rk-matrix-btn" data-level="3">
                    <span class="rk-matrix-btn-sub">Standard Inżynierski</span>
                    <span class="rk-matrix-btn-title">Pełna Hybryda</span>
                </button>
            </div>

            <div class="rk-matrix-output">
                
                <div class="rk-matrix-output-header">
                    <h3 id="mxTitle">Wariant 0: Instalacja "Zrób to najtaniej"</h3>
                    <p id="mxDesc">Układ pozbawiony jakiejkolwiek logiki. Pompa pracuje na sztywnych parametrach zasilania i ignoruje <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady wodnego ogrzewania podłogowego</a>, takie jak wysoka inercja i ryzyko permanentnego przegrzewania.</p>
                </div>

                <div class="rk-matrix-visual">
                    <svg viewBox="0 0 400 80" style="width:100%; max-width: 350px;">
                        <rect x="20" y="20" width="50" height="50" rx="4" class="rk-svg-comp rk-svg-active-green" id="svgSource"/>
                        <text x="45" y="50" fill="#ffffff" font-size="10" font-family="sans-serif" text-anchor="middle" font-weight="bold">ŹRÓDŁO</text>
                        
                        <path d="M 70 45 L 160 45" class="rk-svg-line" id="svgLine1"/>

                        <circle cx="115" cy="15" r="8" class="rk-svg-comp" id="svgSensorOut"/>
                        <path d="M 115 23 L 115 45" class="rk-svg-line" id="svgLineOut"/>

                        <rect x="160" y="25" width="80" height="40" rx="4" class="rk-svg-comp rk-svg-active-green" id="svgDistributor"/>
                        
                        <path d="M 240 35 L 310 35" class="rk-svg-line" id="svgLine2"/>
                        <path d="M 240 55 L 310 55" class="rk-svg-line" id="svgLine3"/>

                        <circle cx="330" cy="35" r="15" class="rk-svg-comp" id="svgThermostat1"/>
                        <circle cx="330" cy="55" r="15" class="rk-svg-comp" id="svgThermostat2"/>
                    </svg>
                </div>

                <div class="rk-matrix-stats">
                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Główna zaleta</div>
                        <div class="rk-stat-desc rk-color-blue" id="mxPro">Najniższy koszt instalacji na etapie budowy domu.</div>
                    </div>
                    
                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Krytyczna wada</div>
                        <div class="rk-stat-desc rk-color-red" id="mxCon">Gigantyczne koszty eksploatacji i skrajny dyskomfort.</div>
                    </div>

                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Potencjał Oszczędności</div>
                        <div class="rk-stat-desc" id="mxSave">0% (Baza odniesienia)</div>
                    </div>

                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Wymagania hydrauliczne</div>
                        <div class="rk-stat-desc" id="mxHydra">Podstawowy rozdzielacz (brak siłowników i sprzęgła).</div>
                    </div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-matrix-btn');
    
    // Pola tekstowe Outputu
    const mxTitle = document.getElementById('mxTitle');
    const mxDesc = document.getElementById('mxDesc');
    const mxPro = document.getElementById('mxPro');
    const mxCon = document.getElementById('mxCon');
    const mxSave = document.getElementById('mxSave');
    const mxHydra = document.getElementById('mxHydra');

    // Elementy SVG
    const svgSource = document.getElementById('svgSource');
    const svgSensorOut = document.getElementById('svgSensorOut');
    const svgDistributor = document.getElementById('svgDistributor');
    const svgThermostat1 = document.getElementById('svgThermostat1');
    const svgThermostat2 = document.getElementById('svgThermostat2');
    
    const svgLine1 = document.getElementById('svgLine1');
    const svgLineOut = document.getElementById('svgLineOut');
    const svgLine2 = document.getElementById('svgLine2');
    const svgLine3 = document.getElementById('svgLine3');

    // Słownik danych dla 4 wariantów (bez użycia zewnętrznych plików JSON i znaków $$)
    const matrixData = {
        "0": {
            title: "Wariant 0: Instalacja 'Zrób to najtaniej'",
            desc: "Układ pozbawiony jakiejkolwiek logiki. Pompa pracuje na sztywnych parametrach zasilania i ignoruje <a href='https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/'>wady wodnego ogrzewania podłogowego</a>, takie jak wysoka inercja i ryzyko permanentnego przegrzewania.",
            pro: "Najniższy koszt instalacji hydraulicznej.",
            proClass: "rk-color-blue",
            con: "Gigantyczne koszty eksploatacji i skrajny dyskomfort temperaturowy.",
            conClass: "rk-color-red",
            save: "0% (Baza odniesienia)",
            hydra: "Podstawowy rozdzielacz (bez siłowników)."
        },
        "1": {
            title: "Wariant 1: Sterowanie Pogodowe (Tylko Źródło)",
            desc: "System oparty wyłącznie o <a href='https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/'>sterowanie pogodowe</a>. Centrala dostosowuje temperaturę zasilania (Tz) do temperatury zewnętrznej. Poprawia to sprawność źródła, ale ignoruje pasywne zyski ciepła wewnątrz pokojów.",
            pro: "Wysoki współczynnik COP pompy ciepła dzięki niskiej temperaturze zasilania.",
            proClass: "rk-color-green",
            con: "Brak reakcji na nasłonecznienie salonu. Zjawisko lokalnego przegrzewania wciąż występuje.",
            conClass: "rk-color-red",
            save: "Ok. 8 - 12% oszczędności",
            hydra: "Rozdzielacz podstawowy + zewnętrzny czujnik NTC na elewacji."
        },
        "2": {
            title: "Wariant 2: Termostaty Pokojowe (Tylko Strefy)",
            desc: "W pokojach zamontowane są <a href='https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/'>termostaty</a> zamykające przepływ, gdy zostanie osiągnięta temperatura zadana. Rozwiązuje to problem przegrzewania od słońca, ale źródło ciepła pracuje 'w ciemno' na wysokich parametrach.",
            pro: "Idealny komfort w każdym pomieszczeniu i precyzyjne odcinanie pasywnych zysków.",
            proClass: "rk-color-green",
            con: "Taktowanie pompy ciepła i niska sprawność z powodu braku informacji pogodowej.",
            conClass: "rk-color-red",
            save: "Ok. 10 - 15% oszczędności",
            hydra: "Rozdzielacz z siłownikami + listwa sterująca + wymagane sprzęgło hydrauliczne."
        },
        "3": {
            title: "Wariant 3: Pełna Hybryda (Standard Inżynierski)",
            desc: "Złoty standard. Źródło ciepła jest sterowane krzywą pogodową i optymalizowane przez <a href='https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/'>zawór mieszający</a>, a wnętrze budynku chronione jest przez inteligentne termostaty strefowe działające w pętli sprzężenia zwrotnego.",
            pro: "Maksymalny COP pompy ciepła i idealny komfort bez wahań temperatury.",
            proClass: "rk-color-green",
            con: "Najwyższy koszt inwestycyjny oraz konieczność profesjonalnego zaprojektowania hydrauliki.",
            conClass: "rk-color-gray",
            save: "Nawet do 25% oszczędności rocznie",
            hydra: "Pełna automatyka: siłowniki, czujniki pogodowe, termostaty dwukanałowe, sprzęgło/bufor."
        }
    };

    function updateDashboard(level) {
        // Zabezpieczenie przed błędem klucza
        let safeLevel = level;
        if (safeLevel !== "0") {
            if (safeLevel !== "1") {
                if (safeLevel !== "2") {
                    if (safeLevel !== "3") {
                        safeLevel = "0"; // domyślnie
                    }
                }
            }
        }
        
        const data = matrixData[safeLevel];

        // Aktualizacja tekstów
        mxTitle.innerHTML = data.title;
        mxDesc.innerHTML = data.desc;
        mxPro.innerHTML = data.pro;
        mxPro.className = "rk-stat-desc " + data.proClass;
        mxCon.innerHTML = data.con;
        mxCon.className = "rk-stat-desc " + data.conClass;
        mxSave.innerHTML = data.save;
        mxHydra.innerHTML = data.hydra;

        // Reset klas SVG
        svgSensorOut.classList.remove('rk-svg-active-green');
        svgLineOut.classList.remove('rk-svg-active-line');
        svgThermostat1.classList.remove('rk-svg-active');
        svgThermostat2.classList.remove('rk-svg-active');
        svgLine2.classList.remove('rk-svg-active-line');
        svgLine3.classList.remove('rk-svg-active-line');
        svgLine1.classList.add('rk-svg-active-line');

        // Bezpieczna logika wizualizacji SVG (bez operatorów &&)
        if (safeLevel === "1") {
            // Tylko Pogodówka
            svgSensorOut.classList.add('rk-svg-active-green');
            svgLineOut.classList.add('rk-svg-active-line');
        } else {
            if (safeLevel === "2") {
                // Tylko Termostaty
                svgThermostat1.classList.add('rk-svg-active');
                svgThermostat2.classList.add('rk-svg-active');
                svgLine2.classList.add('rk-svg-active-line');
                svgLine3.classList.add('rk-svg-active-line');
            } else {
                if (safeLevel === "3") {
                    // Hybryda (Wszystko aktywne)
                    svgSensorOut.classList.add('rk-svg-active-green');
                    svgLineOut.classList.add('rk-svg-active-line');
                    svgThermostat1.classList.add('rk-svg-active');
                    svgThermostat2.classList.add('rk-svg-active');
                    svgLine2.classList.add('rk-svg-active-line');
                    svgLine3.classList.add('rk-svg-active-line');
                }
            }
        }
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Obsługa klas aktywnych na przyciskach
            btns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            this.classList.add('is-active');
            
            // Pobranie i aktualizacja poziomu
            const lvl = this.getAttribute('data-level');
            updateDashboard(lvl);
        });
    });

    // Inicjalizacja stanu bazowego
    updateDashboard("0");
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-gray: #64748b;
    --rk-err-gray-light: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

.rk-errors-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(239, 68, 68, 0.1);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

.rk-errors-header {
    padding: 40px 40px 30px;
    background: var(--rk-err-gray-light);
    border-bottom: 1px solid var(--rk-err-border);
    position: relative;
}

.rk-errors-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-err-red);
}

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

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

.rk-errors-list {
    padding: 30px 40px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-error-item {
    background: var(--rk-err-bg);
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    transition: all 0.3s ease;
}

.rk-error-item.is-open {
    border-color: var(--rk-err-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-error-trigger {
    width: 100%;
    padding: 24px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    text-align: left;
}

.rk-error-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--rk-err-gray-light);
    color: var(--rk-err-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.rk-error-item.is-open .rk-error-icon {
    background: var(--rk-err-red-light);
    color: var(--rk-err-red);
    transform: scale(1.05);
}

.rk-error-title {
    flex: 1;
}

.rk-error-title h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-error-item.is-open .rk-error-title h3 {
    color: var(--rk-err-red);
}

.rk-error-chevron {
    flex-shrink: 0;
    color: var(--rk-err-gray);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-error-item.is-open .rk-error-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-red);
}

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

.rk-error-content-inner {
    padding: 0 24px 24px 84px; /* Wcięcie odpowiadające ikonie */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-gray);
}

.rk-error-content-inner strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

.rk-error-content-inner a {
    color: var(--rk-err-blue);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-err-blue);
    transition: border-color 0.2s, color 0.2s;
}

.rk-error-content-inner a:hover {
    color: var(--rk-err-dark);
    border-bottom-color: var(--rk-err-dark);
}

/* Responsywność Mobile (Zachowanie układu pionowego) */
@media (max-width: 768px) {
    .rk-errors-container { margin: 20px auto; border-radius: 16px; }
    .rk-errors-header { padding: 30px 20px; }
    .rk-errors-list { padding: 20px; }
    
    .rk-error-trigger { padding: 20px; gap: 15px; align-items: flex-start; }
    .rk-error-icon { width: 36px; height: 36px; border-radius: 10px; }
    .rk-error-icon svg { width: 20px; height: 20px; }
    
    .rk-error-title h3 { font-size: 16px; padding-top: 6px; }
    .rk-error-chevron { padding-top: 6px; }
    
    .rk-error-content-inner { padding: 0 20px 20px 20px; } /* Usunięcie wcięcia na telefonach */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Najczęściej popełniane błędy przy doborze i montażu sterowników",
    "description": "Zestawienie najgroźniejszych błędów instalacyjnych automatyki grzewczej. Sprawdź, jak błędna kalibracja algorytmów i złe rozmieszczenie czujników niszczy posadzki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Katalog błędów instalacyjnych automatyki grzewczej",
    "description": "Techniczne zestawienie konsekwencji nieprawidłowego montażu komponentów automatyki ogrzewania płaszczyznowego, wpływających na efektywność układu i zużycie energii.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż termostatu pokojowego",
      "uszkodzony czujnik podłogowy",
      "siłowniki normalnie zamknięte NC",
      "bezwładność cieplna podłogówki",
      "taktowanie pompy ciepła"
    ],
    "measurementTechnique": "Analiza usterek i błędów konfiguracyjnych w instalacjach płaszczyznowych oraz ich bezpośredni wpływ na parametr COP i amplitudę temperatur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Fałszowanie odczytów przez złe umiejscowienie termostatu ściennego.",
        "Brak peszla ochronnego uniemożliwiający serwis czujnika NTC w wylewce.",
        "Konflikt logiczny przekaźników i siłowników na rozdzielaczu.",
        "Zbyt głębokie obniżenia dobowe wymuszające pracę na nieefektywnych parametrach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-bledy",
    "name": "Moduł Diagnostyki Błędów Wykonawczych",
    "description": "Interaktywny interfejs pozwalający użytkownikowi na identyfikację błędów konfiguracyjnych poprzez mechaniczną interakcję z modułami diagnostycznymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-container" id="rk-errors-app">
    <div class="rk-errors-header">
        <h2>Najczęściej popełniane błędy przy doborze i montażu sterowników</h2>
        <p>Poznaj powtarzalne potknięcia instalatorów, które drastycznie podnoszą koszty eksploatacji i prowadzą do uszkodzeń systemu grzewczego. Wybierz błąd, aby poznać jego skutki.</p>
    </div>

    <div class="rk-errors-list" id="rkErrorList">
        
        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Montaż termostatu pokojowego w niewłaściwym miejscu</h3>
                </div>
                <div class="rk-error-chevron">
                    <svg width="24" height="24" 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-error-content">
                <div class="rk-error-content-inner">
                    Umieszczenie sterownika na ścianie zewnętrznej (wychłodzonej), w bezpośrednim zasięgu promieni słonecznych lub nad źródłem ciepła (np. nad lodówką lub obok telewizora). <strong>Skutkuje to fałszowaniem odczytów</strong> i wyłączaniem ogrzewania w całym domu, mimo drastycznego niedogrzania pozostałych stref. Zobacz inne <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu</a>.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Brak peszli ochronnych dla czujników podłogowych</h3>
                </div>
                <div class="rk-error-chevron">
                    <svg width="24" height="24" 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-error-content">
                <div class="rk-error-content-inner">
                    Zabetonowanie <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujnika podłogowego</a> NTC bezpośrednio w jastrychu to błąd krytyczny. W przypadku awarii elementu półprzewodnikowego wymiana czujnika jest niemożliwa bez kucia wylewki i całkowitego zniszczenia posadzki. Czujnik musi być zawsze wprowadzony w gładki peszel zakończony specjalną mosiężną zaślepką, ułatwiającą jego bezinwazyjną wymianę.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Łączenie niedopasowanych siłowników (NC/NO) z listwą</h3>
                </div>
                <div class="rk-error-chevron">
                    <svg width="24" height="24" 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-error-content">
                <div class="rk-error-content-inner">
                    Montaż <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> normalnie otwartych (NO) do listwy skonfigurowanej pod siłowniki normalnie zamknięte (NC). <strong>Powoduje to całkowite odwrócenie logiki systemu</strong> – gdy termostat wykryje, że pokój wymaga grzania, listwa odcina przepływ, a podłoga zaczyna intensywnie stygnąć.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Harmonogramy dobowe o zbyt dużej amplitudzie</h3>
                </div>
                <div class="rk-error-chevron">
                    <svg width="24" height="24" 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-error-content">
                <div class="rk-error-content-inner">
                    Programowanie obniżeń temperatury o 3°C do 4°C na czas 8-godzinnej obecności w pracy mija się z celem. Przez <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>, podłoga wychłodzi się dopiero pod koniec nieobecności, a ponowne jej nagrzanie zajmie kolejne 5-8 godzin. Zmusza to pompę ciepła do pracy na skrajnie wysokich parametrach zasilania, co <strong>drastycznie obniża jej sprawność (COP)</strong>. Maksymalne zalecane obniżenie temperatur przy podłogówce wynosi od 1,0°C do 1,5°C.
                </div>
            </div>
        </div>

    </div>
</div>

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

    errorItems.forEach(function(item) {
        const triggerBtn = item.querySelector('.rk-error-trigger');
        const contentDiv = item.querySelector('.rk-error-content');

        triggerBtn.addEventListener('click', function() {
            // Czysta, bezpieczna logika (bez operatorów '&&')
            
            // Jeśli aktualnie kliknięty element jest otwarty - zamknij go
            if (item.classList.contains('is-open')) {
                item.classList.remove('is-open');
                triggerBtn.setAttribute('aria-expanded', 'false');
                contentDiv.style.maxHeight = null;
            } else {
                // Najpierw zwiń wszystkie inne rozwinięte elementy
                errorItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        if (otherItem.classList.contains('is-open')) {
                            otherItem.classList.remove('is-open');
                            otherItem.querySelector('.rk-error-trigger').setAttribute('aria-expanded', 'false');
                            otherItem.querySelector('.rk-error-content').style.maxHeight = null;
                        }
                    }
                });
                
                // Następnie rozwiń kliknięty element
                item.classList.add('is-open');
                triggerBtn.setAttribute('aria-expanded', 'true');
                contentDiv.style.maxHeight = contentDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gray: #475569;
    --rk-case-gray-light: #f8fafc;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-accent: #38bdf8;
}

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

.rk-case-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

.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;
}

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

.rk-case-body {
    padding: 40px 50px;
    background: var(--rk-case-gray-light);
}

/* Oś czasu konsultacji (Timeline) */
.rk-case-timeline {
    display: flex;
    flex-direction: column;
    gap: 30px;
    position: relative;
}

.rk-case-timeline::before {
    content: '';
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 28px;
    width: 2px;
    background: var(--rk-case-border);
    z-index: 1;
}

/* Pojedynczy blok dialogu */
.rk-case-block {
    display: flex;
    gap: 20px;
    position: relative;
    z-index: 2;
}

/* Awatary */
.rk-case-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 900;
    font-size: 20px;
    border: 4px solid var(--rk-case-gray-light);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-avatar-client {
    background: #ffffff;
    color: var(--rk-case-gray);
    border-color: #ffffff;
}

.rk-avatar-expert {
    background: var(--rk-case-blue);
    color: #ffffff;
}

/* Dymki (Bubbles) */
.rk-case-bubble {
    flex: 1;
    background: var(--rk-case-bg);
    padding: 25px 30px;
    border-radius: 0 20px 20px 20px;
    border: 1px solid var(--rk-case-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-bubble-expert {
    background: var(--rk-case-blue-light);
    border-color: rgba(2, 132, 199, 0.2);
    border-radius: 20px 0 20px 20px;
}

.rk-case-meta {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-gray);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-case-meta span {
    color: var(--rk-case-blue);
}

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

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

/* Interaktywny przycisk odsłaniania */
.rk-case-reveal-wrapper {
    margin-top: 15px;
}

.rk-case-reveal-btn {
    background: var(--rk-case-dark);
    color: #ffffff;
    border: none;
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.2);
}

.rk-case-reveal-btn:hover {
    background: var(--rk-case-blue);
    transform: translateY(-2px);
}

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

.rk-case-reveal-btn.is-opened svg {
    transform: rotate(180deg);
}

/* Ukryta odpowiedź eksperta */
.rk-case-hidden-response {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s ease;
}

.rk-case-hidden-response.is-visible {
    opacity: 1;
}

@media (max-width: 768px) {
    .rk-case-container { margin: 20px auto; border-radius: 16px; }
    .rk-case-header, .rk-case-body { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    
    .rk-case-timeline::before { left: 24px; }
    .rk-case-block { gap: 15px; }
    
    .rk-case-avatar { width: 48px; height: 48px; font-size: 16px; border-width: 3px; }
    .rk-case-bubble { padding: 20px; border-radius: 16px; }
    .rk-case-bubble-expert { border-radius: 16px; } /* Na mobile unifikujemy rogi dymków */
    
    .rk-case-text { font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Studium przypadku: Agnieszka z Warszawy pyta, czy warto oszczędzać na sterownikach",
    "description": "Zapis autentycznej konsultacji inżynieryjnej. Rozwiewamy mity instalatorów dotyczące oszczędzania na automatyce strefowej przy pompie ciepła w nowo budowanym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Analiza merytoryczna doradztwa technicznego w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie twardych argumentów inżynieryjnych przeciwko pozornym oszczędnościom inwestycyjnym na etapie doboru automatyki źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy pompa ciepła poradzi sobie bez sterowników",
      "krzywa grzewcza a zyski słoneczne",
      "niezależne termostaty warszawa",
      "błędy instalatorów pomp ciepła",
      "projekt instalacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Jakościowa ocena wpływu pasywnych zysków bytowych na efektywność systemu sterowanego wyłącznie krzywą pogodową względem logiki strefowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Oparcie sterowania wyłącznie na czujniku zewnętrznym skutkuje przegrzewaniem wnętrz pod wpływem słońca i sprzętów domowych.",
        "Zjawisko przegrzewania stanowi bezpośrednie ryzyko dla stabilności wymiarowej posadzek winylowych i warstwowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Dziennik Konsultacji Inżynieryjnej",
    "description": "Interaktywny interfejs typu 'Timeline' przeprowadzający użytkownika przez proces zbijania mitów wykonawczych i diagnozy problemów projektowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-header-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
        </div>
        <h2>Agnieszka z Warszawy pyta, czy warto oszczędzać na sterownikach</h2>
        <p>Codziennie otrzymuję podobne wiadomości. Inwestorzy są celowo wprowadzani w błąd przez instalatorów, którzy szukają łatwiejszego montażu kosztem Twojego portfela. Zobacz zapis autentycznej konsultacji.</p>
    </div>

    <div class="rk-case-body">
        <div class="rk-case-timeline">
            
            <div class="rk-case-block">
                <div class="rk-case-avatar rk-avatar-client">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                </div>
                <div class="rk-case-bubble">
                    <div class="rk-case-meta">Inwestorka <span>Agnieszka</span> (Dom 120m², Warszawa)</div>
                    <p class="rk-case-text">
                        Panie Robercie, budujemy dom. Nasz instalator stwierdził, że skoro mamy pompę ciepła, to ona "sama sobie poradzi" krzywą grzewczą. Twierdzi, że montowanie osobnych termostatów do salonu i sypialni to zbędny wydatek rzędu 3000 zł i tylko psuje sprawność pompy. Czy faktycznie powinnam z tego zrezygnować na rzecz oszczędności?
                    </p>
                    
                    <div class="rk-case-reveal-wrapper">
                        <button class="rk-case-reveal-btn" id="btnReveal1" aria-expanded="false">
                            Pokaż odpowiedź eksperta
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                        </button>
                    </div>
                </div>
            </div>

            <div class="rk-case-hidden-response" id="response1">
                <div class="rk-case-block">
                    <div class="rk-case-avatar rk-avatar-expert">RK</div>
                    <div class="rk-case-bubble rk-case-bubble-expert">
                        <div class="rk-case-meta">Specjalista HVAC <span>Robert Kucharski</span></div>
                        <p class="rk-case-text" style="margin-bottom: 15px;">
                            Pani Agnieszko, instalator proponuje rozwiązanie najwygodniejsze dla niego, nie dla Pani. <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> oparta wyłącznie na czujniku pogodowym wie tylko to, jaka jest temperatura na zewnątrz. Nie ma pojęcia, co dzieje się w budynku.
                        </p>
                        <p class="rk-case-text" style="margin-bottom: 15px;">
                            Jeśli w słoneczny, zimowy dzień do salonu przez duże okna wpadnie słońce, zaczną działać <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła</a>. Temperatura w salonie skoczy do 25°C, a pompa nadal będzie tłoczyć ciepłą wodę do podłogi, bo na dworze jest mróz. Efekt? Gigantyczne przegrzanie wnętrza, marnowanie drogiego prądu, a w przypadku <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">paneli winylowych</a> – ryzyko rozeschnięcia się zamków od temperatury posadzki przekraczającej 27°C.
                        </p>
                        <p class="rk-case-text">
                            Te 3000 zł to nie "zbędny wydatek", to jednorazowa inwestycja, która zapobiegnie wyrzucaniu w błoto setek złotych co sezon. Solidny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt instalacji</a> musi zakładać automatykę strefową, połączoną przez bufor lub sprzęgło, aby odsprzęgnąć hydraulicznie pompę od zamykających się pętli.
                        </p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnReveal = document.getElementById('btnReveal1');
    const responsePanel = document.getElementById('response1');

    btnReveal.addEventListener('click', function() {
        // Bezpieczne przełączanie bez użycia operatorów logicznych &&
        
        let isExpanded = btnReveal.getAttribute('aria-expanded');

        if (isExpanded === 'false') {
            // Otwieranie
            btnReveal.setAttribute('aria-expanded', 'true');
            btnReveal.classList.add('is-opened');
            responsePanel.classList.add('is-visible');
            
            // Dynamiczne obliczenie wysokości dla animacji max-height
            let scrollHeight = responsePanel.scrollHeight;
            responsePanel.style.maxHeight = scrollHeight + "px";
            
            // Zmiana tekstu
            btnReveal.innerHTML = `Ukryj odpowiedź <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            
        } else {
            // Zamykanie
            btnReveal.setAttribute('aria-expanded', 'false');
            btnReveal.classList.remove('is-opened');
            responsePanel.classList.remove('is-visible');
            
            responsePanel.style.maxHeight = "0px";
            
            // Zmiana tekstu
            btnReveal.innerHTML = `Pokaż odpowiedź eksperta <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
        }
    });
});
</script>



<style>
:root {
    --rk-eeat-dark: #0f172a;
    --rk-eeat-card: #1e293b;
    --rk-eeat-blue: #0284c7;
    --rk-eeat-text: #cbd5e1;
    --rk-eeat-bg: #ffffff;
    --rk-eeat-border: #e2e8f0;
    --rk-eeat-gold: #eab308;
}

.rk-eeat-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-eeat-bg);
    border-radius: 0;
    border: 2px solid var(--rk-eeat-dark);
}

.rk-eeat-header {
    padding: 30px 40px;
    background: var(--rk-eeat-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-eeat-blue);
}

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

.rk-eeat-body {
    display: flex;
    padding: 0;
}

/* Sidebar z autorem */
.rk-eeat-sidebar {
    width: 280px;
    background: var(--rk-eeat-card);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 1px solid var(--rk-eeat-border);
}

.rk-eeat-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-eeat-blue);
    margin-bottom: 20px;
}

.rk-eeat-name {
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 5px 0;
}

.rk-eeat-role {
    font-size: 13px;
    color: var(--rk-eeat-blue);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-eeat-socials {
    display: flex;
    gap: 15px;
    margin-top: 15px;
}

.rk-eeat-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #334155;
    color: #ffffff;
    border-radius: 8px;
    text-decoration: none;
}

.rk-eeat-social-link:hover {
    background: var(--rk-eeat-blue);
}

/* Panel główny */
.rk-eeat-content {
    flex: 1;
    background: var(--rk-eeat-bg);
    display: flex;
    flex-direction: column;
}

.rk-eeat-tabs {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-eeat-border);
}

.rk-eeat-tab-btn {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    text-transform: uppercase;
}

.rk-eeat-tab-btn.is-active {
    color: var(--rk-eeat-dark);
    border-bottom-color: var(--rk-eeat-blue);
    background: var(--rk-eeat-bg);
}

.rk-eeat-tab-panels {
    padding: 40px;
}

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

.rk-eeat-panel.is-active {
    display: block;
}

/* Cytat / Treść */
.rk-eeat-quote-box {
    position: relative;
}

.rk-eeat-quote-icon {
    position: absolute;
    top: -20px;
    left: -20px;
    width: 60px;
    height: 60px;
    color: #f1f5f9;
    z-index: 1;
}

.rk-eeat-quote-text {
    position: relative;
    z-index: 2;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.5;
    color: var(--rk-eeat-dark);
    margin: 0 0 20px 0;
    font-style: italic;
}

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

.rk-eeat-text-norm a {
    color: var(--rk-eeat-blue);
    font-weight: 700;
    text-decoration: underline;
}

/* Listy E-E-A-T - Zoptymalizowany Layout i Typografia */
.rk-eeat-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-eeat-list li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-eeat-list svg {
    flex-shrink: 0;
    color: var(--rk-eeat-blue);
    margin-top: 2px;
}

.rk-eeat-list-text {
    font-size: 15.5px;
    color: var(--rk-eeat-dark);
    font-weight: 500;
    line-height: 1.6;
}

.rk-eeat-list-text a {
    color: var(--rk-eeat-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-eeat-blue);
    transition: border-color 0.2s, color 0.2s;
}

.rk-eeat-list-text a:hover {
    color: var(--rk-eeat-dark);
    border-bottom-color: var(--rk-eeat-dark);
}

@media (max-width: 768px) {
    .rk-eeat-container { margin: 20px auto; border-radius: 0; border-width: 1px; }
    .rk-eeat-header { padding: 20px; }
    .rk-eeat-header h2 { font-size: 22px; }
    .rk-eeat-body { flex-direction: column; }
    .rk-eeat-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-eeat-border); padding: 30px 20px; }
    .rk-eeat-tabs { flex-direction: column; }
    .rk-eeat-tab-btn { border-bottom: none; border-left: 4px solid transparent; text-align: left; padding: 15px 20px; border-top: 1px solid var(--rk-eeat-border); }
    .rk-eeat-tab-btn.is-active { border-left-color: var(--rk-eeat-blue); }
    .rk-eeat-tab-panels { padding: 25px 20px; }
    .rk-eeat-quote-text { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-eeat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o opłacalności sterowników strefowych",
    "description": "Podsumowanie inżynieryjne opłacalności systemów automatyki strefowej. Analiza zysków i weryfikacja kompetencji eksperckich (E-E-A-T).",
    "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 & Specjalista HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-eeat",
    "name": "Kwalifikacje i macierz autorytetu autora (E-E-A-T)",
    "description": "Zbiór danych weryfikujących kompetencje inżynieryjne autora w zakresie systemów grzewczych, OZC i automatyki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie instalacji wodnych podłogówka",
      "audyt OZC ogrzewania",
      "robert kucharski specjalista hvac",
      "weryfikacja kompetencji instalatora",
      "projekt ogrzewania z pompą ciepła"
    ],
    "measurementTechnique": "Jakościowa ocena autorytetu domeny na podstawie ponad 1000 zrealizowanych projektów instalacji płaszczyznowych i dziesiątek tysięcy unikalnych czytelników.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ponad 1000 pomyślnie zrealizowanych i zweryfikowanych projektów instalacji ogrzewania podłogowego.",
        "Kompleksowe wykonywanie obiektywnych audytów cieplnych OZC zgodnych z aktualnymi polskimi normami budowlanymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-eeat",
    "name": "Panel Weryfikacji Autorytetu (E-E-A-T)",
    "description": "Interaktywny interfejs profilu eksperta, umożliwiający weryfikację twardych danych kompetencyjnych i autorytetu autora publikacji.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eeat-container" id="rk-eeat-app">
    <div class="rk-eeat-header">
        <h2>Zdaniem eksperta: Robert Kucharski o opłacalności sterowników strefowych</h2>
    </div>

    <div class="rk-eeat-body">
        
        <div class="rk-eeat-sidebar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC" class="rk-eeat-photo">
            <h3 class="rk-eeat-name">Robert Kucharski</h3>
            <div class="rk-eeat-role">Specjalista HVAC / CEO</div>
            
            <div class="rk-eeat-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn Robert Kucharski">
                    <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="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>
                </a>
                <a href="https://x.com/Projekt_HVAC" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="X Projekt HVAC">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>
                </a>
            </div>
        </div>

        <div class="rk-eeat-content">
            
            <div class="rk-eeat-tabs" id="rkTabsContainer">
                <button class="rk-eeat-tab-btn is-active" data-target="panel-quote">Konkluzja Artykułu</button>
                <button class="rk-eeat-tab-btn" data-target="panel-cred">Autorytet i E-E-A-T</button>
            </div>

            <div class="rk-eeat-tab-panels">
                
                <div class="rk-eeat-panel is-active" id="panel-quote">
                    <div class="rk-eeat-quote-box">
                        <svg class="rk-eeat-quote-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                        <p class="rk-eeat-quote-text">
                            Ogrzewanie podłogowe bez automatyki strefowej to jak luksusowy samochód z potężnym silnikiem, ale pozbawiony kierownicy. Wytwarza ogromną moc, nad którą nie masz żadnej kontroli.
                        </p>
                        <p class="rk-eeat-text-norm">
                            W moich wyliczeniach technicznych jednoznacznie widać, że opieranie się wyłącznie na krzywej grzewczej pompy ciepła to droga do przegrzewania wnętrz. Brak precyzyjnych sterowników drastycznie obniża COP układu i niszczy portfel inwestora. Dobra automatyka to nie koszt, to fundament <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulacji strat ciepła</a>.
                        </p>
                    </div>
                </div>

                <div class="rk-eeat-panel" id="panel-cred">
                    <p class="rk-eeat-text-norm" style="margin-bottom: 25px;">
                        Treści techniczne na portalu są wynikiem twardej praktyki inżynieryjnej. Unikam akademickich teorii na rzecz namacalnych dowodów projektowych.
                    </p>
                    <ul class="rk-eeat-list">
                        <li>
                            <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Ponad 1000 sprojektowanych i zoptymalizowanych instalacji płaszczyznowych w domach jednorodzinnych.</span>
                        </li>
                        <li>
                            <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Twórca autorskich narzędzi do <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> i audytów hydraulicznych.</span>
                        </li>
                        <li>
                            <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Lider merytoryczny wspierający miesięcznie dziesiątki tysięcy inwestorów szukających rozwiązań bez ściemy.</span>
                        </li>
                    </ul>
                </div>

            </div>
        </div>

    </div>
</div>

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

    tabBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Twarde, statyczne przełączanie tabów. Brak animacji i brak &&
            const targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych
            tabBtns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            
            panels.forEach(function(p) {
                p.classList.remove('is-active');
            });

            // Aktywacja wybranego
            this.classList.add('is-active');
            
            const activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('is-active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-gray-text: #475569;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

.rk-faq-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    margin-bottom: 30px;
    padding-left: 20px;
    border-left: 5px solid var(--rk-faq-blue);
}

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

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

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

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

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.rk-faq-question {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background-color 0.3s ease;
}

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

.rk-faq-question h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-faq-item.active .rk-faq-question h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-icon {
    flex-shrink: 0;
    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;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s;
}

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

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

.rk-faq-answer-inner {
    padding: 0 30px 30px 30px;
    font-size: 15px;
    color: var(--rk-faq-gray-text);
    line-height: 1.7;
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-answer-inner {
    border-top-color: var(--rk-faq-blue-light);
    padding-top: 20px;
    margin-top: 5px;
}

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

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

/* Elementy uatrakcyjniające odpowiedź */
.rk-faq-highlight {
    display: inline-block;
    background: var(--rk-faq-blue-light);
    padding: 2px 8px;
    border-radius: 6px;
    color: var(--rk-faq-blue);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-faq-container { margin: 20px auto; }
    .rk-faq-question { padding: 20px; }
    .rk-faq-answer-inner { padding: 0 20px 20px 20px; }
    .rk-faq-question h3 { font-size: 16px; }
    .rk-faq-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najważniejsze pytania dotyczące automatyki podłogówki",
    "description": "Błyskawiczne odpowiedzi na najczęstsze pytania inwestorów dotyczące sterowników strefowych, siłowników NC/NO oraz bezprzewodowego sterowania instalacją.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy sterowniki podłogówki naprawdę zmniejszają rachunki za ogrzewanie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, automatyka strefowa eliminuje przegrzewanie pomieszczeń spowodowane zyskami ciepła (nasłonecznienie, urządzenia, rekuperacja), co w polskich warunkach klimatycznych pozwala zmniejszyć roczne zużycie energii na cele grzewcze o 15% do 25%."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w każdym pomieszczeniu muszę instalować osobny termostat?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie jest to bezwzględnie wymagane, ale montaż oddzielnych sterowników w każdej strefie (np. osobno łazienka, sypialnia, salon) zapewnia najwyższy komfort i maksymalne oszczędności eksploatacyjne, dopasowując temperaturę do funkcji danego pokoju."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła potrzebuje sterowników pokojowych do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ponieważ sama krzywa grzewcza pompy ciepła reaguje wyłącznie na temperaturę zewnętrzną i nie wie, co dzieje się wewnątrz budynku (np. zyski od kominka czy nasłonecznienia salonu), co bez automatyki strefowej prowadzi do przegrzewania wnętrz."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różnią się siłowniki termoelektryczne NC od NO?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Siłowniki typu NC (Normalnie Zamknięte) bez dopływu prądu blokują przepływ wody w pętli, natomiast siłowniki NO (Normalnie Otwarte) w stanie bezprądowym pozostają w pełni otwarte; w budownictwie mieszkaniowym standardem są bezpieczniejsze siłowniki NC."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zamontować sterowanie bezprzewodowe po wykonaniu tynków i wylewek?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, systemy bezprzewodowe oparte o protokół komunikacyjny ZigBee lub częstotliwość 868 MHz zostały zaprojektowane specjalnie do montażu w wykończonych budynkach, eliminując konieczność kucia ścian pod przewody sterujące."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Akordeon Bazy Wiedzy HVAC",
    "description": "Aplikacyjny interfejs użytkownika służący do szybkiego wyszukiwania i rozwijania ukrytych technicznych odpowiedzi dotyczących systemów ogrzewania płaszczyznowego.",
    "applicationCategory": "BrowserApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-faq-keywords",
    "name": "Dane optymalizacyjne FAQ",
    "description": "Niewidoczna warstwa semantyczna łącząca encje i słowa kluczowe wykorzystywane w algorytmach sterowania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "siłowniki termoelektryczne NC i NO",
      "oszczędności na ogrzewaniu podłogowym",
      "bezprzewodowe sterowanie podłogówką",
      "termostat pokojowy a pompa ciepła",
      "termostaty w każdym pokoju"
    ],
    "measurementTechnique": "Algorytmiczne dopasowanie intencji wyszukiwania (Search Intent) do krótkich, normatywnych odpowiedzi inżynierskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja różnic siłowników na rozdzielaczach",
        "Zależności krzywej grzewczej i zysków pasywnych"
      ]
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-app-section">
    <div class="rk-faq-header">
        <h2>FAQ – Najważniejsze pytania dotyczące automatyki podłogówki</h2>
        <p>Szybkie odpowiedzi na dylematy inwestycyjne bez lania wody.</p>
    </div>

    <div class="rk-faq-list" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy sterowniki podłogówki naprawdę zmniejszają rachunki za ogrzewanie?</h3>
                <div class="rk-faq-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"><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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, automatyka strefowa eliminuje przegrzewanie pomieszczeń spowodowane zyskami ciepła (nasłonecznienie, urządzenia, <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja</a>), co w polskich warunkach klimatycznych pozwala zmniejszyć roczne zużycie energii na cele grzewcze o <span class="rk-faq-highlight">15% do 25%</span>.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy w każdym pomieszczeniu muszę instalować osobny termostat?</h3>
                <div class="rk-faq-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"><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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Nie jest to bezwzględnie wymagane, ale montaż oddzielnych sterowników w każdej strefie (np. osobno łazienka, sypialnia, salon) zapewnia najwyższy komfort i maksymalne oszczędności eksploatacyjne, precyzyjnie dopasowując temperaturę do specyficznej funkcji danego pokoju.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy pompa ciepła potrzebuje sterowników pokojowych do podłogówki?</h3>
                <div class="rk-faq-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"><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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, ponieważ sama <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">krzywa grzewcza pompy ciepła</a> reaguje wyłącznie na temperaturę zewnętrzną i nie wie, co dzieje się wewnątrz budynku (np. zyski od kominka czy nasłonecznienia salonu), co bez automatyki strefowej prowadzi do trwałego przegrzewania wnętrz.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czym różnią się siłowniki termoelektryczne NC od NO?</h3>
                <div class="rk-faq-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"><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-faq-answer">
                <div class="rk-faq-answer-inner">
                    <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki typu NC</a> (Normalnie Zamknięte) bez dopływu prądu fizycznie blokują przepływ wody w pętli. Natomiast siłowniki NO (Normalnie Otwarte) w stanie bezprądowym pozostają w pełni otwarte. W polskim budownictwie mieszkaniowym standardem inżynierskim są bezpieczniejsze siłowniki NC.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy można zamontować sterowanie bezprzewodowe po wykonaniu tynków?</h3>
                <div class="rk-faq-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"><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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, systemy bezprzewodowe oparte o protokół komunikacyjny ZigBee lub częstotliwość radiową 868 MHz zostały zaprojektowane specjalnie do montażu w wykończonych lub <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">modernizowanych budynkach</a>, co całkowicie eliminuje konieczność kucia ścian pod nowe przewody sterujące.
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(function(item) {
        const questionBtn = item.querySelector('.rk-faq-question');
        const answerDiv = item.querySelector('.rk-faq-answer');

        questionBtn.addEventListener('click', function() {
            // Logika bez użycia "&&"
            
            // Sprawdź, czy aktualny element jest już otwarty
            if (item.classList.contains('active')) {
                // Jeśli tak, zamknij go
                item.classList.remove('active');
                questionBtn.setAttribute('aria-expanded', 'false');
                answerDiv.style.maxHeight = null;
            } else {
                // Jeśli nie, najpierw zamknij wszystkie inne otwarte
                faqItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        otherItem.classList.remove('active');
                        otherItem.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                        otherItem.querySelector('.rk-faq-answer').style.maxHeight = null;
                    }
                });
                
                // Następnie otwórz aktualnie kliknięty
                item.classList.add('active');
                questionBtn.setAttribute('aria-expanded', 'true');
                answerDiv.style.maxHeight = answerDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-card: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-hover: #0369a1;
    --rk-dl-red: #ef4444;
    --rk-dl-red-hover: #dc2626;
    --rk-dl-gray: #475569;
    --rk-dl-gray-light: #f1f5f9;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #cbd5e1;
}

.rk-dl-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border: 2px solid var(--rk-dl-dark);
    /* Brak border-radius dla surowego, technicznego wyglądu */
}

.rk-dl-header {
    padding: 30px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

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

.rk-dl-body {
    padding: 40px;
    display: flex;
    gap: 40px;
    align-items: stretch;
}

/* Sekcja Miniatury (Lewa) */
.rk-dl-preview-col {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-dl-thumb-box {
    border: 1px solid var(--rk-dl-border);
    background: var(--rk-dl-gray-light);
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    min-height: 280px;
    position: relative;
    cursor: pointer;
}

.rk-dl-thumb-box:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-img {
    max-width: 100%;
    max-height: 350px;
    object-fit: contain;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-zoom-icon {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

/* Sekcja Akcji (Prawa) */
.rk-dl-action-col {
    flex: 1.2;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl-desc {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.7;
    margin: 0 0 25px 0;
}

/* Przyciski (Brak animacji, natychmiastowa reakcja) */
.rk-dl-btn-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-btn-pdf {
    background: var(--rk-dl-red);
    color: #ffffff;
    border: 2px solid var(--rk-dl-red);
}

.rk-dl-btn-pdf:hover {
    background: var(--rk-dl-red-hover);
    border-color: var(--rk-dl-red-hover);
}

.rk-dl-btn-img {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: 2px solid var(--rk-dl-blue);
}

.rk-dl-btn-img:hover {
    background: var(--rk-dl-blue-hover);
    border-color: var(--rk-dl-blue-hover);
}

/* Stopka Prawa Autorskie */
.rk-dl-footer {
    background: var(--rk-dl-gray-light);
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 40px;
    font-size: 12px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    font-weight: 600;
    text-align: center;
}

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

/* Prosty wbudowany podgląd (zamiast modal window dla zachowania stabilności SEO) */
.rk-dl-full-view {
    display: none;
    padding: 20px;
    background: var(--rk-dl-gray-light);
    border-top: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-dl-full-view.is-open {
    display: block;
}

.rk-dl-full-img {
    max-width: 100%;
    height: auto;
    border: 2px solid var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-container { margin: 20px auto; border-left: none; border-right: none; }
    .rk-dl-header, .rk-dl-footer { padding: 20px; }
    .rk-dl-header h2 { font-size: 22px; }
    .rk-dl-body { flex-direction: column; padding: 20px; gap: 30px; }
    .rk-dl-thumb-box { min-height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Kompendium wiedzy: Pobierz darmową infografikę do druku",
    "description": "Zapisz na dysku schemat i wizualne podsumowanie opłacalności sterowników strefowych. Gotowa ściągawka dla inwestora w formacie PDF i WebP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Infografika techniczna: Opłacalność automatyki podłogówki",
    "description": "Zestawienie wizualne i zbiór danych technicznych dostępny w formacie PDF do celów edukacyjnych i konsultacyjnych na budowie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "czy warto montować sterowniki podłogówki pdf",
      "schemat sterowania ogrzewaniem podłogowym",
      "darmowe materiały hvac do pobrania",
      "robert kucharski projekt ogrzewania pdf"
    ],
    "measurementTechnique": "Ekstrakcja wiedzy inżynieryjnej i wskaźników ROI do formy graficznej i dokumentu ustrukturyzowanego (PDF).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik wektorowy PDF gotowy do druku i prezentacji.",
        "Kompresowana mapa bitowa WebP zoptymalizowana do wyświetlania na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-infografika",
    "name": "Repozytorium Plików i Przeglądarka Grafik",
    "description": "Interfejs interaktywny umożliwiający szybki podgląd technicznych infografik oraz zarządzanie pobieraniem dokumentacji w formacie PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-dl-app">
    <div class="rk-dl-header">
        <h2>Kompendium wiedzy: Pobierz darmową infografikę</h2>
        <p>Wizualne podsumowanie całego artykułu. Pobierz dokumentację, zabierz ją na budowę i pokaż swojemu instalatorowi, jak powinien wyglądać inżynierski standard.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-box" id="rkThumbTrigger">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp" alt="Miniatura: Infografika sterowniki do ogrzewania podłogowego" class="rk-dl-img">
                <div class="rk-dl-zoom-icon">Kliknij, aby rozwinąć</div>
            </div>
        </div>

        <div class="rk-dl-action-col">
            <h3>Wybierz format materiałów</h3>
            <p class="rk-dl-desc">
                Przygotowałem to podsumowanie w dwóch formatach. Wersja PDF jest idealna do druku w wysokiej jakości, natomiast szybki podgląd graficzny świetnie sprawdzi się na ekranie Twojego smartfona.
            </p>
            
            <div class="rk-dl-btn-group">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.pdf" download="Infografika-Sterowniki-Podlogowka.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-pdf">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz plik PDF
                </a>
                
                <button type="button" class="rk-dl-btn rk-dl-btn-img" id="rkBtnPreview">
                    <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>
                    Powiększ obraz
                </button>
            </div>
        </div>

    </div>

    <div class="rk-dl-full-view" id="rkFullView">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp" alt="Pełna Infografika: Czy warto montować sterowniki" class="rk-dl-full-img" loading="lazy">
    </div>

    <div class="rk-dl-footer">
        <strong>&copy; 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
        Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez jakiejkolwiek modyfikacji pliku bazowego.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const thumbTrigger = document.getElementById('rkThumbTrigger');
    const btnPreview = document.getElementById('rkBtnPreview');
    const fullView = document.getElementById('rkFullView');
    
    // Brak operatorów && - czyste instrukcje warunkowe
    function togglePreview() {
        if (fullView.classList.contains('is-open')) {
            fullView.classList.remove('is-open');
            btnPreview.innerHTML = '<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> Powiększ obraz';
        } else {
            fullView.classList.add('is-open');
            btnPreview.innerHTML = '<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="8" y1="11" x2="14" y2="11"></line></svg> Ukryj obraz';
        }
    }

    thumbTrigger.addEventListener('click', togglePreview);
    btnPreview.addEventListener('click', togglePreview);
});
</script>



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

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

.rk-invest-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-sum-dark) 100%);
    color: #ffffff;
}

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

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

.rk-invest-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Toggle Switch Design */
.rk-toggle-wrapper {
    display: flex;
    background: var(--rk-sum-border);
    border-radius: 16px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 18px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sum-gray);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.4s ease;
    z-index: 2;
}

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

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    background: var(--rk-sum-dark);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.rk-invest-cards {
    display: flex;
    gap: 30px;
}

.rk-status-card {
    flex: 1;
    background: var(--rk-sum-bg);
    border: 2px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 30px;
    text-align: left;
    transition: all 0.3s ease;
    display: none;
    animation: fadeIn 0.5s forwards;
}

.rk-status-card.active {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

.rk-icon-row {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-icon-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-status-pro .rk-status-card { border-color: var(--rk-sum-green); box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.15); }
.rk-status-pro .rk-icon-circle { background: var(--rk-sum-green-light); color: var(--rk-sum-green); }
.rk-status-pro h3 { color: var(--rk-sum-green); font-size: 22px; margin: 0; font-weight: 900;}

.rk-status-warn .rk-status-card { border-color: var(--rk-sum-red); box-shadow: 0 15px 30px -10px rgba(239, 68, 68, 0.15); }
.rk-status-warn .rk-icon-circle { background: var(--rk-sum-red-light); color: var(--rk-sum-red); }
.rk-status-warn h3 { color: var(--rk-sum-red); font-size: 22px; margin: 0; font-weight: 900;}

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

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

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

.rk-tags-section {
    padding: 0 50px 30px;
    background: #f8fafc;
}

.rk-mat-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid rgba(2, 132, 199, 0.1);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-sum-blue);
    color: #ffffff;
}

/* Nowa sekcja CTA */
.rk-cta-section {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.rk-cta-title {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
}

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

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

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

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

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

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-invest-header, .rk-invest-interactive, .rk-tags-section, .rk-cta-section { padding: 30px 20px; }
    .rk-invest-header h2, .rk-cta-title { font-size: 24px; }
    .rk-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; gap: 10px;}
    .rk-toggle-bg { display: none; }
    
    .rk-toggle-btn {
        background: var(--rk-sum-border);
        color: var(--rk-sum-gray);
        border: 2px solid transparent;
    }
    
    .rk-toggle-btn.active[data-view="view-warn"] {
        background: var(--rk-sum-red-light);
        color: var(--rk-sum-red);
        border-color: var(--rk-sum-red);
    }
    
    .rk-toggle-btn.active[data-view="view-pro"] {
        background: var(--rk-sum-green-light);
        color: var(--rk-sum-green);
        border-color: var(--rk-sum-green);
    }
    
    .rk-invest-cards { flex-direction: column; gap: 20px; }
    
    .rk-cta-btn {
        width: 100%;
        padding: 16px 20px;
        font-size: 16px;
        justify-content: center;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie inwestycyjne: Czy warto kupić automatykę do podłogówki?",
    "description": "Sprawdź na konkretnych danych, dlaczego automatyka strefowa do ogrzewania podłogowego jest inwestycją, a nie wydatkiem. Symulacja kosztów eksploatacji i ochrony posadzki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-sterowniki",
    "name": "Wskaźnik opłacalności inwestycji w automatykę strefową 2026",
    "description": "Zestawienie porównawcze kosztów eksploatacji, zużycia energii oraz wpływu na żywotność instalacji w scenariuszach z automatyką strefową i bez niej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do podłogówki",
      "automatyka do podłogówki cena",
      "koszty eksploatacji ogrzewania podłogowego",
      "optymalizacja pracy pompy ciepła",
      "ochrona posadzki przed przegrzaniem"
    ],
    "measurementTechnique": "Analiza numeryczna zapotrzebowania cieplnego budynku oraz wskaźnika COP pompy ciepła w trybie modulacji przepływu względem braku regulacji strefowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Scenariusz Pasywny: Brak sterowania strefowego prowadzi do przegrzewania wnętrz, zwiększenia zużycia energii o 15-25% oraz degradacji posadzek winylowych lub drewnianych.",
        "Scenariusz Zoptymalizowany: Sterowanie strefowe chroni jastrych i optymalizuje COP pompy ciepła, zapewniając pełen zwrot z inwestycji (ROI)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-sterowniki",
    "name": "Symulator Scenariuszy Sterowania Podłogówką",
    "description": "Interaktywny panel uświadamiający skutki braku automatyki grzewczej i korzyści płynące ze strefowego sterowania pompą obiegową i źródłem ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-invest-container" id="automatyka-invest-app">
    <div class="rk-invest-header">
        <h2>Podsumowanie inwestycyjne: Czy warto kupić automatykę do podłogówki?</h2>
        <p>Automatyka do wodnego ogrzewania podłogowego nie jest opcjonalnym gadżetem, lecz kluczowym elementem technologicznym. Przełącz poniższe scenariusze, aby zobaczyć inżynierskie różnice na konkretnych danych.</p>
    </div>

    <div class="rk-invest-interactive">
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle-bg" id="rkToggleBg"></div>
            <button class="rk-toggle-btn active" data-view="view-warn" style="color: #ffffff;">
                Oszczędzam na sterownikach (Brak automatyki)
            </button>
            <button class="rk-toggle-btn" data-view="view-pro">
                Montuję inteligentne sterowanie strefowe
            </button>
        </div>

        <div class="rk-invest-cards" id="rkCardsArea">
            
            <div class="rk-status-warn" id="view-warn-content">
                <div class="rk-status-card active">
                    <div class="rk-icon-row">
                        <div class="rk-icon-circle">
                            <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="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                        </div>
                        <div>
                            <h3>Ryzyko przegrzewania podłogi</h3>
                        </div>
                    </div>
                    <p class="rk-card-text">
                        Pominięcie sterowników to <strong>pozorna oszczędność</strong>. Zmuszasz pompę ciepła do pracy na sztywnych parametrach. Bezwładny układ hydrauliczny reaguje z wielogodzinnym opóźnieniem. Efekt? <strong>Trwałe przegrzewanie pomieszczeń</strong> o 2-3 stopnie, co drastycznie podnosi rachunki i niszczy wrażliwe posadzki wykończeniowe (np. winyl).
                    </p>
                </div>
            </div>

            <div class="rk-status-pro" id="view-pro-content" style="display: none;">
                <div class="rk-status-card active">
                    <div class="rk-icon-row">
                        <div class="rk-icon-circle">
                            <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="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div>
                            <h3>Zyskowny model eksploatacji</h3>
                        </div>
                    </div>
                    <p class="rk-card-text">
                        Precyzyjne sterowanie mikroklimatem przekształca bezwładny układ w wysoce responsywną instalację. Zobacz <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">wyliczenia zwrotu z inwestycji</a> (ROI) na poziomie 15-25% redukcji energii rocznie. Automatyka strefowa zapewnia natychmiastową <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">optymalizację pracy pompy ciepła</a> (wyższy COP) oraz trwale <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">zabezpiecza wylewkę</a> betonową przed degradacją termiczną.
                    </p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-tags-section">
        <div class="rk-mat-tags-container">
            <span class="rk-mat-tag"># czy warto montować sterowniki do podłogówki</span>
            <span class="rk-mat-tag"># automatyka do podłogówki cena</span>
            <span class="rk-mat-tag"># sterowanie strefowe ogrzewaniem</span>
            <span class="rk-mat-tag"># koszty eksploatacji ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># optymalizacja pracy pompy ciepła</span>
            <span class="rk-mat-tag"># ochrona posadzki przed przegrzaniem</span>
            <span class="rk-mat-tag"># inteligentny dom ogrzewanie</span>
            <span class="rk-mat-tag"># termostaty pokojowe a rachunki</span>
        </div>
    </div>

    <!-- Dodane mocne CTA -->
    <div class="rk-cta-section">
        <h3 class="rk-cta-title">Nie pozwól, by instalator uczył się na Twoim domu</h3>
        <p class="rk-cta-text">
            Bezwładność cieplna, algorytmy PWM, dobór pomp obiegowych – to nie czarna magia, to inżynieria. Wejdź na bloga i zbuduj wiedzę, która ochroni Twój budżet przed kosztownymi błędami.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-cta-btn">
            WEJDŹ DO BAZY WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const toggleBg = document.getElementById('rkToggleBg');
    const viewWarn = document.getElementById('view-warn-content');
    const viewPro = document.getElementById('view-pro-content');
    
    btns.forEach((btn, index) => {
        btn.addEventListener('click', function() {
            // Bezpieczny JS, bazujemy na precyzyjnych if/else
            
            // Reset stylów przycisków na widoku desktopowym
            btns.forEach(b => {
                b.classList.remove('active');
                if(window.innerWidth > 768) {
                    b.style.color = 'var(--rk-sum-gray)';
                }
            });
            
            // Ustaw aktywację
            this.classList.add('active');
            
            if(window.innerWidth > 768) {
                this.style.color = '#ffffff';
                if(index === 0) {
                    toggleBg.style.transform = 'translateX(0)';
                    toggleBg.style.backgroundColor = 'var(--rk-sum-dark)';
                } else {
                    toggleBg.style.transform = 'translateX(100%)';
                    toggleBg.style.backgroundColor = 'var(--rk-sum-green)';
                }
            }

            // Przełączanie kontenerów tekstowych
            const targetView = this.getAttribute('data-view');
            
            if(targetView === 'view-warn') {
                viewPro.style.display = 'none';
                viewWarn.style.display = 'block';
            } else {
                viewWarn.style.display = 'none';
                viewPro.style.display = 'block';
            }
        });
    });

    // Zabezpieczenie wizualne przy zmianie szerokości okna (Resize obwodu)
    window.addEventListener('resize', function() {
        if(window.innerWidth <= 768) {
            btns.forEach(b => b.style.color = ''); 
        } else {
            const activeBtn = document.querySelector('.rk-toggle-btn.active');
            if (activeBtn) {
                activeBtn.style.color = '#ffffff';
            }
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do ogrzewania podłogowego?</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[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #10b981; /* Zielony inżynierski */
    --rk-intro-accent-light: #ecfdf5;
    --rk-intro-gray: #475569;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

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

/* Sekcja Hook (Mocne otwarcie) */
.rk-intro-hook-box {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    padding: 40px 45px;
    color: white;
    border-bottom: 5px solid var(--rk-intro-blue);
    display: flex;
    align-items: flex-start;
    gap: 25px;
}

.rk-intro-hook-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    flex-shrink: 0;
}

.rk-intro-hook-icon svg {
    width: 32px;
    height: 32px;
    color: #38bdf8;
}

.rk-intro-hook-content h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.3;
    color: white;
}

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

/* Szybka Odpowiedź (Featured Snippet) */
.rk-intro-quick-answer {
    padding: 45px;
    background: var(--rk-intro-bg);
}

.rk-intro-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

.rk-intro-quick-answer h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-intro-quick-answer p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-intro-gray);
    margin: 0 0 15px 0;
}

.rk-intro-quick-answer p:last-child {
    margin-bottom: 0;
}

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

.rk-intro-quick-answer a:hover {
    color: var(--rk-intro-dark);
    background: var(--rk-intro-blue-light);
}

/* Zapowiedź Narzędzi Interaktywnych (Teaser) */
.rk-intro-teaser-section {
    background: #f8fafc;
    border-top: 1px solid var(--rk-intro-border);
    padding: 45px;
}

.rk-intro-teaser-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-intro-teaser-header h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-intro-teaser-header p {
    font-size: 15px;
    color: var(--rk-intro-gray);
    margin: 0;
}

.rk-intro-tools-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-tool-btn {
    background: white;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 20px;
    text-align: left;
}

.rk-intro-tool-btn:hover {
    background: var(--rk-intro-accent-light);
    border-color: #a7f3d0;
}

.rk-intro-tool-btn.active {
    background: var(--rk-intro-accent-light);
    border-color: var(--rk-intro-accent);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

.rk-intro-tool-icon {
    background: #f1f5f9;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    flex-shrink: 0;
}

.rk-intro-tool-btn.active .rk-intro-tool-icon {
    background: var(--rk-intro-accent);
    color: white;
}

.rk-intro-tool-text h5 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 5px 0;
}

.rk-intro-tool-text p {
    font-size: 14px;
    color: var(--rk-intro-gray);
    margin: 0;
    line-height: 1.4;
}

/* Moduł Wyniku Teasera */
.rk-intro-tool-preview {
    background: white;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 25px;
    margin-top: 15px;
    display: none; /* Sterowane z JS, brak animacji */
}

.rk-intro-tool-preview.show {
    display: block;
}

.rk-intro-tool-preview p {
    font-size: 15px;
    color: var(--rk-intro-dark);
    margin: 0;
    line-height: 1.6;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-hook-box { flex-direction: column; padding: 30px 25px; gap: 20px; text-align: center; align-items: center; }
    .rk-intro-quick-answer { padding: 30px 25px; }
    .rk-intro-teaser-section { padding: 30px 25px; }
    .rk-intro-tool-btn { flex-direction: column; text-align: center; gap: 15px; padding: 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Instalacja ogrzewania podłogowego w układzie meandrowym – Zrozumieć fizykę ciepła",
    "description": "Definicja i charakterystyka instalacji ogrzewania podłogowego w układzie meandrowym. Zrozum liniowy spadek temperatury czynnika grzewczego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-definicja",
    "name": "Parametry definicyjne układu meandrowego",
    "description": "Podstawowe cechy i właściwości termodynamiczne płaszczyznowego układu meandrowego, determinujące różnicowanie wydajności cieplnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego meander",
      "liniowy spadek temperatury czynnika",
      "układ równoległy rur grzewczych",
      "profil temperatur jastrychu",
      "niskotemperaturowy system płaszczyznowy"
    ],
    "measurementTechnique": "Określenie zjawisk fizycznych i geometrycznych w obrębie wylewki jastrychowej przy równoległym trasowaniu przewodów grzewczych o kącie zwrotu 180 stopni.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Geometria: Rury układane równolegle z nawrotami o 180 stopni.",
        "Termodynamika: Liniowy spadek temperatury czynnika wzdłuż pętli.",
        "Cel: Zróżnicowanie wydajności cieplnej (kompensacja strat stref brzegowych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-spis-narzedzi",
    "name": "Eksplorator Narzędzi Artykułu",
    "description": "Zestawienie interaktywnych modułów obliczeniowych i edukacyjnych dostępnych w dalszej części publikacji, dotyczących układu meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="meander-intro">
    
    <div class="rk-intro-hook-box">
        <div class="rk-intro-hook-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div class="rk-intro-hook-content">
            <h2>Płacisz tysiące za pompę ciepła, a podłoga przy oknie i tak jest lodowata?</h2>
            <p>Zainwestowałeś w nowoczesne źródło ciepła, ale w salonie brakuje komfortu? Błąd niemal zawsze leży w geometrii rur i braku zrozumienia termodynamiki. Układ meandrowy, choć trudniejszy w obliczeniach, to jedyna tarcza obronna przed wychłodzeniem.</p>
        </div>
    </div>

    <div class="rk-intro-quick-answer">
        <div class="rk-intro-qa-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"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Szybka odpowiedź eksperta
        </div>
        <h3>Czym jest instalacja ogrzewania podłogowego w układzie meandrowym?</h3>
        <p>
            Instalacja ogrzewania podłogowego w układzie meandrowym to niskotemperaturowy system płaszczyznowy, w którym rury grzewcze są układane równolegle względem siebie w kształt jednostronnych pętli z zakrętami o 180 stopni. Rozwiązanie to charakteryzuje się liniowym spadkiem temperatury czynnika grzewczego wzdłuż pętli, co pozwala na celowe różnicowanie wydajności cieplnej w obrębie jednego pomieszczenia.
        </p>
        <p>
            Jako system płaszczyznowy, instalacja ta zapewnia pionowy profil temperatur zbliżony do idealnego dla organizmu człowieka, eliminując <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">tradycyjne grzejniki konwekcyjne</a>. Prawidłowo zaprojektowany układ meandrowy redukuje koszty eksploatacyjne budynku przy współpracy z <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">pompami ciepła</a>.
        </p>
    </div>

    <div class="rk-intro-teaser-section">
        <div class="rk-intro-teaser-header">
            <h4>Co jeszcze odkryjesz w tym kompendium?</h4>
            <p>Ten artykuł to nie tylko sucha teoria. Przewiń w dół, aby skorzystać z zaawansowanych, interaktywnych narzędzi inżynierskich przygotowanych specjalnie dla Ciebie.</p>
        </div>

        <div class="rk-intro-tools-grid" id="teaserTabs">
            <button class="rk-intro-tool-btn" data-tool="calc">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Kalkulator przepływów i strat</h5>
                    <p>Oblicz na żywo nastawy dla rotametrów na podstawie mocy cieplnej.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="sim">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Symulatory termodynamiki EN 1264</h5>
                    <p>Sprawdź wizualnie, co się stanie przy błędnym trasowaniu meandru.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="case">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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-intro-tool-text">
                    <h5>Interaktywne Case Study z budowy</h5>
                    <p>Rozwiązanie problemu braku nośności stropu w domu z lat 70.</p>
                </div>
            </button>
        </div>

        <div class="rk-intro-tool-preview" id="teaserPreviewBox">
            </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-intro-tool-btn');
    var previewBox = document.getElementById('teaserPreviewBox');

    var teaserData = {
        "calc": "Zastosowaliśmy precyzyjne algorytmy fizyczne. Suwaki pozwolą Ci od razu zobaczyć, czy Twoja pętla nie stawia zbyt dużych oporów hydraulicznych i nie zadławi pracy całego rozdzielacza.",
        "sim": "Graficzne heatmapy oparte na wytycznych PN-EN pokażą Ci różnicę pomiędzy powstawaniem bezpiecznej kurtyny termicznej, a przekroczeniem dopuszczalnych 29°C w salonie.",
        "case": "Krok po kroku przeprowadzimy Cię przez proces decyzyjny inżyniera, który uratował drewniany strop przed zawaleniem ciężką wylewką, stosując system suchy w układzie meandrowym."
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var isActive = this.classList.contains('active');

            // Resetowanie wszystkich
            btns.forEach(function(b) { b.classList.remove('active'); });

            if (isActive === false) {
                this.classList.add('active');
                var tool = this.getAttribute('data-tool');
                var text = teaserData[tool];

                if (text !== undefined) {
                    previewBox.innerHTML = '<p>' + text + '</p>';
                    previewBox.classList.add('show');
                }
            } else {
                // Jesli kliknieto aktywny - zwiń (bezpieczna logika bez operators logicznych negacji zlozonych)
                previewBox.classList.remove('show');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-en-dark: #0f172a;
    --rk-en-blue: #0284c7;
    --rk-en-red: #ef4444;
    --rk-en-orange: #f59e0b;
    --rk-en-gray: #475569;
    --rk-en-bg: #ffffff;
    --rk-en-border: #e2e8f0;
    --rk-en-light: #f8fafc;
}

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

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

.rk-en-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-en-body {
    padding: 35px 40px;
    background: var(--rk-en-light);
}

/* Moduł Sterowania Symulacją */
.rk-en-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-en-btn {
    background: white;
    border: 2px solid var(--rk-en-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-en-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 260px;
    justify-content: center;
}

.rk-en-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-en-btn.active[data-layout="random"] {
    border-color: var(--rk-en-red);
    background: #fef2f2;
    color: var(--rk-en-red);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.3);
}

.rk-en-btn.active[data-layout="engineered"] {
    border-color: var(--rk-en-blue);
    background: #f0f9ff;
    color: var(--rk-en-blue);
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-en-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wizualizacji SVG */
.rk-en-vis-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-en-svg-wrapper {
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-en-status {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    padding: 15px 20px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 15px;
    transition: all 0.3s ease;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-en-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #f0f9ff;
    color: var(--rk-en-blue);
    border: 1px solid #bae6fd;
}

/* Sekcja Tekstowa */
.rk-en-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-en-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-en-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-en-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-en-blue);
    border-radius: 4px;
}

.rk-en-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-en-content-box a {
    color: var(--rk-en-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-en-content-box a:hover {
    color: var(--rk-en-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-en-dark);
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG (Pulsująca fala ciepła) */
.heat-wave {
    stroke-dasharray: 15;
    animation: flowHeat 1s linear infinite;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-en-header, .rk-en-body { padding: 25px 20px; }
    .rk-en-controls { flex-direction: column; gap: 10px; }
    .rk-en-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-en-content-box { padding: 25px 20px; }
    .rk-en-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-en1264",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak działa ogrzewanie podłogowe w układzie meandrowym w odniesieniu do normy EN 1264?",
    "description": "Analiza termodynamiki układu meandrowego. Jak zapobiec pękaniu płytek i dyskomfortowi gorących stóp, przestrzegając granicznej temperatury 29 stopni Celsjusza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-en1264",
    "name": "Wymogi termiczne ogrzewania podłogowego wg PN-EN 1264-2",
    "description": "Ograniczenia fizyczne dla systemów płaszczyznowych definiujące maksymalną gęstość strumienia cieplnego względem komfortu ludzkiego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 1264 podłogówka",
      "maksymalna temperatura podłogi 29C",
      "spadek temperatury podłogówka",
      "pękanie płytek na ogrzewaniu podłogowym",
      "wymiana ciepła promieniowanie konwekcja",
      "gęstość strumienia cieplnego podłogówka"
    ],
    "measurementTechnique": "Analiza rozkładu temperatur (delta T 5-8K) na podstawie normy PN-EN 1264-2 w odniesieniu do stref stałego przebywania ludzi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura posadzki: 29°C (w strefie stałego przebywania domowników).",
        "Wymiana ciepła: Przeważa promieniowanie nad konwekcją swobodną.",
        "Delta T (Spadek temperatury): Standardowo wynosi od 5K do 8K pomiędzy zasilaniem a powrotem, powodując ryzyko powstania stref niedogrzanych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-en1264",
    "name": "Symulator Rozkładu Temperatur Meandru wg EN 1264",
    "description": "Interaktywne narzędzie obrazujące zjawisko powstawania stref niedogrzanych oraz przegrzewania posadzki powyżej 29 stopni Celsjusza w wyniku błędnego trasowania rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-en-container" id="norm-en1264-sim">
    <div class="rk-en-header">
        <h2>Jak działa meander w odniesieniu do normy EN 1264?</h2>
        <p>Ignorowanie fizyki to najkrótsza droga do popękanych płytek i lodowatych stóp. Przetestuj, jak ułożenie pętli względem okna wpływa na legalną temperaturę podłogi.</p>
    </div>

    <div class="rk-en-body">
        
        <div class="rk-en-controls" id="enTabs">
            <button class="rk-en-btn active" data-layout="random">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Układ Przypadkowy (Błąd)
            </button>
            <button class="rk-en-btn" data-layout="engineered">
                <svg 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>
                Układ Inżynierski (Poprawny)
            </button>
        </div>

        <div class="rk-en-vis-box fade-in" id="enVisBox">
            
            <div class="rk-en-svg-wrapper" id="enSvgBox">
                <svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
                    <rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/> <rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/> <defs>
                        <linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%">
                            <stop offset="0%" stop-color="#dc2626"/>
                            <stop offset="100%" stop-color="#38bdf8"/>
                        </linearGradient>
                    </defs>
                    <path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/>
                    <text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text>
                    <text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text>
                </svg>
            </div>

            <div class="rk-en-status status-danger" id="enStatusBox">
                <span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span>
                <span>Strefa okna: <strong>Niedogrzana</strong></span>
            </div>

        </div>

        <div class="rk-en-content-box fade-in" id="enContentBox">
            <h3 id="enTitle">Brak balansu i ryzyko dla posadzki</h3>
            <div id="enText">
                <p>
                    <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.
                </p>
                <p>
                    Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.
                </p>
                <p>
                    Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem &#8222;gorących stóp&#8221;, a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-en-btn');
    var visBox = document.getElementById('enVisBox');
    var contentBox = document.getElementById('enContentBox');
    var svgBox = document.getElementById('enSvgBox');
    var statusBox = document.getElementById('enStatusBox');
    var enTitle = document.getElementById('enTitle');
    var enText = document.getElementById('enText');

    var layoutData = {
        "random": {
            statusClass: "status-danger",
            statusHtml: '<span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span><span>Strefa okna: <strong>Niedogrzana</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#38bdf8"/></linearGradient></defs><path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/><text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text><text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text></svg>',
            title: "Brak balansu i ryzyko dla posadzki",
            html: '<p><a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.</p><p>Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.</p><p>Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem "gorących stóp", a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.</p>'
        },
        "engineered": {
            statusClass: "status-safe",
            statusHtml: '<span>Strefa bytowa: <strong>Normatywna (26-28°C)</strong></span><span>Strefa okna: <strong>Chroniona (35°C)</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradGood" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#f59e0b"/></linearGradient></defs><path d="M50 140 L350 140 L350 110 L50 110 L50 80 L350 80 L350 50 L50 50" stroke="url(#gradGood)" stroke-width="8" class="heat-wave"/><text x="50" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">MAX 35°C (Dozwolone)</text><text x="300" y="165" font-size="12" fill="#0284c7" stroke="none" font-weight="bold">26-28°C (Komfort)</text></svg>',
            title: "Inteligentna kompensacja infiltracji",
            html: '<p>Aby zapobiec niszczeniu wylewek i dyskomfortowi domowników, inżynierowie wypracowali metodę układania meandru w sposób ściśle ukierunkowany. Rura zasilająca wprowadzana jest zawsze najpierw pod przegrody o najwyższych stratach ciepła, czyli bezpośrednio pod szyby tarasowe i ściany zewnętrzne.</p><p>Pozwala to zrównoważyć profil temperatur w pomieszczeniach o podwyższonych stratach. Norma PN-EN 1264 dopuszcza w strefie brzegowej (czyli wąskim pasie przy ścianie, gdzie nie przebywamy stale) temperaturę posadzki aż do <span class="rk-tech-val">35°C</span>. Przez to najgorętsza woda oddaje swój potężny ładunek tam, gdzie jest on najbardziej potrzebny do walki z infiltracją zimnego powietrza.</p><p>Gdy czynnik grzewczy dociera w głąb salonu (pod strefę wypoczynkową), jego temperatura w naturalny sposób spada do pożądanego i w pełni bezpiecznego poziomu, zapewniając domownikom <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">zdrowy komfort cieplny bez negatywnych skutków ubocznych</a>.</p>'
        }
    };

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

            var layout = this.getAttribute('data-layout');
            var data = layoutData[layout];

            // Bezpieczne wstrzyknięcie zawartości
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszony reflow przeglądarki
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja Statusu
                statusBox.className = "rk-en-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                enTitle.textContent = data.title;
                enText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-mnd-dark: #0f172a;
    --rk-mnd-blue: #0284c7;
    --rk-mnd-blue-light: #e0f2fe;
    --rk-mnd-red: #dc2626;
    --rk-mnd-red-light: #fee2e2;
    --rk-mnd-gray: #64748b;
    --rk-mnd-bg: #ffffff;
    --rk-mnd-border: #e2e8f0;
}

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

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

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

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

/* Interfejs */
.rk-mnd-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełączniki (Toggles) */
.rk-mnd-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-mnd-btn {
    background: white;
    border: 2px solid var(--rk-mnd-border);
    padding: 16px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mnd-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 240px;
    justify-content: center;
}

.rk-mnd-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-mnd-blue-light);
}

.rk-mnd-btn.active {
    border-color: var(--rk-mnd-blue);
    background: var(--rk-mnd-blue);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-mnd-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Wizualizacja SVG (Heatmapa) */
.rk-mnd-visual-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-mnd-svg-wrapper {
    width: 100%;
    max-width: 450px;
    height: 280px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-mnd-gradient-bar {
    width: 100%;
    max-width: 450px;
    height: 12px;
    border-radius: 6px;
    margin-top: 20px;
    background: linear-gradient(to right, #dc2626, #f59e0b, #38bdf8, #2563eb);
    position: relative;
}

.rk-mnd-grad-labels {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 450px;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-mnd-gray);
}

/* Tekst i Wyjaśnienie */
.rk-mnd-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-mnd-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mnd-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-mnd-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-mnd-red);
    border-radius: 4px;
}

.rk-mnd-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-mnd-content-box p:last-child {
    margin-bottom: 0;
}

.rk-mnd-content-box a {
    color: var(--rk-mnd-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-mnd-content-box a:hover {
    color: var(--rk-mnd-dark);
    background: var(--rk-mnd-blue-light);
}

.rk-tech-hl {
    background: var(--rk-mnd-red-light);
    color: var(--rk-mnd-red);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 800;
    white-space: nowrap;
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* SVG Path Animations */
.path-flow {
    stroke-dasharray: 18;
    animation: flowDash 1.2s linear infinite;
}

@keyframes flowDash {
    to { stroke-dashoffset: -36; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-mnd-header, .rk-mnd-body { padding: 25px 20px; }
    .rk-mnd-toggles { flex-direction: column; gap: 10px; }
    .rk-mnd-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-mnd-content-box { padding: 25px 20px; }
    .rk-mnd-svg-wrapper { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-rodzaje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meander a podwójny meander – rzetelne wyjaśnienie różnic",
    "description": "Fizyczne i techniczne zestawienie różnic pomiędzy meandrem pojedynczym a podwójnym. Analiza promieni gięcia rur i kompensacji strat ciśnienia w podłogówce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-meander-rodzaje",
    "name": "Rozkład temperatur i fizyka gięcia rur w układach meandrowych",
    "description": "Zestawienie profilu spadku temperatury czynnika grzewczego na powierzchni posadzki bez efektu krzyżowania się rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "meander podwójny a pojedynczy różnice",
      "układ wężykowy podłogówki",
      "równoległe układanie rur podłogówka",
      "jak nie krzyżować rur ogrzewania",
      "rozkład temperatury podłogówki meander",
      "spadek temperatury czynnika zasilania"
    ],
    "measurementTechnique": "Algorytmiczna wizualizacja równoległego prowadzenia czynnika zasilającego i powrotnego bez nakładania się osi przewodów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Meander Pojedynczy: System kierunkowy z silnym, odczuwalnym gradientem. Zasilanie oddaje ciepło jednostronnie.",
        "Meander Podwójny: Układ bezkolizyjny, gdzie rura zasilająca i powrotna wymieniają się promieniami gięcia na nawrotach, stabilizując średnią temperaturę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-meander-rodzaje",
    "name": "Symulator Fizyki Pętli Meandrowych",
    "description": "Narzędzie webowe precyzyjnie obrazujące trasowanie rur zasilających i powrotnych w celu osiągnięcia pożądanego balansu termicznego jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mnd-container" id="meander-types-sim">
    <div class="rk-mnd-header">
        <h2>Układ meander a podwójny meander – rzetelne wyjaśnienie różnic</h2>
        <p>Wybór między klasycznym wężykiem a bezkolizyjnym meandrem podwójnym to matematyczna decyzja o tym, czy Twoja podłoga będzie miała gorące strefy brzegowe, czy perfekcyjnie zbilansowaną temperaturę.</p>
    </div>

    <div class="rk-mnd-body">
        
        <div class="rk-mnd-toggles" id="mndTabs">
            <button class="rk-mnd-btn active" data-type="single">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
                Meander Pojedynczy
            </button>
            <button class="rk-mnd-btn" data-type="double">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path></svg>
                Meander Podwójny
            </button>
        </div>

        <div class="rk-mnd-visual-box fade-in" id="mndVisBox">
            <div class="rk-mnd-svg-wrapper">
                <svg width="300" height="200" viewBox="0 0 300 200" fill="none" stroke-width="6" stroke-linejoin="round" id="mndSvg">
                    <defs>
                        <linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#dc2626" />
                            <stop offset="50%" stop-color="#f59e0b" />
                            <stop offset="100%" stop-color="#2563eb" />
                        </linearGradient>
                    </defs>
                    <path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>
                </svg>
            </div>
            <div class="rk-mnd-gradient-bar"></div>
            <div class="rk-mnd-grad-labels">
                <span>Strefa Zasilania (Gorąca)</span>
                <span>Strefa Powrotu (Chłodna)</span>
            </div>
        </div>

        <div class="rk-mnd-content-box fade-in" id="mndContent">
            <h3 id="mndTitle">Meander Pojedynczy: Precyzyjny strumień kierunkowy</h3>
            <div id="mndText">
                <p>
                    W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.
                </p>
                <p>
                    <strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-mnd-btn');
    var visBox = document.getElementById('mndVisBox');
    var contentBox = document.getElementById('mndContent');
    var mndSvg = document.getElementById('mndSvg');
    var mndTitle = document.getElementById('mndTitle');
    var mndText = document.getElementById('mndText');

    // Baza danych ze zoptymalizowanymi ścieżkami (Brak krzyżowania się rur)
    var typeData = {
        "single": {
            title: "Meander Pojedynczy: Precyzyjny strumień kierunkowy",
            html: '<p>W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.</p><p><strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.</p>',
            svg: '<defs><linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#dc2626" /><stop offset="50%" stop-color="#f59e0b" /><stop offset="100%" stop-color="#2563eb" /></linearGradient></defs><path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>'
        },
        "double": {
            title: "Meander Podwójny: Mistrzowski bilans (bez kolizji)",
            html: '<p>Meander podwójny to techniczna odpowiedź na wady pojedynczego wężyka, stosowana gdy zależy nam na równomiernej podłodze bez stref chłodu. W tym wariancie rura zasilająca (najgorętsza) prowadzona jest <span class="rk-tech-hl">idealnie równolegle obok rury powrotnej</span> (najchłodniejszej). Oznacza to, że każdy metr podłogi grzeje identyczną średnią mocą.</p><p>Co najważniejsze – rury się nie krzyżują. Na nawrotach przy ścianach, rura idąca po zewnętrznym łuku naturalnie "zawija się" i wchodzi na tor wewnętrzny, omijając bezkolizyjnie sąsiedni przewód. <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Decyzja o wdrożeniu tego rozwiązania</a> ratuje długie korytarze i skomplikowane salony, w których ułożenie standardowego "ślimaka" jest architektonicznie niemożliwe, a inwestor kategorycznie żąda zbalansowanej, ciepłej podłogi.</p>',
            svg: '<defs><linearGradient id="gradDoubleZas" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient><linearGradient id="gradDoublePow" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#2563eb" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient></defs><path d="M20 25 L280 25 L280 100 L40 100 L40 125 L280 125 L280 137.5" stroke="url(#gradDoubleZas)" class="path-flow"/><path d="M280 137.5 L280 150 L20 150 L20 75 L260 75 L260 50 L20 50" stroke="url(#gradDoublePow)" class="path-flow" style="animation-direction: reverse;"/>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie stanami przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var type = this.getAttribute('data-type');
            var data = typeData[type];

            // Bezpieczne ładowanie danych
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja drzewa DOM
                mndSvg.innerHTML = data.svg;
                mndTitle.innerHTML = data.title;
                mndText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-wood-dark: #271c19;
    --rk-wood-amber: #d97706;
    --rk-wood-amber-light: #fef3c7;
    --rk-wood-brown: #78350f;
    --rk-wood-gray: #64748b;
    --rk-wood-bg: #ffffff;
    --rk-wood-border: #e2e8f0;
    --rk-wood-red: #dc2626;
    --rk-wood-green: #059669;
}

.rk-wood-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wood-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(120, 53, 15, 0.15);
    border: 1px solid #fcd34d;
    overflow: hidden;
}

/* Nagłówek */
.rk-wood-header {
    background: linear-gradient(135deg, var(--rk-wood-dark) 0%, var(--rk-wood-brown) 100%);
    padding: 40px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-wood-amber);
}

.rk-wood-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

.rk-wood-header p {
    font-size: 16px;
    color: #fde68a;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Interfejs Symulatora */
.rk-wood-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-wood-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-wood-tab-btn {
    background: white;
    border: 2px solid var(--rk-wood-border);
    padding: 18px 25px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-wood-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    max-width: 350px;
    justify-content: center;
}

.rk-wood-tab-btn:hover {
    border-color: #fcd34d;
    background: var(--rk-wood-amber-light);
}

.rk-wood-tab-btn.active {
    border-color: var(--rk-wood-amber);
    background: var(--rk-wood-amber);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(217, 119, 6, 0.4);
}

.rk-wood-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Wynik Symulacji Obciążenia */
.rk-wood-result-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-wood-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-wood-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

.rk-weight-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 18px;
    transition: all 0.3s;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-wood-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #ecfdf5;
    color: var(--rk-wood-green);
    border: 1px solid #6ee7b7;
}

/* Blok tekstowy */
.rk-wood-text-content {
    text-align: left;
}

.rk-wood-text-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-wood-dark);
    margin: 0 0 15px 0;
}

.rk-wood-text-content p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-wood-text-content p:last-child {
    margin-bottom: 0;
}

.rk-wood-text-content a {
    color: var(--rk-wood-amber);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-wood-text-content a:hover {
    color: var(--rk-wood-brown);
    background: var(--rk-wood-amber-light);
}

/* Animacje zawartości */
.fade-in-content {
    animation: fadeInContent 0.4s ease-out forwards;
}

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

/* Animacje SVG */
.anim-beam-bend {
    animation: bendBeam 2s infinite alternate ease-in-out;
    transform-origin: center;
}

@keyframes bendBeam {
    0% { transform: translateY(0) scaleY(1); }
    100% { transform: translateY(5px) scaleY(0.9); fill: #b91c1c; }
}

/* Responsywność - Mobile (pionowy układ, brak poziomego scrolla) */
@media (max-width: 768px) {
    .rk-wood-header, .rk-wood-interactive { padding: 25px 20px; }
    .rk-wood-tabs { flex-direction: column; gap: 10px; }
    .rk-wood-tab-btn { width: 100%; max-width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-weight-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strop-drewniany",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy na stropach drewnianych: Idealne rozwiązanie dla domów szkieletowych",
    "description": "Techniczne uwarunkowania montażu ogrzewania podłogowego w układzie meandrowym na stropach drewnianych z wykorzystaniem systemów suchych bez ciężkiej wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-obciazenie-stropu",
    "name": "Porównanie obciążenia stropów drewnianych: System mokry vs suchy",
    "description": "Zestawienie obciążeń statycznych generowanych przez wylewki betonowe oraz systemy suche ogrzewania podłogowego z lamelami aluminiowymi na 1 m2 stropu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe na drewnianym stropie",
      "lekka podłogówka system suchy",
      "podłogówka w domu szkieletowym",
      "waga ogrzewania podłogowego m2",
      "brak wylewki betonowej na stropie",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowe obliczenia wagi m2 jastrychu cementowego (grubość ok 6 cm) w porównaniu do płyt systemowych XPS z radiatorem aluminiowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Tradycyjny (Mokry): Waga od 120 do 150 kg/m2, wysokie ryzyko dla konstrukcji drewnianych.",
        "System Lekki (Suchy meander): Waga poniżej 15-20 kg/m2, w pełni bezpieczny dla stropów w domach szkieletowych i drewnianych z bali."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strop",
    "name": "Symulator Obciążenia Stropu Drewnianego",
    "description": "Aplikacja webowa pomagająca inwestorom zrozumieć zagrożenia konstrukcyjne wynikające z błędnego doboru technologii ogrzewania podłogowego na stropach o lekkiej konstrukcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wood-container" id="wood-ceiling-sim">
    <div class="rk-wood-header">
        <h2>Układ meandrowy na stropach drewnianych: Bezpieczne rozwiązanie bez wylewki</h2>
        <p>Wielu inwestorów remontujących stare domy lub budujących w technologii szkieletowej porzuca marzenia o podłogówce w obawie przed zarwaniem stropu. Tymczasem układ meandrowy to klucz do zastosowania ultra-lekkich systemów suchych.</p>
    </div>

    <div class="rk-wood-interactive">
        
        <div class="rk-wood-tabs" id="woodTabs">
            <button class="rk-wood-tab-btn" data-system="wet">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                System Mokry (Wylewka)
            </button>
            <button class="rk-wood-tab-btn active" data-system="dry">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                System Suchy (Lekki)
            </button>
        </div>

        <div class="rk-wood-result-box fade-in-content" id="woodContent">
            
            <div class="rk-weight-status status-safe" id="woodStatus">
                <span>Obciążenie: <strong>~ 15 kg/m²</strong></span>
                <span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>
            </div>

            <div class="rk-wood-svg-panel" id="woodSvgBox">
                <svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor">
                    <rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/>
                    <path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/>
                    <circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text>
                </svg>
            </div>

            <div class="rk-wood-text-content" id="woodTextBox">
                <h3>Idealna synergia meandru z lekką konstrukcją</h3>
                <p>
                    Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.
                </p>
                <p>
                    Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.
                </p>
                <p>
                    W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-wood-tab-btn');
    var contentBox = document.getElementById('woodContent');
    var statusBox = document.getElementById('woodStatus');
    var svgBox = document.getElementById('woodSvgBox');
    var textBox = document.getElementById('woodTextBox');

    var simData = {
        "wet": {
            statusClass: "status-danger",
            statusHtml: '<span>Obciążenie: <strong>120 - 150 kg/m²</strong></span><span>Stan: <strong>Krytyczne ryzyko dla stropu!</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2" class="anim-beam-bend"/><rect x="20" y="20" width="210" height="60" fill="#cbd5e1" stroke="#64748b" stroke-width="1"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#1e293b" stroke="none" text-anchor="middle" font-weight="bold">Ciężka wylewka betonowa (6 cm)</text></svg>',
            title: "Masa niszcząca konstrukcje z drewna",
            html: '<p>Wylanie standardowego, mokrego jastrychu na elastyczny strop z legarów drewnianych to kardynalny błąd budowlany. Po pierwsze, wprowadzamy do budynku drewnianego setki litrów wilgoci technologicznej. Po drugie, potężna masa (dochodząca do 150 kg/m²) powoduje ugięcie belek nośnych.</p><p>Ugięcie drewna pod wpływem ciężaru wylewki prowadzi do błyskawicznego spękania samego betonu oraz uszkodzenia rur grzewczych ukrytych w jego wnętrzu. Nawet jeśli strop wytrzyma statycznie, drgania akustyczne będą przenosić się po całym budynku, a popękane płytki ceramiczne przypomną o błędnej decyzji inwestycyjnej.</p>'
        },
        "dry": {
            statusClass: "status-safe",
            statusHtml: '<span>Obciążenie: <strong>~ 15 kg/m²</strong></span><span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text></svg>',
            title: "Idealna synergia meandru z lekką konstrukcją",
            html: '<p>Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.</p><p>Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.</p><p>W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-system');
            var data = simData[target];

            // Bezpieczna podmiana danych bez operacji logicznych na zmiennych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Zabezpieczenie reflow
                contentBox.classList.add('fade-in-content');

                // Aktualizacja Statusu
                statusBox.className = "rk-weight-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-retro-dark: #1e293b;
    --rk-retro-orange: #ea580c;
    --rk-retro-orange-light: #ffedd5;
    --rk-retro-blue: #0284c7;
    --rk-retro-gray: #64748b;
    --rk-retro-bg: #ffffff;
    --rk-retro-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-retro-header {
    background: linear-gradient(135deg, #7c2d12 0%, #9a3412 100%);
    padding: 35px 40px;
    color: white;
    text-align: center;
}

.rk-retro-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs */
.rk-retro-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełącznik typów budynków */
.rk-retro-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-retro-tab-btn {
    background: white;
    border: 2px solid var(--rk-retro-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-retro-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 250px;
    justify-content: center;
}

.rk-retro-tab-btn:hover {
    border-color: #fdba74;
    background: var(--rk-retro-orange-light);
}

.rk-retro-tab-btn.active {
    border-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(234, 88, 12, 0.4);
}

.rk-retro-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Główny kontener treści (Pionowy, tekstowy) */
.rk-retro-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-retro-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left;
}

.rk-retro-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-retro-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-retro-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-retro-orange);
    border-radius: 4px;
}

.rk-retro-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-retro-content-box p:last-child {
    margin-bottom: 0;
}

.rk-retro-content-box a {
    color: var(--rk-retro-orange);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(234, 88, 12, 0.2);
    transition: all 0.2s;
}

.rk-retro-content-box a:hover {
    border-bottom-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange-light);
}

.rk-keyword-highlight {
    font-weight: 700;
    color: var(--rk-retro-dark);
    background: var(--rk-retro-orange-light);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-retro-header, .rk-retro-body { padding: 25px 20px; }
    .rk-retro-tabs { flex-direction: column; gap: 10px; }
    .rk-retro-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-retro-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-stare-budownictwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją",
    "description": "Dlaczego ogrzewanie podłogowe w domach z lat 60. i 70. bez izolacji ścian wymaga zastosowania układu meandrowego do kompensacji strat ciepła rzędu 130 W/m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-stare-budownictwo",
    "name": "Wpływ braku izolacji na dynamikę ogrzewania płaszczyznowego",
    "description": "Dane obrazujące zapotrzebowanie na moc grzewczą w strefach brzegowych nieocieplonych budynków z lat 1960-1980.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w starym domu",
      "brak ocieplenia a straty ciepła W/m2",
      "straty ciepła stare budownictwo",
      "współczynnik przenikania ciepła starych ścian",
      "kompensacja strat ciepła ściana zewnętrzna",
      "domy z lat 70 podłogówka"
    ],
    "measurementTechnique": "Analiza szacunkowych wartości współczynnika przenikania ciepła U dla starych murów oraz przelicznik jednostkowego zapotrzebowania na moc grzewczą w W/m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stare budownictwo bez izolacji: Wymaga mocy grzewczej rzędu 130-150 W/m2.",
        "Domy modernizowane (izolacja 10-15 cm): Zapotrzebowanie spada do poziomu 70-80 W/m2.",
        "Rozwiązanie meandrowe: Najgorętszy czynnik zasilania kompensuje chłód przenikający przez stare mury z pustaka żużlowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-stare-budownictwo",
    "name": "Symulator Termiki Budynków Retro",
    "description": "Aplikacja edukacyjna objaśniająca wpływ termoizolacji na dobór i konfigurację pętli ogrzewania podłogowego w budownictwie wznoszonym w latach 1960-1980.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-retro-container" id="retro-heating-sim">
    <div class="rk-retro-header">
        <h2>Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją</h2>
        <p>Wielu uważa, że podłogówka w nieocieplonych domach z PRL-u nie ma racji bytu. Tymczasem to właśnie celowy spadek temperatury w meandrze pozwala zbudować zaporę dla chłodu ciągnącego od starych murów.</p>
    </div>

    <div class="rk-retro-body">
        
        <div class="rk-retro-tabs" id="retroTabs">
            <button class="rk-retro-tab-btn active" data-build="old">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"></path><path d="M4 21v-4"></path><path d="M20 21v-4"></path><path d="M8 8v9"></path><path d="M16 8v9"></path><path d="M12 4v13"></path><path d="M2 10l10-8 10 8"></path></svg>
                Stary dom (lata 60. i 70.)
            </button>
            <button class="rk-retro-tab-btn" data-build="new">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="12" x2="16" y2="12"></line><line x1="8" y1="8" x2="16" y2="8"></line></svg>
                Dom docieplony / Nowy
            </button>
        </div>

        <div class="rk-retro-content-box fade-in-up" id="retroContent">
            
            <h3 id="retroTitle">Termiczna kurtyna dla nieocieplonych murów</h3>
            <div id="retroText">
                <p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 &#8211; 150 W/m² powierzchni.</p>
                <p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując &#8222;ciągnięcie chłodu&#8221;, a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p>
                <p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-retro-tab-btn');
    var contentBox = document.getElementById('retroContent');
    var retroTitle = document.getElementById('retroTitle');
    var retroText = document.getElementById('retroText');

    var buildData = {
        "old": {
            title: "Termiczna kurtyna dla nieocieplonych murów",
            html: '<p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 - 150 W/m² powierzchni.</p><p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując "ciągnięcie chłodu", a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p><p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>'
        },
        "new": {
            title: "Termomodernizacja a rozstaw meandru",
            html: '<p>Sytuacja zmienia się drastycznie po dodaniu na elewację 15 cm lub 20 cm styropianu. W <span class="rk-keyword-highlight">domu zmodernizowanym</span>, przenikalność cieplna murów radykalnie spada, a całkowite <span class="rk-keyword-highlight">straty ciepła starego budownictwa</span> po ociepleniu potrafią obniżyć się do bezpiecznego pułapu około 70 - 80 W/m².</p><p>W budynku po termomodernizacji, ściany zewnętrzne stają się swoistym termosem dla domowników. Oznacza to, że zjawisko "ciągnięcia chłodu" niemal znika, co pozwala na rozluźnienie układu pętli. Nie musimy już gęsto pompować czynnika o temperaturze 45°C pod przegrody z lat 70., lecz możemy zastosować szerszy, 15-centymetrowy rozstaw, obniżając <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opory cieplne i hydrauliczne</a>. Taka stabilna konfiguracja w ocieplonym domu jest idealnym punktem wyjścia do późniejszego montażu efektywnej pompy ciepła.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w tabs
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-build');
            var data = buildData[target];

            // Bezpieczne wstrzyknięcie danych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // Force reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Tylko mocny, bogaty tekst
                retroTitle.textContent = data.title;
                retroText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-edge-dark: #0f172a;
    --rk-edge-blue: #0284c7;
    --rk-edge-cold: #38bdf8;
    --rk-edge-warm: #ef4444;
    --rk-edge-warm-light: #fef2f2;
    --rk-edge-gray: #64748b;
    --rk-edge-bg: #ffffff;
    --rk-edge-border: #e2e8f0;
}

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

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

.rk-edge-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs */
.rk-edge-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Kontrolki (Toggles) */
.rk-edge-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-edge-btn {
    background: white;
    border: 2px solid var(--rk-edge-border);
    padding: 16px 20px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-edge-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 250px;
    justify-content: center;
}

.rk-edge-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-edge-btn.active[data-state="bad"] {
    border-color: var(--rk-edge-cold);
    background: #f0f9ff;
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(56, 189, 248, 0.4);
}

.rk-edge-btn.active[data-state="good"] {
    border-color: var(--rk-edge-warm);
    background: var(--rk-edge-warm-light);
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.4);
}

.rk-edge-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wyświetlania (Pionowy) */
.rk-edge-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-edge-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-edge-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

/* Pasek Statusu / Wyniku */
.rk-edge-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
}

.status-cold {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

.status-hot {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fca5a5;
}

/* Tekst merytoryczny */
.rk-edge-text-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-edge-dark);
    margin: 0 0 15px 0;
}

.rk-edge-text-area p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-edge-text-area a {
    color: var(--rk-edge-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-edge-text-area a:hover {
    color: var(--rk-edge-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-edge-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Sekcja Błędów */
.rk-edge-warnings {
    margin-top: 25px;
    border-top: 1px solid var(--rk-edge-border);
    padding-top: 20px;
}

.rk-edge-warnings h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-edge-warm);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-warning-item {
    background: #fff5f5;
    border-left: 4px solid var(--rk-edge-warm);
    padding: 12px 15px;
    margin-bottom: 10px;
    border-radius: 0 8px 8px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rk-warning-item strong {
    color: var(--rk-edge-dark);
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG */
.anim-cold-drop {
    animation: dropCold 2s infinite ease-in;
}

@keyframes dropCold {
    0% { transform: translateY(-20px); opacity: 0; }
    20% { opacity: 0.8; }
    80% { opacity: 0.8; }
    100% { transform: translateY(60px); opacity: 0; }
}

.anim-heat-rise {
    animation: riseHeat 2s infinite ease-out;
}

@keyframes riseHeat {
    0% { transform: translateY(20px); opacity: 0; }
    20% { opacity: 0.9; }
    80% { opacity: 0.9; }
    100% { transform: translateY(-50px); opacity: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-edge-header, .rk-edge-body { padding: 25px 20px; }
    .rk-edge-toggles { flex-direction: column; gap: 10px; }
    .rk-edge-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-edge-content-box { padding: 25px 20px; }
    .rk-edge-status-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-edge-svg-panel { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strefa-brzegowa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jaki rozstaw rur wybrać w strefie brzegowej instalacji meandrowej przy oknach?",
    "description": "Techniczne zasady projektowania stref brzegowych przy dużych przeszkleniach. Analiza kurtyny termicznej, kondensacji pary wodnej i norm PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-strefa-brzegowa",
    "name": "Parametry strefy brzegowej w ogrzewaniu podłogowym",
    "description": "Zestawienie wytycznych i limitów temperaturowych dla stref brzegowych przy przeszkleniach tarasowych zgodnie z normą PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefa brzegowa w ogrzewaniu podłogowym",
      "rozstaw rur przy oknach tarasowych",
      "kondensacja pary na oknach podłogówka",
      "moc grzewcza z m2 strefy brzegowej",
      "temperatura posadzki norma PN-EN 1264",
      "izolacja brzegowa i dylatacje"
    ],
    "measurementTechnique": "Obliczenia szacunkowe mocy cieplnej i temperatury posadzki w oparciu o wytyczne normy europejskiej PN-EN 1264 dla wodnych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szerokość strefy: Od 0,5 m do 1,0 m od przegrody zewnętrznej (od okna).",
        "Zalecany rozstaw rur: 10 cm (dopuszczalne 7,5 cm - 5 cm w trudnych warunkach).",
        "Limit temperatury posadzki: Dopuszczalne 35 st C w strefie brzegowej.",
        "Generowana moc: Skompensowanie strat rzędu 100 - 150 W/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strefa-brzegowa",
    "name": "Symulator Strefy Brzegowej Ogrzewania Podłogowego",
    "description": "Narzędzie webowe obrazujące fizyczne zjawisko przenikania chłodu od okien oraz powstawanie termicznej kurtyny obronnej przy gęstym układzie meandrowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-edge-container" id="edge-zone-sim">
    <div class="rk-edge-header">
        <h2>Jaki rozstaw rur wybrać w strefie brzegowej przy oknach?</h2>
        <p>Brak strefy brzegowej przy oknach tarasowych to najprostsza droga do zaparowanych szyb, wilgoci i lodowatych stóp w salonie. Sprawdź, jak meander zatrzymuje chłód.</p>
    </div>

    <div class="rk-edge-body">
        
        <div class="rk-edge-toggles" id="edgeTabs">
            <button class="rk-edge-btn" data-state="bad">
                <svg 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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Błąd: Rozstaw 20 cm (Brak strefy)
            </button>
            <button class="rk-edge-btn active" data-state="good">
                <svg 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>
                Poprawnie: Rozstaw 10 cm (Meander)
            </button>
        </div>

        <div class="rk-edge-content-box fade-in" id="edgeContentBox">
            
            <div class="rk-edge-status-bar status-hot" id="edgeStatus">
                <span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span>
                <span>Moc strefy: <strong>~ 150 W/m²</strong></span>
            </div>

            <div class="rk-edge-svg-panel" id="edgeSvgBox">
                <svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor">
                    <rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/>
                    <path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/>
                    <rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/>
                    <path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/>
                    <path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/>
                    <text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text>
                    <text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text>
                </svg>
            </div>

            <div class="rk-edge-text-area" id="edgeTextBox">
                <h3>Potężna tarcza termiczna dla Twojego salonu</h3>
                <p>
                    Optymalny rozstaw rur w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefie brzegowej w ogrzewaniu podłogowym</a> przy oknach tarasowych i ścianach zewnętrznych wynosi <span class="rk-tech-val">10 cm</span> (z dopuszczalnym zagęszczeniem do 7,5 cm lub 5 cm w budynkach o słabej izolacji). Takie rozwiązanie pozwala na skompensowanie potężnych lokalnych strat ciepła dochodzących do <strong>100–150 W/m²</strong>, zgodnie z wytycznymi projektowymi normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>. Zgodnie ze sztuką, zagęszczony pas brzegowy z meandru powinien obejmować szerokość od 0,5 m do 1,0 m od okna (zazwyczaj 4 do 6 nitek).
                </p>
                <p>
                    Okna, nawet te o rewelacyjnym współczynniku U<sub>w</sub> = 0,6–0,8 W/(m²K), generują kilkukrotnie większe straty ciepła niż izolowane ściany. Zmniejszenie rozstawu z 20 cm do 10 cm punktowo podnosi temperaturę podłogi o 3°C–4°C, tworząc <span class="rk-tech-val">skuteczną kurtynę termiczną</span>. Ponieważ norma pozwala w tej strefie na osiągnięcie posadzce aż 35°C (względem 29°C na środku pokoju), możemy wygenerować moc bez ryzyka przegrzania części bytowej salonu.
                </p>
            </div>

            <div class="rk-edge-warnings">
                <h4><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="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> Konsekwencje błędów w strefie brzegowej:</h4>
                <div class="rk-warning-item">
                    <strong>Rozstaw rzadki (> 15 cm) przy oknach:</strong> Opadające zimne powietrze powoduje drastyczne wychłodzenie ramy. Dochodzi do osiągnięcia <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy</a>, kondensacji pary wodnej na szybach i rozwoju pleśni przy podłodze.
                </div>
                <div class="rk-warning-item">
                    <strong>Zbyt długa pętla brzegowa wepchnięta do salonu:</strong> Wpuszczenie zasilania dedykowanego pod okno w głąb strefy bytowej skutkuje dyskomfortem &#8222;gorących stóp&#8221; i uszkodzeniem płytek przez rozszerzalność termiczną.
                </div>
                <div class="rk-warning-item">
                    <strong>Brak oddzielenia (dylatacji):</strong> Rezygnacja z <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">profilu dylatacyjnego</a> pomiędzy pasem zagęszczonym (gorącym) a strefą salonu (chłodniejszą) gwarantuje pęknięcie jastrychu na linii styku obu stref z powodu naprężeń ścinających.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-edge-btn');
    var contentBox = document.getElementById('edgeContentBox');
    var statusBox = document.getElementById('edgeStatus');
    var svgBox = document.getElementById('edgeSvgBox');

    var simData = {
        "bad": {
            statusClass: "status-cold",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Brak (Roszenie)</strong></span><span>Moc strefy: <strong>~ 50 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 80 90 60 160" stroke="#0ea5e9" stroke-width="4" fill="none" class="anim-cold-drop"/><path d="M30 30 Q 120 100 100 160" stroke="#38bdf8" stroke-width="3" fill="none" class="anim-cold-drop" style="animation-delay: 0.8s;"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="110" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="170" cy="175" r="5" fill="#f59e0b" stroke="none"/><path d="M50 150 L50 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise"/><path d="M110 150 L110 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="80" y="110" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">Opada chłód (Brak kurtyny)</text></svg>'
        },
        "good": {
            statusClass: "status-hot",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span><span>Moc strefy: <strong>~ 150 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/><path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/><path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/><path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text></svg>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var state = this.getAttribute('data-state');
            var data = simData[state];

            // Wstrzykiwanie danych z bezpiecznym zresetowaniem animacji
            if (data !== undefined) {
                contentBox.classList.remove('fade-in');
                void contentBox.offsetWidth; // Wymuszenie reflow
                contentBox.classList.add('fade-in');

                statusBox.className = "rk-edge-status-bar " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;
                svgBox.innerHTML = data.svg;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-blue: #0284c7;
    --rk-tbl-blue-light: #e0f2fe;
    --rk-tbl-blue-bg: #f0f9ff;
    --rk-tbl-gray: #64748b;
    --rk-tbl-bg: #ffffff;
    --rk-tbl-border: #e2e8f0;
}

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

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

.rk-tbl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs wyboru */
.rk-tbl-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-tbl-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-tbl-tab-btn {
    background: white;
    border: 2px solid var(--rk-tbl-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-tbl-tab-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-tbl-blue-light);
}

.rk-tbl-tab-btn.active {
    border-color: var(--rk-tbl-blue);
    background: var(--rk-tbl-blue);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.35);
}

.rk-tbl-tab-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    transition: transform 0.3s;
}

.rk-tbl-tab-btn.active svg {
    transform: scale(1.15);
}

/* Karta wyników */
.rk-tbl-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-tbl-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-tbl-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-tbl-dark);
    margin: 0 0 25px 0;
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-tbl-border);
}

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

.rk-param-item {
    background: var(--rk-tbl-blue-bg);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: all 0.3s;
}

.rk-param-item:hover {
    background: #e0f2fe;
    transform: translateY(-2px);
}

.rk-param-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-tbl-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-param-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
    line-height: 1.5;
}

.rk-highlight-text {
    color: #dc2626; /* Czerwony akcent dla ważnych liczb */
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-tbl-header, .rk-tbl-body { padding: 25px 20px; }
    .rk-tbl-tabs { flex-direction: column; gap: 10px; }
    .rk-tbl-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-tbl-content-box { padding: 20px 15px; }
    .rk-param-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy stack dla mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny",
    "description": "Zestawienie kluczowych parametrów eksploatacyjnych systemów płaszczyznowych. Analiza kosztów robocizny, oporów hydraulicznych i współpracy z pompami ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-porownanie",
    "name": "Zestawienie parametrów technicznych systemów ogrzewania podłogowego 2026",
    "description": "Tabela porównawcza parametrów technicznych dla ogrzewania wodnego i elektrycznego. Obejmuje zmienne termodynamiczne oraz średnie rynkowe koszty w PLN.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie podłogówki meander ślimak",
      "opory hydrauliczne pętli grzewczej",
      "koszty mat kapilarnych i elektrycznych m2",
      "rozkład temperatur jastrychu wodnego",
      "dobór ogrzewania do pompy ciepła COP"
    ],
    "measurementTechnique": "Zestawienie inżynierskie na bazie kart technologicznych rur PEX (promienie gięcia), normy PN-EN 1264 oraz średnich cen instalatorskich z rynku polskiego na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Układ Meandrowy: Koszt 18-28 PLN/m2, Liniowo opadający gradient temperatur (do 8K).",
        "Układ Ślimakowy: Koszt 22-32 PLN/m2, Jednorodny rozkład średni, Opór do 18 kPa.",
        "Maty Elektryczne: Koszt 70-130 PLN/m2, Brak czynnika wodnego, Stały profil temperaturowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-porownanie",
    "name": "Symulator Wyboru Systemu Grzewczego",
    "description": "Interaktywna macierz decyzyjna pozwalająca inwestorowi na błyskawiczne zbadanie wad i zalet poszczególnych układów grzewczych z poziomu urządzeń mobilnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="system-comparison">
    <div class="rk-tbl-header">
        <h2>Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny</h2>
        <p>Klasyczne tabele na telefonach bywają nieczytelne. Poniższe interaktywne zestawienie ułatwi Ci dobór optymalnego rozwiązania na etapie koncepcji instalacyjnej. Wybierz technologię, aby sprawdzić jej profil.</p>
    </div>

    <div class="rk-tbl-body">
        
        <div class="rk-tbl-tabs" id="cmpTabs">
            <button class="rk-tbl-tab-btn active" data-sys="meander">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Wodny Meander
            </button>
            <button class="rk-tbl-tab-btn" data-sys="snail">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a10 10 0 1 0 10 10"></path><path d="M12 6a6 6 0 1 0 6 6"></path><path d="M12 10a2 2 0 1 0 2 2"></path></svg>
                Wodny Ślimak
            </button>
            <button class="rk-tbl-tab-btn" data-sys="electric">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Maty Elektryczne
            </button>
        </div>

        <div class="rk-tbl-content-box fade-in" id="cmpContent">
            <h3 id="cmpTitle">Układ Meandrowy (Wodny)</h3>
            <div class="rk-param-grid" id="cmpGrid">
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Profil temperatur podłogi</span>
                    <span class="rk-param-value">Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Maksymalny opór hydrauliczny</span>
                    <span class="rk-param-value">Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Średni koszt materiałów</span>
                    <span class="rk-param-value"><span class="rk-highlight-text">18 – 28 PLN/m²</span></span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Minimalny promień gięcia rury</span>
                    <span class="rk-param-value">5 x d_z (wymaga łuków prowadzących)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Zastosowanie w strefach brzegowych</span>
                    <span class="rk-param-value">Idealne (naturalna koncentracja mocy)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Współpraca z pompą ciepła (COP)</span>
                    <span class="rk-param-value">Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)</span>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var sysBtns = document.querySelectorAll('.rk-tbl-tab-btn');
    var cmpTitle = document.getElementById('cmpTitle');
    var cmpGrid = document.getElementById('cmpGrid');
    var cmpBox = document.getElementById('cmpContent');

    var sysData = {
        "meander": {
            title: "Układ Meandrowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">18 – 28 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "5 x d_z (wymaga łuków prowadzących)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Idealne (naturalna koncentracja mocy)" },
                { label: "Współpraca z pompą ciepła (COP)", value: 'Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)' }
            ]
        },
        "snail": {
            title: "Układ Ślimakowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (stała średnia temperatura)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">18 kPa</span> (dzięki łagodnym łukom 90°)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">22 – 32 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "8 x d_z (łagodne naturalne gięcie)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga sztucznych zagęszczeń pętli pomocniczych" },
                { label: "Współpraca z pompą ciepła (COP)", value: "Optymalna (wymaga najniższych parametrów zasilania)" }
            ]
        },
        "electric": {
            title: "Maty Elektryczne (Suche)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (całkowicie stały rozkład na siatce)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Brak (system bez udziału medium płynnego)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">70 – 130 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "Nie dotyczy (elastyczna siatka montażowa)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga lokalnego gęstszego układania przewodu oporowego" },
                { label: "Współpraca z pompą ciepła (COP)", value: '<span class="rk-highlight-text">Brak bezpośredniej współpracy</span>' }
            ]
        }
    };

    sysBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie klasami
            sysBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var sysKey = this.getAttribute('data-sys');
            var data = sysData[sysKey];

            // Renderowanie HTML bez niebezpiecznych znaków JS (bez && / ||)
            if (data !== undefined) {
                // Restart CSS Animation
                cmpBox.classList.remove('fade-in');
                void cmpBox.offsetWidth; // Force reflow
                cmpBox.classList.add('fade-in');

                cmpTitle.textContent = data.title;
                
                var gridHTML = '';
                var i = 0;
                var totalParams = data.params.length;
                
                // Pętla while dla bezpieczeństwa, generująca poszczególne kafelki
                while (i < totalParams) {
                    var p = data.params[i];
                    gridHTML += '<div class="rk-param-item">' +
                                '<span class="rk-param-label">' + p.label + '</span>' +
                                '<span class="rk-param-value">' + p.value + '</span>' +
                                '</div>';
                    i++;
                }
                
                cmpGrid.innerHTML = gridHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-dark: #0369a1;
    --rk-calc-bg: #ffffff;
    --rk-calc-panel: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-highlight: #f0f9ff;
}

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

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

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

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

/* Sekcja Sterowania (Suwak) */
.rk-calc-controls {
    background: white;
    padding: 30px 40px;
    border-bottom: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

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

.rk-slider-wrapper {
    width: 100%;
    max-width: 500px;
    position: relative;
}

.rk-slider-info {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-weight: 700;
    color: var(--rk-calc-blue-dark);
}

.rk-range {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    outline: none;
}

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    border: 3px solid white;
    box-shadow: 0 0 10px rgba(14, 165, 233, 0.4);
    transition: transform 0.2s;
}

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

/* Ciało Kalkulatora - Kroki */
.rk-calc-body {
    padding: 40px;
    background: var(--rk-calc-panel);
}

.rk-step-box {
    background: white;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    margin-bottom: 20px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.rk-step-box:hover {
    border-color: #bae6fd;
    box-shadow: 0 5px 15px rgba(14, 165, 233, 0.08);
}

.rk-step-header {
    background: white;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid transparent;
}

.rk-step-num {
    background: var(--rk-calc-dark);
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-step-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-step-content {
    padding: 0 25px 25px 85px;
}

.rk-formula {
    background: var(--rk-calc-dark);
    color: #e2e8f0;
    padding: 15px 20px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    margin: 15px 0;
    overflow-x: auto;
    border-left: 4px solid var(--rk-calc-blue);
}

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

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

.rk-result-box {
    background: var(--rk-calc-highlight);
    border: 1px dashed var(--rk-calc-blue);
    padding: 15px;
    border-radius: 8px;
    color: var(--rk-calc-dark);
    font-size: 15px;
}

.rk-val-highlight {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-blue-dark);
    display: inline-block;
    margin: 0 5px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-body { padding: 25px 20px; }
    .rk-step-header { padding: 15px; gap: 15px; }
    .rk-step-content { padding: 0 15px 20px 15px; }
    .rk-formula { font-size: 14px; padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?",
    "description": "5-etapowy algorytm inżynierski krok po kroku, pozwalający na precyzyjne wyliczenie oporów hydraulicznych i nastaw na rotametrach dla układu meandrowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-kalkulator",
    "name": "Wzory Hydrauliczne i Termodynamiczne dla Ogrzewania Podłogowego",
    "description": "Zbiór danych i stałych fizycznych (ciepło właściwe wody, gęstość) niezbędnych do obliczania przepływów masowych i strat ciśnienia w rurach PEX 16mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ podłogówki",
      "obliczenia OZC podłogówka",
      "straty ciśnienia w rurach pex",
      "rotametry regulacja przepływu",
      "opór miejscowy układ meandrowy",
      "współczynnik bezpieczeństwa ogrzewania"
    ],
    "measurementTechnique": "Zastosowanie algorytmów z normy PN-EN 12831 oraz praw mechaniki płynów do wyznaczenia całkowitych strat hydraulicznych pętli grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciepło właściwe wody (cw) = 4186 J/(kg·K)",
        "Gęstość wody przy 40 st C = 992 kg/m3",
        "Opór miejscowy łuku 180 st (xi) = 1,5",
        "Współczynnik strat do gruntu = 1,15"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Algorytmu Meandrowego",
    "description": "Aplikacja webowa symulująca 5-stopniowy proces inżynierski obliczania przepływu i strat ciśnienia dla pętli grzewczej w czasie rzeczywistym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="meander-calculator">
    <div class="rk-calc-header">
        <h2>Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?</h2>
        <p>Projektowanie pętli meandrowej wymaga dokładnego obliczenia przepływu masowego czynnika oraz całkowitych strat ciśnienia w celu prawidłowego doboru nastaw na rotametrach. Prześledź algorytm inżynierski krok po kroku.</p>
    </div>

    <div class="rk-calc-controls">
        <h3>Symulator Pętli: Wybierz zapotrzebowanie pokoju</h3>
        <div class="rk-slider-wrapper">
            <div class="rk-slider-info">
                <span>Zapotrzebowanie wyjściowe z OZC:</span>
                <span id="uiBaseQ">1043 W</span>
            </div>
            <input type="range" min="500" max="2000" step="50" value="1043" class="rk-range" id="simRange">
        </div>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">1</div>
                <h3 class="rk-step-title">Zapotrzebowanie na moc cieplną pętli (Q_pętli)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Moc pętli wyliczamy na podstawie jednostkowego zapotrzebowania na ciepło z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">audytu OZC</a>, powiększonego o straty do gruntu.</p>
                <div class="rk-formula">
                    Q_pętli = Zapotrzebowanie OZC × 1.15
                </div>
                <div class="rk-result-box">
                    Gdzie 1.15 to współczynnik bezpieczeństwa. Dla wybranej wartości daje to:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resQ">1200 W</span> (1,2 kW)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">2</div>
                <h3 class="rk-step-title">Przepływ masowy czynnika (V)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Przepływ objętościowy wody w pętli, niezbędny do nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrze rozdzielacza</a>.</p>
                <div class="rk-formula">
                    V [m3/h] = (Q_pętli / (c_w × ρ × ΔT)) × 3600
                </div>
                <div class="rk-calc-desc">
                    <strong>Stałe fizyczne (dla 40°C):</strong><br>
                    • c_w (ciepło właściwe) = 4186 J/(kg·K)<br>
                    • ρ (gęstość wody) = 992 kg/m³<br>
                    • ΔT (spadek temp.) = 5 K
                </div>
                <div class="rk-result-box">
                    Podstawiając do wzoru, uzyskujemy przepływ do ustawienia:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resV">3.46 l/min</span> (0,208 m³/h)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">3</div>
                <h3 class="rk-step-title">Liniowe straty ciśnienia (Δp_l)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Straty ciśnienia na skutek tarcia w rurze PEX 16&#215;2,0 mm na podstawie wyliczonego przepływu i szacunkowej długości pętli.</p>
                <div class="rk-formula">
                    Δp_l = R × L_całkowita
                </div>
                <div class="rk-calc-desc">
                    Przyjmujemy średni opór <strong>R = 140 Pa/m</strong> dla wyliczonego przepływu oraz długość pętli proporcjonalną do mocy (np. <span id="resLen">95 m</span>).
                </div>
                <div class="rk-result-box">
                    Tarcie samej rury na odcinkach prostych generuje opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPl">13.30 kPa</span> (13300 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">4</div>
                <h3 class="rk-step-title">Opory miejscowe na zakrętach 180° (Δp_m)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Układ meandrowy generuje wysokie opory miejscowe ze względu na dużą liczbę ostrych zwrotów rury o 180 stopni.</p>
                <div class="rk-formula">
                    Δp_m = Σ(ξ) × (ρ × v²) / 2
                </div>
                <div class="rk-calc-desc">
                    Gdzie współczynnik oporu łuku 180° <strong>ξ = 1.5</strong>. Szacowana liczba łuków dla tej pętli to <span id="resBends">18</span>. Prędkość czynnika (v) dla rury 12mm wewnątrz to ok. <span id="resVel">0.51</span> m/s.
                </div>
                <div class="rk-result-box">
                    Same zakręty meandru stawiają wodzie opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPm">3.48 kPa</span> (3482 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">5</div>
                <h3 class="rk-step-title">Całkowita strata ciśnienia (Δp_tot)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Finalna wartość, którą musi pokonać pompa obiegowa, aby zapewnić ciepło w układzie.</p>
                <div class="rk-formula">
                    Δp_tot = Δp_l + Δp_m
                </div>
                <div class="rk-result-box">
                    Całkowity opór hydrauliczny wybranej sekcji wynosi:
                    <br>Wynik ostateczny: <span class="rk-val-highlight" id="resTotal">16.78 kPa</span>
                    <br><small style="color:#64748b; margin-top:5px; display:block;" id="resStatus">Wartość ta mieści się w bezpiecznym limicie wynoszącym 20 kPa.</small>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('simRange');
    
    // UI Elements
    var uiBaseQ = document.getElementById('uiBaseQ');
    var resQ = document.getElementById('resQ');
    var resV = document.getElementById('resV');
    var resLen = document.getElementById('resLen');
    var resPl = document.getElementById('resPl');
    var resBends = document.getElementById('resBends');
    var resVel = document.getElementById('resVel');
    var resPm = document.getElementById('resPm');
    var resTotal = document.getElementById('resTotal');
    var resStatus = document.getElementById('resStatus');

    // Constants
    var c_w = 4186;
    var rho = 992;
    var dT = 5;
    var safety_factor = 1.15;
    var mianownik = c_w * rho * dT; // 20762560
    var pipe_inner_area = Math.PI * Math.pow(0.006, 2); // promień 6mm w metrach kw.

    function calculateValues(baseQ) {
        uiBaseQ.textContent = Math.round(baseQ) + " W";
        
        // Krok 1
        var Q_petli = baseQ * safety_factor;
        resQ.textContent = Math.round(Q_petli) + " W";

        // Krok 2 (Przepływ w m3/h -> l/min)
        var V_m3h = (Q_petli / mianownik) * 3600;
        var V_lmin = V_m3h * (1000 / 60);
        resV.textContent = V_lmin.toFixed(2) + " l/min";

        // Krok 3 (Szacowanie długości: proporcjonalnie do mocy. 1200W = 95m)
        var length = (Q_petli / 1200) * 95;
        resLen.textContent = Math.round(length) + " m";
        
        // Szacowanie R proporcjonalnie do przepływu (w dużym uproszczeniu liniowym dla symulacji)
        // 3.46 l/min to ok 140 Pa. 
        var R_pa = (V_lmin / 3.46) * 140;
        var pl_pa = R_pa * length;
        var pl_kpa = pl_pa / 1000;
        resPl.textContent = pl_kpa.toFixed(2) + " kPa";

        // Krok 4 (Prędkość i opory miejscowe)
        var V_m3s = V_m3h / 3600;
        var v_ms = V_m3s / pipe_inner_area;
        resVel.textContent = v_ms.toFixed(2);

        var bends = Math.round((length / 95) * 18);
        resBends.textContent = bends;

        var pm_pa = bends * 1.5 * ((rho * Math.pow(v_ms, 2)) / 2);
        var pm_kpa = pm_pa / 1000;
        resPm.textContent = pm_kpa.toFixed(2) + " kPa";

        // Krok 5
        var total_kpa = pl_kpa + pm_kpa;
        resTotal.textContent = total_kpa.toFixed(2) + " kPa";

        // Status limitu (Zabezpieczenie JS)
        if (total_kpa <= 20) {
            resStatus.textContent = "Wartość ta mieści się w bezpiecznym limicie hydraulicznym wynoszącym 20 kPa.";
            resStatus.style.color = "#059669";
        }
        if (total_kpa > 20) {
            resStatus.textContent = "UWAGA: Wartość przekracza limit hydrauliczny (20 kPa). Konieczny podział na dwie pętle.";
            resStatus.style.color = "#ef4444";
        }
    }

    // Event listener bez znaków zagrażających
    rangeInput.addEventListener('input', function() {
        var val = parseFloat(this.value);
        calculateValues(val);
    });

    // Inicjalizacja stanu początkowego (dla dokładnej wartości 1200W całkowitej)
    var initialBase = 1200 / 1.15;
    rangeInput.value = initialBase;
    calculateValues(initialBase);
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #2563eb;
    --rk-proj-blue-light: #eff6ff;
    --rk-proj-gray: #64748b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
}

.rk-proj-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(37, 99, 235, 0.12);
    border: 1px solid var(--rk-proj-blue);
    overflow: hidden;
}

/* Header */
.rk-proj-header {
    background: linear-gradient(145deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: white;
}

.rk-proj-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-proj-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Nawigacja (Tabulatory poziome na desktop, pionowe na mobile) */
.rk-proj-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-proj-tab-btn {
    background: white;
    border: 2px solid var(--rk-proj-border);
    padding: 16px 20px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-proj-tab-btn:hover {
    border-color: #bfdbfe;
    background: var(--rk-proj-blue-light);
}

.rk-proj-tab-btn.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-blue);
    color: white;
    box-shadow: 0 8px 15px -5px rgba(37, 99, 235, 0.3);
}

.rk-proj-tab-btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

/* Kontener Treści (Ściśle 1-kolumnowy, oparty na gęstym tekście) */
.rk-proj-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-proj-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left; /* Czytelny układ dla dłuższych bloków tekstu */
}

.rk-proj-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-proj-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-proj-blue);
    border-radius: 4px;
}

.rk-proj-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-proj-content-box p:last-child {
    margin-bottom: 0;
}

/* Styl wyróżnień technicznych (zamiast LaTeX) */
.rk-tech-val {
    font-weight: 800;
    color: var(--rk-proj-blue);
    background: var(--rk-proj-blue-light);
    padding: 3px 8px;
    border-radius: 6px;
    white-space: nowrap;
}

.rk-keyword {
    font-weight: 700;
    color: var(--rk-proj-dark);
    border-bottom: 1px dashed var(--rk-proj-gray);
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

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

/* Kreatywne CTA */
.rk-proj-cta {
    background: linear-gradient(to right, #eff6ff, #ffffff);
    padding: 40px;
    text-align: center;
    border-top: 2px dashed var(--rk-proj-border);
}

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

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

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-blue);
    color: white;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-body, .rk-proj-content-box, .rk-proj-cta { padding: 25px 20px; }
    .rk-proj-tabs { flex-direction: column; gap: 10px; }
    .rk-proj-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-btn-cta { width: 100%; text-align: center; font-size: 15px; padding: 16px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak instalacja ogrzewania podłogowego w układzie meandrowym wpływa na projekt HVAC?",
    "description": "Szczegółowa analiza wpływu układu meandrowego na dobór pompy ciepła, regulację rotametrów i grubość wylewki jastrychowej. Optymalizacja pod kątem OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-projekt",
    "name": "Parametry Projektowe Układu Meandrowego w HVAC",
    "description": "Baza danych powiązań między wyborem układu meandrowego a optymalizacją pracy układu hydraulicznego i źródła ciepła dla domów pasywnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy ciepła do ogrzewania podłogowego",
      "krzywa grzewcza pompy ciepła",
      "równoważenie hydrauliczne rotametrów",
      "opory hydrauliczne instalacji podłogowej",
      "grubość wylewki betonowej na podłogówkę",
      "jastrych anhydrytowy a meander",
      "bezwładność cieplna podłogówki",
      "ustawienie przepływów na rotametrach"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych na podstawie normy PN-EN 12831 oraz specyfikacji technicznych pomp obiegowych i źródeł ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Optymalizacja zasilania do Tz = 35°C w celu zapobiegania spadkowi wskaźnika SCOP na krzywej grzewczej.",
        "Hydraulika: Kompensacja strat miejscowych przez rygorystyczne równoważenie przepływów masowych na rotametrach.",
        "Jastrych: Kontrola bezwładności cieplnej poprzez jednorodną wylewkę 45-50 mm (beton) lub 35 mm (anhydryt)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-projekt",
    "name": "Eksplorator Założeń Projektowych OZC",
    "description": "Narzędzie interaktywne typu Single-Column eksplorujące techniczne konsekwencje zastosowania pętli meandrowych w profesjonalnym projekcie instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="meander-design-impact">
    <div class="rk-proj-header">
        <h2>Wpływ układu meandrowego na projekt techniczny</h2>
        <p>Zastosowanie meandru ma diametralny wpływ na projekt HVAC, wymuszając ścisłą korelację pomiędzy audytem OZC a hydrauliczną strukturą rozdzielacza. Sprawdź, co ulegnie zmianie w instalacji.</p>
    </div>

    <div class="rk-proj-body">
        
        <div class="rk-proj-tabs" id="projTabs">
            <button class="rk-proj-tab-btn active" data-target="pompa">
                <svg 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><path d="M12 18v-6"></path><path d="M9 15h6"></path></svg>
                Pompa Ciepła (SCOP)
            </button>
            <button class="rk-proj-tab-btn" data-target="hydro">
                <svg 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>
                Równoważenie Hydrauliki
            </button>
            <button class="rk-proj-tab-btn" data-target="screed">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                Termodynamika Jastrychu
            </button>
        </div>

        <div class="rk-proj-content-box fade-in-up" id="projContent">
            <h3>Korelacja z krzywą grzewczą pompy ciepła</h3>
            <p>
                Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.
            </p>
            <p>
                Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.
            </p>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h4>Nie ryzykuj wysokich rachunków za ogrzewanie</h4>
        <p>Brak projektu OZC przy meandrze to gwarancja przewymiarowanej pompy i nierównego grzania. Skonsultuj swój budynek z inżynierem i zyskaj pełną kontrolę nad instalacją.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO Z POMPĄ CIEPŁA
            <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() {
    var tabs = document.querySelectorAll('.rk-proj-tab-btn');
    var contentBox = document.getElementById('projContent');

    var projData = {
        "pompa": {
            title: "Korelacja z krzywą grzewczą pompy ciepła",
            html: '<p>Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.</p><p>Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.</p>'
        },
        "hydro": {
            title: "Hydrauliczne równoważenie przepływów",
            html: '<p>Z uwagi na konstrukcję, pętle meandrowe stawiają wodzie znaczny opór. Aby obieg funkcjonował poprawnie, kluczowe staje się <span class="rk-keyword">równoważenie hydrauliczne rotametrów</span> w szafce. W projekcie technicznym każda pętla otrzymuje konkretną, matematycznie wyliczoną nastawę wstępną podaną w litrach na minutę.</p><p>Ponieważ meander podbija <span class="rk-keyword">opory hydrauliczne instalacji podłogowej</span> w stosunku do układów ślimakowych, absolutnie niedopuszczalne jest projektowanie układów mieszanych (ślimak i meander) na jednym rozdzielaczu bez precyzyjnego wyregulowania dławików. Brak <span class="rk-keyword">ustawienia przepływów na rotametrach</span> na bazie projektu prowadzi do sytuacji, gdzie woda krąży tylko w najkrótszych pętlach ślimakowych, omijając gęsty meander pod oknem całkowicie.</p>'
        },
        "screed": {
            title: "Kontrola termodynamiki jastrychu",
            html: '<p>W meandrze temperatura wody spada liniowo od rozdzielacza do końca pętli, dlatego projektant musi perfekcyjnie zapanować nad strukturą budowlaną posadzki. Odpowiednia <span class="rk-keyword">grubość wylewki betonowej na podłogówkę</span> (zazwyczaj <span class="rk-tech-val">45–50 mm</span> nad górną krawędzią rury) to fundament zapobiegający pękaniu posadzki.</p><p>Alternatywnie, projekt może zakładać cieńszy <span class="rk-keyword">jastrych anhydrytowy</span> (około <span class="rk-tech-val">35 mm</span>), który lepiej znosi naprężenia zginające. Niezależnie od materiału, idealnie wyliczona masa termiczna jastrychu pozwala przewidzieć <span class="rk-keyword">bezwładność cieplną podłogówki</span>. Dzięki temu system sterowania szybciej reaguje na zyski słoneczne w pomieszczeniach z meandrem brzegowym, nie dopuszczając do szkodliwego przegrzewania wnętrz.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-target');
            var data = projData[target];

            // Bezpieczne wstrzyknięcie danych (bez instrukcji logicznych && / || )
            if (data !== undefined) {
                // Restart animacji fade-in
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // trigger reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Gęsty tekst, brak SVG
                contentBox.innerHTML = 
                    '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

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

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%);
    padding: 35px 40px;
    color: white;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-err-header-icon {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    padding: 15px;
    flex-shrink: 0;
}

.rk-err-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 8px 0;
    color: white;
}

.rk-err-header-content p {
    font-size: 15px;
    color: #fca5a5;
    margin: 0;
    line-height: 1.5;
}

/* Interactive Body */
.rk-err-interactive {
    padding: 30px 40px;
    background: #f8fafc;
}

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

/* Kafelki Błędów (Lewa strona) */
.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    background: white;
    border: 2px solid var(--rk-err-border);
    padding: 18px 20px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    background: var(--rk-err-red-light);
}

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

.rk-err-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-icon {
    background: var(--rk-err-red);
    color: white;
}

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

/* Panel Diagnostyczny (Prawa strona) */
.rk-diag-panel {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-err-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-diag-svg-box {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

.rk-diag-content h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-err-red);
    margin: 0 0 10px 0;
}

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

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

/* Animacje SVG dla błędów */
.err-anim-pulse {
    animation: errPulse 1.5s infinite;
}

@keyframes errPulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.1); }
    100% { opacity: 1; transform: scale(1); }
}

.err-anim-shake {
    animation: errShake 0.5s infinite;
}

@keyframes errShake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-2px); }
    100% { transform: translateX(0); }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-header { flex-direction: column; text-align: center; padding: 25px 20px; }
    .rk-err-interactive { padding: 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-diag-panel { order: -1; } /* Panel z wynikiem na samej górze na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy instalacji meandrowej i ich konsekwencje",
    "description": "Katalog najpoważniejszych błędów hydraulicznych w układach meandrowych, od załamania rury PEX, przez zbyt długie pętle, aż po pułapki systemów suchych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-bledy",
    "name": "Analiza Błędów Instalacji Meandrowej",
    "description": "Zestawienie technologicznych konsekwencji błędnego wykonania wodnego ogrzewania podłogowego ze szczególnym uwzględnieniem promieni gięcia i rozstawów rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "załamanie rury pex podłogówka",
      "spadek ciśnienia w długiej pętli",
      "rozstaw rur w systemie suchym",
      "kierunek zasilania meandra",
      "błędy montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wizualizacja skutków przekroczenia normatywnych promieni gięcia rur, ograniczeń długości pętli oraz analizy błędów kierunku przepływu wody grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd promienia: Powoduje uszkodzenie warstwy aluminium, restrykcję przepływu i wycieki.",
        "Błąd zasilania: Prowadzi do niedogrzania stref brzegowych przy przeszkleniach.",
        "Błąd długości: Zbyt długa pętla powoduje potężne straty ciśnienia i brak możliwości regulacji.",
        "Błąd systemu suchego: Wymuszony rozstaw (10/20cm) zamiast zoptymalizowanego 15cm dla domów pasywnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-diagnoza",
    "name": "Symulator Skutków Błędów Hydraulicznych",
    "description": "Interaktywny moduł edukacyjny dla inwestorów, pozwalający na symulację i zrozumienie fizycznych konsekwencji typowych błędów popełnianych przez instalatorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="error-simulator">
    <div class="rk-err-header">
        <div class="rk-err-header-icon">
            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-err-header-content">
            <h2>Najczęstsze błędy wykonawcze przy instalacji meandrowej</h2>
            <p>Jastrych betonowy zaleje wszystko. Odkryj, jakie bomby zegarowe zostawiają wykonawcy bez projektów i jak zniszczą one Twój komfort i portfel.</p>
        </div>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-error="bend">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                    <h3>Zbyt ostry promień gięcia rur</h3>
                </button>
                <button class="rk-err-btn" data-error="flow">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h10"></path><path d="M9 4v16"></path><path d="M15 9l5 3-5 3"></path></svg></div>
                    <h3>Błędny kierunek zasilania</h3>
                </button>
                <button class="rk-err-btn" data-error="length">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="7" width="20" height="10" rx="2" ry="2"></rect><line x1="12" y1="7" x2="12" y2="17"></line></svg></div>
                    <h3>Zbyt długa pętla grzewcza</h3>
                </button>
                <button class="rk-err-btn" data-error="dry">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg></div>
                    <h3>Pułapka systemów suchych</h3>
                </button>
            </div>

            <div class="rk-diag-panel">
                <div class="rk-diag-svg-box" id="errSvgBox">
                    <svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M20,50 L40,50" stroke="#94a3b8"></path>
                        <path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"></path>
                        <path d="M50,60 L50,80" stroke="#94a3b8"></path>
                        <circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"></circle>
                    </svg>
                </div>
                <div class="rk-diag-content" id="errContentBox">
                    <h4>Przewężenie i ryzyko pęknięcia</h4>
                    <p>Wykonawcy, próbując wymusić mały rozstaw rur (np. 10 cm) w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest drastyczne przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych, a w skrajnych przypadkach pęknięcie warstwy aluminium w rurze PEX. To po kilku latach skutkuje wyciekiem wody pod jastrych.</p>
                    <p>Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a></p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var errBtns = document.querySelectorAll('.rk-err-btn');
    var svgBox = document.getElementById('errSvgBox');
    var contentBox = document.getElementById('errContentBox');

    var errData = {
        "bend": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M20,50 L40,50" stroke="#94a3b8"/><path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"/><path d="M50,60 L50,80" stroke="#94a3b8"/><circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"/></svg>',
            title: "Przewężenie i ryzyko pęknięcia",
            desc: "Wykonawcy, próbując wymusić mały rozstaw rur w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych i pęknięcie warstwy aluminium, co gwarantuje wyciek wody pod jastrych.",
            link: '<a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a>'
        },
        "flow": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="10" height="60" fill="#38bdf8" stroke="none"/><path d="M80,30 L30,30 L30,45 L80,45" stroke="#ef4444" class="err-anim-pulse"/><path d="M80,60 L30,60 L30,75 L80,75" stroke="#94a3b8"/><text x="40" y="95" font-size="12" fill="#ef4444" stroke="none">Zimne okno</text></svg>',
            title: "Niedogrzane strefy brzegowe",
            desc: "Zasilanie prowadzone od strony ściany wewnętrznej, zamiast od najzimniejszej strefy przegrody zewnętrznej. Konsekwencje: nierównomierny rozkład temperatury, chłodniejsze miejsca przy oknach tarasowych i drastycznie niższy komfort cieplny w salonie.",
            link: '<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">Zasady projektowania strefy brzegowej.</a>'
        },
        "length": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M10,50 Q30,10 50,50 T90,50" stroke="#cbd5e1"/><path d="M10,50 Q30,10 50,50" stroke="#ef4444" class="err-anim-pulse"/><circle cx="50" cy="50" r="5" fill="#fef2f2" stroke="#ef4444"/><text x="15" y="80" font-size="11" fill="#ef4444" stroke="none">Spadek ciśnienia / Brak przepływu</text></svg>',
            title: "Hydrauliczny zawał pompy",
            desc: "Zbyt długa pętla grzewcza (powyżej limitów dla danej średnicy). Konsekwencje: potężne straty ciśnienia, zablokowany przepływ wody przez opory tarcia, brak ogrzewania w końcowej części pętli oraz całkowity brak możliwości wyregulowania rotametrów.",
            link: '<a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Co zrobić, gdy pętla podłogówki jest za długa?</a>'
        },
        "dry": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="80" height="60" rx="4" stroke="#94a3b8"/><line x1="30" y1="20" x2="30" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><line x1="70" y1="20" x2="70" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><circle cx="30" cy="50" r="6" fill="#ef4444"/><circle cx="70" cy="50" r="6" fill="#ef4444"/><path d="M30,50 Q50,80 70,50" stroke="#ef4444" fill="none" class="err-anim-shake"/><text x="42" y="45" font-size="12" fill="#ef4444" stroke="none">Brak 15 cm!</text></svg>',
            title: "Sztywny rozstaw płyt systemowych",
            desc: "Niektórzy producenci systemów lekkich robią płyty z dedykowanym rozstawem rur tylko co 10 cm. Brak układu pośredniego jest problemem dla nowocześnie izolowanych budynków, gdzie OZC wymusza rozstaw 15 cm. Trzeba wybrać płyty systemowe, które pozwolą na rozstaw ściśle według projektu OZC.",
            link: '<a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">Systemy suche – jak dobierać materiały?</a>'
        }
    };

    errBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            
            // Zmiana klas
            errBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            // Aktualizacja treści
            var errKey = this.getAttribute('data-error');
            var selectedData = errData[errKey];

            if (selectedData !== undefined) {
                svgBox.innerHTML = selectedData.svg;
                contentBox.innerHTML = '<h4>' + selectedData.title + '</h4>' +
                                       '<p>' + selectedData.desc + '</p>' +
                                       '<p>Dowiedz się więcej: ' + selectedData.link + '</p>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-teal: #0f766e;
    --rk-case-teal-light: #ccfbf1;
    --rk-case-gray: #475569;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(15, 118, 110, 0.15);
    border: 1px solid var(--rk-case-teal);
    overflow: hidden;
}

/* Nagłówek Case Study */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #134e4a 100%);
    padding: 40px 35px;
    display: flex;
    align-items: center;
    gap: 25px;
    color: white;
}

.rk-case-badge {
    background: rgba(204, 251, 241, 0.15);
    border: 1px solid rgba(204, 251, 241, 0.3);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 100px;
}

.rk-case-badge span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: #5eead4;
    margin-bottom: 5px;
}

.rk-case-badge svg {
    width: 32px;
    height: 32px;
    color: white;
}

.rk-case-title-box h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-case-title-box p {
    font-size: 15px;
    color: #99f6e4;
    margin: 0;
    line-height: 1.6;
}

/* Interfejs Single-Column */
.rk-case-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Tabulatory Etapów */
.rk-case-tabs {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-case-tab-btn {
    background: white;
    border: 2px solid var(--rk-case-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-case-tab-btn:hover {
    border-color: #99f6e4;
    background: var(--rk-case-teal-light);
}

.rk-case-tab-btn.active {
    border-color: var(--rk-case-teal);
    background: var(--rk-case-teal);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(15, 118, 110, 0.4);
}

.rk-case-tab-btn svg {
    width: 20px;
    height: 20px;
}

/* Kontener Treści */
.rk-case-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-case-data-bar {
    display: flex;
    justify-content: space-between;
    background: var(--rk-case-teal-light);
    border-left: 4px solid var(--rk-case-teal);
    padding: 15px 20px;
    border-radius: 8px;
    margin-bottom: 25px;
    font-size: 14px;
    font-weight: 700;
    color: #115e59;
}

.rk-case-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

.rk-case-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 15px 0;
}

.rk-case-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-case-content-box a {
    color: var(--rk-case-teal);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-case-content-box a:hover {
    color: var(--rk-case-dark);
    background: var(--rk-case-teal-light);
}

/* Wyróżnienia Tech */
.rk-tech-pill {
    display: inline-block;
    background: var(--rk-case-dark);
    color: white;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
}

/* Animacje CSS */
.fade-in-content {
    animation: fadeIn 0.4s ease-out forwards;
}

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

.anim-crack {
    stroke-dasharray: 100;
    animation: crackDraw 1.5s forwards;
}

@keyframes crackDraw {
    from { stroke-dashoffset: 100; }
    to { stroke-dashoffset: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-case-body { padding: 25px 20px; }
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-case-data-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-case-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Studium Przypadku: Ogrzewanie podłogowe na starym drewnianym stropie (Tarnowskie Góry)",
    "description": "Techniczna analiza modernizacji domu z lat 70. Jak układ meandrowy i system suchy uratowały drewniany strop przed zawaleniem ciężką wylewką.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-case-study",
    "name": "Porównanie obciążeń konstrukcyjnych przy modernizacji stropu",
    "description": "Zestawienie parametrów wagi oraz oporów cieplnych zastosowanych rozwiązań grzewczych w budynku z lat 70.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka na drewnianym stropie",
      "waga wylewki betonowej m2",
      "lekki system suchy ogrzewanie",
      "remont domu z lat 70 podłogówka",
      "nośność stropu drewnianego wylewka",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowa inżynierska ocena wytrzymałości starych belek drewnianych na obciążenia statyczne generowane przez jastrych cementowy vs suchą zabudowę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Strop drewniany z lat 70., dopuszczalne dodatkowe obciążenie krytyczne poniżej 50 kg/m2.",
        "Ryzyko (Wylewka betowa): 120-150 kg/m2 - ryzyko uszkodzenia konstrukcji nośnej.",
        "Wdrożone rozwiązanie (System suchy meander): 15-20 kg/m2 - pełne bezpieczeństwo statyczne przy zachowaniu wysokiej wydajności."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-case-study",
    "name": "Eksplorator Studium Przypadku: Remont Stropu",
    "description": "Narzędzie krok po kroku prezentujące proces inżynierskiego rozwiązywania problemu braku nośności stropu drewnianego pod instalację ogrzewania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="case-study-module">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <span>Case Study</span>
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
        </div>
        <div class="rk-case-title-box">
            <h2>Ogrzewanie podłogowe na drewnianym stropie</h2>
            <p><strong>Lokalizacja:</strong> Tarnowskie Góry, woj. śląskie | <strong>Budynek:</strong> Dom z lat 70., 110 m² poddasza | <strong>Inwestor:</strong> Pan Tomasz</p>
        </div>
    </div>

    <div class="rk-case-body">
        
        <div class="rk-case-tabs" id="caseTabs">
            <button class="rk-case-tab-btn active" data-phase="problem">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                1. Diagnoza i Ryzyko
            </button>
            <button class="rk-case-tab-btn" data-phase="solution">
                <svg 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>
                2. Rozwiązanie Inżynierskie
            </button>
            <button class="rk-case-tab-btn" data-phase="result">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                3. Efekt końcowy
            </button>
        </div>

        <div class="rk-case-content-box fade-in-content" id="caseContentBox">
            
            <div class="rk-case-data-bar" id="caseDataBar">
                <span>Zagrożenie: Zawalenie konstrukcji drewnianej</span>
                <span>Waga <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:#115e59;">wylewki betonowej</a>: <strong style="color:#ef4444;">150 kg/m²</strong></span>
            </div>

            <div class="rk-case-svg-panel" id="caseSvgBox">
                <svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor">
                    <rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/>
                    <text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text>
                    <path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/>
                    <path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/>
                </svg>
            </div>

            <div id="caseTextBox">
                <h3>Problem: Ciężar, który niszczy drewno</h3>
                <p>
                    Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie &#8222;kostką&#8221;. Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.
                </p>
                <p>
                    <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie &#8222;mokrym&#8221; wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 &#8211; 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem płyt gipsowo-kartonowych na parterze, a w skrajnym przypadku katastrofą budowlaną.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-case-tab-btn');
    var contentBox = document.getElementById('caseContentBox');
    var dataBar = document.getElementById('caseDataBar');
    var svgBox = document.getElementById('caseSvgBox');
    var textBox = document.getElementById('caseTextBox');

    var caseData = {
        "problem": {
            barHtml: '<span>Zagrożenie: Uszkodzenie konstrukcji nośnej</span><span>Waga tradycyjnej wylewki: <strong style="color:#ef4444;">150 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/><text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text><path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/><path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/></svg>',
            title: "Problem: Ciężar, który niszczy drewno",
            text: '<p>Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie "kostką". Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.</p><p><a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie "mokrym" wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 - 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem sufitów na parterze, a w skrajnym przypadku katastrofą budowlaną.</p>'
        },
        "solution": {
            barHtml: '<span>Rozwiązanie: Płyty frezowane i lamele aluminiowe</span><span>Redukcja wagi o: <strong style="color:#0f766e;">85%</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="70" width="260" height="20" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M40 75 L260 75" stroke="#0ea5e9" stroke-width="4"/><circle cx="80" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="75" r="4" fill="#dc2626" stroke="none"/><text x="150" y="55" font-size="12" fill="#475569" stroke="none" text-anchor="middle" font-weight="bold">Lekki system suchy (układ meandrowy)</text></svg>',
            title: "Meander wpisany w system suchy",
            text: '<p>Weryfikacja inżynierska wykazała, że jedyną w 100% bezpieczną metodą jest zastosowanie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemu suchego ogrzewania podłogowego</a>. Opiera się on na dedykowanych płytach ze styropianu XPS lub twardego włókna drzewnego o wysokiej gęstości, w których fabrycznie wyfrezowano rowki. </p><p>Tutaj technologia narzuca kształt: te rowki wymuszają prowadzenie rur właśnie w <span class="rk-tech-pill">układzie meandrowym</span>. Rura układana jest równolegle, osadzana w specjalnych blachach aluminiowych (lamelach), które stanowią radiator odbierający ciepło z rury i oddający je bezpośrednio do ułożonych na nich paneli lub suchych płyt jastrychowych. Nie wylewamy tu ani grama wody i betonu.</p>'
        },
        "result": {
            barHtml: '<span>Efekt: Komfort cieplny z pompą ciepła</span><span>Nowe obciążenie stropu: <strong style="color:#0f766e;">15 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="110" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="90" width="260" height="20" fill="#e2e8f0" stroke="none"/><path d="M40 95 L260 95" stroke="#fcd34d" stroke-width="4"/><circle cx="80" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="95" r="4" fill="#dc2626" stroke="none"/><rect x="20" y="80" width="260" height="10" fill="#fef3c7" stroke="#b45309" stroke-width="1"/><path d="M80 70 L80 30 M150 70 L150 30 M220 70 L220 30" stroke="#f59e0b" stroke-width="3" stroke-dasharray="4 4" class="anim-crack"/><text x="150" y="20" font-size="12" fill="#d97706" stroke="none" text-anchor="middle" font-weight="bold">Błyskawiczne oddawanie ciepła</text></svg>',
            title: "Uratowany strop i błyskawiczna reakcja",
            text: '<p>Decyzja o wdrożeniu meandru w systemie suchym pozwoliła na zredukowanie ciężaru instalacji z niszczących 150 kg do <span class="rk-tech-pill">zaledwie 15 kg na metr kwadratowy</span>. Strop drewniany z lat 70. odzyskał statyczną stabilność, a całą inwestycję można było zrealizować bez naruszania konstrukcji budynku.</p><p>Co więcej, bark grubej warstwy betonu całkowicie wyeliminował <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Posadzka nagrzewa się w kilkadziesiąt minut, a nie w kilkanaście godzin. Dzięki temu <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">podłogówka na drewnianym stropie</a> u Pana Tomasza stała się systemem wysoce responsywnym, gotowym do precyzyjnej i oszczędnej współpracy z jego nową pompą ciepła.</p>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie stanami zakładek
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var phase = this.getAttribute('data-phase');
            var data = caseData[phase];

            // Wstrzyknięcie danych (bez instrukcji &&)
            if (data !== undefined) {
                // Restart CSS fade-in
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                contentBox.classList.add('fade-in-content');

                // Aktualizacja drzewa DOM
                dataBar.innerHTML = data.barHtml;
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.text;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-navy: #1e293b;
    --rk-exp-blue: #0284c7;
    --rk-exp-gold: #b45309;
    --rk-exp-gold-light: #fef3c7;
    --rk-exp-gray: #475569;
    --rk-exp-bg: #ffffff;
    --rk-exp-border: #e2e8f0;
}

.rk-exp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-exp-bg);
    border-radius: 16px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-exp-border);
    border-left: 6px solid var(--rk-exp-gold);
    overflow: hidden;
}

/* Nagłówek i Profil */
.rk-exp-header-section {
    background: var(--rk-exp-light);
    padding: 40px;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 35px;
    align-items: center;
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-photo-box {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--rk-exp-bg);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.rk-exp-photo-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

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

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

.rk-exp-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--rk-exp-navy);
    color: white;
    border-radius: 8px;
    text-decoration: none;
}

.rk-exp-social-link:hover {
    background: var(--rk-exp-blue);
}

.rk-exp-social-link svg {
    width: 20px;
    height: 20px;
}

/* Interaktywny Manifest (Brak animacji) */
.rk-exp-interactive {
    padding: 40px;
    background: var(--rk-exp-bg);
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 40px;
}

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

.rk-exp-rule-btn {
    background: #f8fafc;
    border: 1px solid var(--rk-exp-border);
    padding: 16px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Stany bez przejść (brak animacji) */
.rk-exp-rule-btn:hover {
    background: #f1f5f9;
}

.rk-exp-rule-btn.active {
    background: var(--rk-exp-navy);
    color: white;
    border-color: var(--rk-exp-navy);
}

.rk-exp-rule-btn svg {
    width: 18px;
    height: 18px;
}

/* Obszar Tekstowy */
.rk-exp-content-area {
    background: #f8fafc;
    border-radius: 12px;
    padding: 35px;
    border: 1px dashed var(--rk-exp-border);
}

.rk-exp-content-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-exp-gold);
    margin: 0 0 20px 0;
}

.rk-exp-content-area p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-exp-dark);
    margin: 0 0 15px 0;
}

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

.rk-exp-content-area a:hover {
    color: var(--rk-exp-navy);
}

.rk-quote-mark {
    font-size: 60px;
    color: var(--rk-exp-gold-light);
    line-height: 0;
    display: block;
    margin-bottom: 20px;
    font-family: Georgia, serif;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-exp-header-section { grid-template-columns: 1fr; text-align: center; justify-items: center; padding: 30px 20px; }
    .rk-exp-socials { justify-content: center; }
    .rk-exp-interactive { grid-template-columns: 1fr; padding: 25px 20px; gap: 25px; }
    .rk-exp-content-area { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Okiem eksperta: Robert Kucharski o projektowaniu instalacji meandrowych",
    "description": "Zestawienie autorskich zasad inżynierskich dotyczących unikania krytycznych wad wodnego ogrzewania podłogowego. Złote zasady samodzielnego montażu.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-ekspert",
    "name": "Eksperckie wytyczne instalacyjne: Weryfikacja błędów montażowych",
    "description": "Zbiór żelaznych reguł hydraulicznych zabezpieczających inwestora przed kosztownymi poprawkami przy realizacji układów meandrowych i doborze automatyki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wady wodnego ogrzewania podłogowego",
      "samodzielny montaż ogrzewania podłogowego",
      "sterowniki do ogrzewania podłogowego",
      "projekt ogrzewania podłogowego z głowy vs z obliczeniami",
      "opinia eksperta hvac",
      "robert kucharski projekt ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja najczęściej popełnianych błędów wykonawczych w odniesieniu do obliczeń inżynierskich i normatywów budowlanych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Obliczenia zastępują zgadywanie. Różnica między projektem OZC a intuicją to tysiące złotych w rachunkach.",
        "Zasada 2: Automatyka to wtórny dodatek. Bez poprawnie rozplanowanego meandru, żaden sterownik nie naprawi hydrauliki.",
        "Zasada 3: Samodzielny montaż wymaga reżimu. Układanie rur bez zachowania reżimu promieni gięcia gwarantuje mikrouszkodzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-ekspert",
    "name": "Interaktywny Manifest Instalatora HVAC",
    "description": "Narzędzie edukacyjne prezentujące bezpośrednie opinie i porady inżyniera Roberta Kucharskiego, ułatwiające weryfikację pracy firm wykonawczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container" id="expert-opinion-module">
    <div class="rk-exp-header-section">
        <div class="rk-exp-photo-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Inżynier Projekt-Ogrzewania.pl">
        </div>
        <div class="rk-exp-bio">
            <h2>Zdaniem eksperta: Robert Kucharski o układach meandrowych</h2>
            <p>CEO Projekt-Ogrzewania.pl. Posiada na swoim koncie ponad 1000 zrealizowanych projektów instalacji płaszczyznowych. Walczy z patologiami w branży instalacyjnej, promując twarde obliczenia inżynierskie zamiast wykonawstwa „na oko”.</p>
            <div class="rk-exp-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="Facebook">
                    <svg viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="LinkedIn">
                    <svg viewBox="0 0 24 24" fill="currentColor"><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>
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="X Twitter">
                    <svg viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
                </a>
            </div>
        </div>
    </div>

    <div class="rk-exp-interactive">
        <div class="rk-exp-rules-list" id="expertTabs">
            <button class="rk-exp-rule-btn active" data-rule="design">
                Złudzenie oszczędności na projekcie
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="diy">
                Ryzyko samodzielnego układania
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="auto">
                Mit magicznej automatyki
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
        </div>

        <div class="rk-exp-content-area">
            <span class="rk-quote-mark">&#8222;</span>
            <h3 id="expertTitle">Intuicja instalatora nie zastąpi kalkulatora</h3>
            <div id="expertText">
                <p>Jako inżynier widziałem setki instalacji robionych &#8222;na wyczucie&#8221;. Prawda jest brutalna: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p>
                <p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma &#8222;oszczędność&#8221; odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-exp-rule-btn');
    var expTitle = document.getElementById('expertTitle');
    var expText = document.getElementById('expertText');

    var ruleData = {
        "design": {
            title: "Intuicja instalatora nie zastąpi kalkulatora",
            html: '<p>Jako inżynier widziałem setki instalacji robionych "na wyczucie". Prawda jest brutalna: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p><p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma "oszczędność" odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>'
        },
        "diy": {
            title: "Meander nie wybacza zagiętych rur na kolanie",
            html: '<p>Często otrzymuję pytania, czy <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">samodzielny montaż ogrzewania podłogowego</a> ma sens. Owszem, można to zrobić, jeśli masz wiedzę. Ale pamiętaj: <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady wodnego ogrzewania podłogowego</a> ujawniają się dopiero po latach. Głównym błędem "złotych rączek" przy układzie meandrowym jest łamanie struktury aluminium w rurach PEX podczas wymuszania zbyt wąskich promieni gięcia przy oknach.</p><p>Jeśli decydujesz się na montaż własnymi rękami, absolutnie nie pomijaj ciśnieniowej próby szczelności z protokołem. To Twoja jedyna gwarancja, że zgięty przed chwilą nawrót meandru nie będzie puszczał wody pod jastrychem.</p>'
        },
        "auto": {
            title: "Sterownik nie naprawi zepsutej hydrauliki",
            html: '<p>Inwestorzy często pytają mnie, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>, mając nadzieję, że droga elektronika wyrówna niedociągnięcia instalacyjne. To najdroższy mit w tej branży. Żaden, nawet najbardziej zaawansowany siłownik termoelektryczny na rozdzielaczu nie przepchnie ciepłej wody przez zbyt długą, źle zrotametrowaną pętlę meandrową.</p><p>Automatyka strefowa to wspaniały dodatek podnoszący komfort i oszczędności, ale tylko i wyłącznie w sytuacji, gdy fundament – czyli rury, rozstawy i wyliczone opory hydrauliczne – jest wykonany bezbłędnie. Zaczynaj od inżynierii, kończ na gadżetach.</p>'
        }
    };

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

            var target = this.getAttribute('data-rule');
            var data = ruleData[target];

            // Bezpieczne wstrzyknięcie zawartości bez operatorów && / ||
            if (data !== undefined) {
                if (data !== null) {
                    // Natychmiastowa podmiana tekstu (brak animacji CSS)
                    expTitle.innerHTML = data.title;
                    expText.innerHTML = data.html;
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-accent: #f59e0b;
    --rk-faq-bg: #ffffff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-text-dark: #1e293b;
}

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

/* Nagłówek FAQ */
.rk-faq-header {
    background: linear-gradient(to right, var(--rk-faq-dark), #1e293b);
    padding: 35px 40px;
    color: white;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-header-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-faq-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: white;
}

.rk-faq-header-content p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
}

/* Sekcja Akordeonu */
.rk-faq-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-accordion-item {
    background: white;
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.01);
}

.rk-accordion-item:hover {
    border-color: #bae6fd;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.05);
}

.rk-accordion-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 4px 15px rgba(2, 132, 199, 0.1);
}

.rk-accordion-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.rk-accordion-btn h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-text-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

.rk-accordion-item.active .rk-accordion-btn h3 {
    color: var(--rk-faq-blue);
}

/* Ikona SVG Plusa/Minusa */
.rk-faq-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    position: relative;
    color: var(--rk-faq-blue);
}

.rk-faq-icon svg {
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-icon-plus { opacity: 1; transform: rotate(0deg); }
.rk-icon-minus { opacity: 0; transform: rotate(-90deg); }

.rk-accordion-item.active .rk-icon-plus { opacity: 0; transform: rotate(90deg); }
.rk-accordion-item.active .rk-icon-minus { opacity: 1; transform: rotate(0deg); }

/* Odpowiedź (Treść) */
.rk-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-accordion-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-accordion-inner 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-accordion-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
    background: var(--rk-faq-blue-light);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-faq-body { padding: 20px; }
    .rk-accordion-btn { padding: 15px 20px; }
    .rk-accordion-btn h3 { font-size: 15px; }
    .rk-accordion-inner { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące układu meandrowego",
    "description": "Techniczne kompendium wiedzy odpowiadające na pytania inwestorów dotyczące układu meandrowego, kosztów robocizny, doboru wylewki oraz zasilania z rozdzielacza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. Układ ślimakowy prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Średni koszt samej robocizny waha się w granicach 25 – 35 PLN/m², w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w układzie meandrowym można stosować panele podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny R ≤ 0,15 m²K/W dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie paneli montowanych na klej, co poprawia transfer ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalna grubość warstwy jastrychu betonowego nad zewnętrzną ścianką rury grzewczej wynosi 45 – 50 mm (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm."
        }
      },
      {
        "@type": "Question",
        "name": "Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowe rozdzielacze obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności pompy obiegowej oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-faq",
    "name": "Kluczowe Parametry Wykonawcze Układu Meandrowego",
    "description": "Zbiór danych technicznych obejmujący ceny robocizny, limity grubości jastrychu oraz maksymalną dopuszczalną ilość pętli na jednym rozdzielaczu mosiężnym lub INOX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena robocizny podłogówki m2",
      "grubość wylewki na podłogówkę",
      "maksymalna ilość pętli rozdzielacza",
      "panele na ogrzewanie podłogowe opór",
      "różnica meander a ślimak"
    ],
    "measurementTechnique": "Dane oparte na normach PN-EN 1264, charakterystykach pomp obiegowych oraz uśrednionych stawkach instalatorskich na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Robocizna: 25 - 35 PLN/m2",
        "Opór cieplny paneli: max 0,15 m2K/W",
        "Wylewka betonowa nad rurą: 45 - 50 mm",
        "Maksymalna ilość pętli: 12 na rozdzielacz 1 cal"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ",
    "description": "Dynamiczny komponent akordeonowy umożliwiający inwestorom szybkie przeglądanie najważniejszych pytań technicznych bez konieczności przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-meander">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-faq-header-content">
            <h2>FAQ – Najczęściej zadawane pytania dotyczące układu meandrowego</h2>
            <p>Konkretne odpowiedzi na pytania, które decydują o komforcie i kosztach eksploatacji Twojego domu.</p>
        </div>
    </div>

    <div class="rk-faq-body" id="rkFaqWrapper">
        
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowym?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ ślimakowy</a> prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Średni <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">koszt samej robocizny</a> waha się w granicach <strong>25 – 35 PLN/m²</strong>, w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czy w układzie meandrowym można stosować panele podłogowe?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny <strong>R ≤ 0,15 m²K/W</strong> dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">paneli montowanych na klej</a>, co drastycznie poprawia transfer ciepła.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Optymalna grubość warstwy <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu betonowego</a> nad zewnętrzną ścianką rury grzewczej wynosi <strong>45 – 50 mm</strong> (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Standardowe <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacze do podłogówki</a> obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a> oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var accBtns = document.querySelectorAll('.rk-accordion-btn');

    accBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            
            // Check if clicked item is currently active
            var isActive = item.classList.contains('active');

            // Close all items
            var allItems = document.querySelectorAll('.rk-accordion-item');
            allItems.forEach(function(el) {
                el.classList.remove('active');
                var elBtn = el.querySelector('.rk-accordion-btn');
                if (elBtn) {
                    elBtn.setAttribute('aria-expanded', 'false');
                }
                var elContent = el.querySelector('.rk-accordion-content');
                if (elContent) {
                    elContent.style.maxHeight = null;
                }
            });

            // If it wasn't active, open it (safe JS logic)
            if (isActive === false) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #475569;
    --rk-dl-gray-light: #f1f5f9;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
}

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

/* Header */
.rk-dl-header {
    background: var(--rk-dl-navy);
    padding: 35px 40px;
    color: white;
    border-bottom: 4px solid var(--rk-dl-blue);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: white;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Interfejs 2-kolumnowy (Desktop) */
.rk-dl-body {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: var(--rk-dl-bg);
    align-items: center;
}

/* Miniatura Infografiki */
.rk-dl-thumb-wrapper {
    background: var(--rk-dl-gray-light);
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 15px;
    position: relative;
    cursor: pointer;
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: var(--rk-dl-dark);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}

.rk-dl-zoom-hint svg {
    width: 16px;
    height: 16px;
}

/* Akcje i Opis */
.rk-dl-actions-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-actions-box p {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.7;
    margin: 0 0 25px 0;
}

.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 24px;
    border-radius: 10px;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
}

/* Brak animacji / przejść */
.rk-btn-primary {
    background: var(--rk-dl-blue);
    color: white;
}

.rk-btn-primary:hover {
    background: #0369a1;
}

.rk-btn-secondary {
    background: var(--rk-dl-gray-light);
    color: var(--rk-dl-dark);
    border-color: var(--rk-dl-border);
}

.rk-btn-secondary:hover {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.rk-btn svg {
    width: 20px;
    height: 20px;
}

/* Nota Prawna / Copyright */
.rk-dl-footer {
    background: var(--rk-dl-gray-light);
    padding: 20px 40px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    text-align: center;
}

.rk-dl-footer strong {
    color: var(--rk-dl-dark);
}

/* Modal do podglądu (Brak animacji, pojawia się natychmiast) */
.rk-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-modal-content {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 8px;
    border: 2px solid var(--rk-dl-gray);
}

.rk-modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

.rk-modal-close:hover {
    color: var(--rk-dl-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-body { grid-template-columns: 1fr; padding: 25px 20px; gap: 30px; }
    .rk-dl-footer { padding: 20px; }
    .rk-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kompendium wiedzy: Pobierz infografikę techniczną instalacji meandrowej",
    "description": "Profesjonalna infografika w formacie PDF i WebP podsumowująca 8 najważniejszych kroków i parametrów dla instalacji ogrzewania podłogowego w układzie meandrowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-infografika",
    "name": "Infografika techniczna: Instalacja ogrzewania podłogowego w układzie meandrowym",
    "description": "Ustrukturyzowany zbiór wytycznych projektowych obejmujący m.in. rozstawy rur, długości pętli, temperatury zasilania oraz najczęstsze błędy wykonawcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika podłogówka meander",
      "schemat układu meandrowego pdf",
      "pobierz schemat podłogówki",
      "robert kucharski materiały techniczne",
      "parametry instalacji podłogowej pdf",
      "instrukcja montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych danych liczbowych (np. rozstaw 10-20 cm, pętla max 80-100 m) do zwięzłej formy graficznej i dokumentu PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku: PDF (Wysoka rozdzielczość do druku).",
        "Format pliku: WebP (Optymalizacja cyfrowa).",
        "Zawartość: 8 kluczowych bloków wiedzy inżynierskiej, parametry instalacji, zestawienie korzyści i najczęstszych błędów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-repozytorium",
    "name": "Interaktywne Repozytorium Materiałów Inżynierskich",
    "description": "Aplikacyjny moduł służący do bezpiecznego podglądu bezpośredniego oraz pobierania autorskich opracowań inżynierskich w formatach bezstratnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="engineering-materials">
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="12" y2="18"></line><line x1="15" y1="15" x2="12" y2="18"></line></svg>
            Materiały dla Inwestora i Wykonawcy
        </h2>
        <p>Zabrałeś z tego artykułu mnóstwo wiedzy. Pobierz teraz techniczną infografikę, wydrukuj ją i zabierz na budowę, aby kontrolować poprawność wykonywanych prac instalacyjnych.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-thumb-wrapper" id="openImageBtn">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Infografika - Instalacja ogrzewania podłogowego w układzie meandrowym">
            <div class="rk-dl-zoom-hint">
                <svg 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
            </div>
        </div>

        <div class="rk-dl-actions-box">
            <h3>Techniczne podsumowanie na 1 stronie</h3>
            <p>Zestawienie parametrów brzegowych, twardych danych dotyczących długości pętli, rozstawów oraz krytycznych błędów. Plik PDF został zoptymalizowany do bezstratnego wydruku w formacie A4.</p>
            
            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn rk-btn-primary">
                    <svg 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 dokument PDF
                </a>
                <button class="rk-btn rk-btn-secondary" id="viewImageBtn">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                    Wyświetl pełną grafikę
                </button>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
        Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>
</div>

<div id="imageModal" class="rk-modal">
    <span class="rk-modal-close" id="closeModalBtn">&times;</span>
    <img decoding="async" class="rk-modal-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Pełny podgląd infografiki meander">
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var modal = document.getElementById("imageModal");
    var openBtn1 = document.getElementById("openImageBtn");
    var openBtn2 = document.getElementById("viewImageBtn");
    var closeBtn = document.getElementById("closeModalBtn");

    function openModal() {
        modal.style.display = "flex";
    }

    function closeModal() {
        modal.style.display = "none";
    }

    // Podpięcie zdarzeń
    openBtn1.addEventListener("click", openModal);
    openBtn2.addEventListener("click", openModal);
    closeBtn.addEventListener("click", closeModal);

    // Zamknięcie modala po kliknięciu w czarne tło (bezpieczny JS bez znaków || oraz &&)
    modal.addEventListener("click", function(event) {
        if (event.target === modal) {
            closeModal();
        }
    });
});
</script>



<style>
:root {
    --rk-end-dark: #0f172a;
    --rk-end-blue: #0284c7;
    --rk-end-blue-light: #e0f2fe;
    --rk-end-green: #059669;
    --rk-end-green-bg: #d1fae5;
    --rk-end-red: #dc2626;
    --rk-end-bg: #ffffff;
    --rk-end-border: #e2e8f0;
    --rk-end-text: #334155;
}

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

/* Header */
.rk-end-header {
    background: var(--rk-end-dark);
    padding: 40px;
    color: white;
    text-align: center;
    border-bottom: 4px solid var(--rk-end-blue);
}

.rk-end-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: white;
}

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

/* Interactive Section */
.rk-end-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-end-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Accordion Buttons */
.rk-step-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-step-btn {
    background: white;
    border: 2px solid var(--rk-end-border);
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-step-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

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

.rk-step-num {
    background: var(--rk-end-dark);
    color: white;
    font-weight: 900;
    font-size: 18px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-end-blue);
}

.rk-step-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-end-text);
    margin: 0;
}

/* Visual Result Panel */
.rk-viz-panel {
    background: white;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-end-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-viz-svg-container {
    width: 120px;
    height: 120px;
    margin-bottom: 20px;
}

.rk-viz-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-end-dark);
}

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

/* Animacje SVG */
.rk-path-anim {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawPath 1.5s forwards ease-in-out;
}

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

/* Artykuł Text */
.rk-end-text-content {
    padding: 0 40px 30px;
    background: #f8fafc;
}

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

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

.rk-end-text-content a {
    color: var(--rk-end-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-end-text-content a:hover {
    border-bottom-color: var(--rk-end-blue);
    background: rgba(2, 132, 199, 0.05);
}

/* Tagi */
.rk-end-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed var(--rk-end-border);
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: default;
    transition: background 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-end-blue);
    color: white;
}

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

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

.rk-end-cta p {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
}

.rk-btn-final {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-end-dark);
    color: white;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-final:hover {
    background: var(--rk-end-blue);
    transform: translateY(-4px);
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

/* Responsive */
@media (max-width: 768px) {
    .rk-end-header, .rk-end-interactive, .rk-end-text-content, .rk-end-cta { padding: 30px 20px; }
    .rk-end-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-btn-final { width: 100%; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Podsumowanie: Meander - Inżynieria vs Oszczędności",
    "description": "Interaktywne podsumowanie zasad montażu instalacji ogrzewania podłogowego w układzie meandrowym. Analiza limitów pętli i zrównoważenia hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-zasady",
    "name": "Parametry Krytyczne dla Układu Meandrowego",
    "description": "Dane z norm technicznych określające limity wykonawcze układu meandrowego gwarantujące bezawaryjną pracę na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "regulacja przepływu na rotametrach",
      "ciśnieniowa próba szczelności podłogówki",
      "betonowanie ogrzewania podłogowego",
      "wylewka betonowa na ogrzewanie"
    ],
    "measurementTechnique": "Weryfikacja parametrów hydraulicznych z wytycznymi EN 1264 oraz PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Reguła 1: Maksymalna długość pojedynczej pętli to 100m dla rury PEX 16mm.",
        "Reguła 2: Konieczność kalibracji przepływu masowego na rotametrach (Hydronic Balancing).",
        "Reguła 3: Obligatoryjna próba ciśnieniowa wodą (6 bar) przed zabetonowaniem rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-weryfikator",
    "name": "Symulator Zasad Bezpieczeństwa Instalacji Meandrowej",
    "description": "Interaktywny panel weryfikujący poprawność wdrożenia 3 najważniejszych filarów inżynierskich przy budowie płaszczyznowego ogrzewania meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-end-container" id="meander-summary">
    <div class="rk-end-header">
        <h2>Podsumowanie: Fundament podłogówki na dekady</h2>
        <p>Inżynieria nie znosi kompromisów. Wybierz jeden z filarów bezpieczeństwa instalacji meandrowej poniżej, aby sprawdzić, co decyduje o sukcesie lub finansowej katastrofie Twojej budowy.</p>
    </div>

    <div class="rk-end-interactive">
        <div class="rk-end-grid">
            
            <div class="rk-step-list" id="ruleButtons">
                <button class="rk-step-btn active" data-rule="1">
                    <div class="rk-step-num">1</div>
                    <h4 class="rk-step-title">Limit 100 metrów pętli</h4>
                </button>
                <button class="rk-step-btn" data-rule="2">
                    <div class="rk-step-num">2</div>
                    <h4 class="rk-step-title">Kalibracja rotametrów</h4>
                </button>
                <button class="rk-step-btn" data-rule="3">
                    <div class="rk-step-num">3</div>
                    <h4 class="rk-step-title">Ciśnienie przed betonem</h4>
                </button>
            </div>

            <div class="rk-viz-panel" id="ruleVizBox">
                <div class="rk-viz-svg-container" id="svgContainer">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;">
                        <circle cx="12" cy="12" r="10" class="rk-path-anim"></circle>
                        <line x1="12" y1="8" x2="12" y2="12" class="rk-path-anim"></line>
                        <line x1="12" y1="16" x2="12.01" y2="16" class="rk-path-anim"></line>
                    </svg>
                </div>
                <h4 class="rk-viz-title" id="ruleTitle">Żelazna zasada hydrauliki</h4>
                <p class="rk-viz-desc" id="ruleDesc">
                    Przekroczenie bariery 100 metrów dla rury 16&#215;2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika.
                </p>
            </div>

        </div>
    </div>

    <div class="rk-end-text-content">
        <h3>Meander: Precyzja, nie schemat</h3>
        <p>Instalacja ogrzewania podłogowego w układzie meandrowym to wysoce efektywne, inżynierskie rozwiązanie grzewcze, o ile zostanie wdrożone na podstawie precyzyjnych obliczeń hydraulicznych, a nie ogólnych schematów wykonawczych. Zdolność meandru do naturalnego koncentrowania mocy cieplnej w strefach brzegowych czyni go niezastąpionym komponentem nowoczesnego budownictwa energooszczędnego z dużymi przeszkleniami.</p>
        
        <p>Warunkiem bezwzględnym bezawaryjnej pracy przez kilkadziesiąt lat jest rygorystyczne przestrzeganie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">limitów długości pętli</a> (maksymalnie 100 m dla rury PEX/PERT 16 mm), prawidłowe zrównoważenie przepływów masowych na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> oraz bezkompromisowe wykonanie ciśnieniowej próby szczelności przed <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">etapem betonowania</a> wylewki.</p>
        
        <p>Każda próba chodzenia na skróty w tym obszarze, omijanie projektów i testów ciśnieniowych, generuje gigantyczne <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">koszty naprawcze</a> na etapie wykończeniowym budynku (kucie gotowych płytek i jastrychu).</p>

        <div class="rk-end-tags">
            <span class="rk-mat-tag"># maksymalna długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># regulacja przepływu na rotametrach</span>
            <span class="rk-mat-tag"># układ meandrowy strefy brzegowe</span>
            <span class="rk-mat-tag"># ciśnieniowa próba szczelności podłogówki</span>
            <span class="rk-mat-tag"># ogrzewanie energooszczędne duże przeszklenia</span>
            <span class="rk-mat-tag"># koszty awarii ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># hydrauliczne równoważenie instalacji</span>
            <span class="rk-mat-tag"># betonowanie ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># wylewka betonowa na ogrzewanie</span>
            <span class="rk-mat-tag"># schemat układu meandrowego</span>
        </div>
    </div>

    <div class="rk-end-cta">
        <h4>Przestań tracić pieniądze na błędy wykonawców</h4>
        <p>Kucie jastrychu kosztuje dziesiątki tysięcy złotych. Dobry projekt i potężna wiedza inżynierska uchronią Cię przed najgorszym koszmarem inwestora.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-final">
            ODKRYJ BAZĘ WIEDZY EKSKLUZYWNEJ I ZABEZPIECZ BUDOWĘ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-step-btn');
    const svgContainer = document.getElementById('svgContainer');
    const ruleTitle = document.getElementById('ruleTitle');
    const ruleDesc = document.getElementById('ruleDesc');

    // Baza danych widoków (Bezpieczne dane bez instrukcji warunkowych &&)
    const ruleData = {
        "1": {
            title: "Żelazna zasada hydrauliki",
            desc: "Przekroczenie bariery 100 metrów dla rury 16x2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika w pętli.",
            color: "#0284c7",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;"><path class="rk-path-anim" d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>'
        },
        "2": {
            title: "Równoważenie układu",
            desc: "Każdy obieg ma inną długość i inne straty. Przepływy na rotametrach muszą być wyliczone na bazie projektu OZC, a nie ustawione równo 'na dwójkę'.",
            color: "#eab308",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#eab308;"><circle cx="12" cy="12" r="10" class="rk-path-anim"></circle><polyline points="12 6 12 12 16 14" class="rk-path-anim"></polyline></svg>'
        },
        "3": {
            title: "Zero litości dla usterek",
            desc: "Zalewanie jastrychem betonu bez utrzymania instalacji pod 6 barowym ciśnieniem próbnym to igranie z ogniem. Nieszczelność pętli = kucie całej podłogi.",
            color: "#dc2626",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#dc2626;"><path class="rk-path-anim" d="M12 2v20"></path><path class="rk-path-anim" d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>'
        }
    };

    function updateView(ruleKey) {
        // Zabezpieczenie przed błędem
        let data = ruleData[ruleKey];
        if (data) {
            svgContainer.innerHTML = data.svg;
            ruleTitle.textContent = data.title;
            ruleDesc.textContent = data.desc;
            ruleTitle.style.color = data.color;
        }
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas aktywnych
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Dodanie klasy aktywnej
            this.classList.add('active');
            
            // Pobranie danych
            let ruleVal = this.getAttribute('data-rule');
            updateView(ruleVal);
        });
    });
});
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

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

  /* RWD - Mobile (układ pionowy, akordeon, brak przycisków obok siebie) */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<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>
	</channel>
</rss>
