<?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 projekt podłogówki - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/projekt-podlogowki/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/projekt-podlogowki/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 02 Jul 2026 06:13:13 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa projekt podłogówki - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/projekt-podlogowki/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 16:16:48 +0000</pubDate>
				<category><![CDATA[Audyt energetyczny]]></category>
		<category><![CDATA[Dofinansowania i dotacje]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Program Czyste Powietrze]]></category>
		<category><![CDATA[Program Moje Ciepło]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[audyt energetyczny]]></category>
		<category><![CDATA[cop pompy ciepła]]></category>
		<category><![CDATA[czyste powietrze 2026]]></category>
		<category><![CDATA[dokumentacja powykonawcza]]></category>
		<category><![CDATA[dotacja na pompę ciepła]]></category>
		<category><![CDATA[dotacje na ogrzewanie]]></category>
		<category><![CDATA[instalacja niskotemperaturowa]]></category>
		<category><![CDATA[moje ciepło 2026]]></category>
		<category><![CDATA[nfośigw]]></category>
		<category><![CDATA[obliczenia strat ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny podłogi]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[wskaźnik ep]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4137</guid>

					<description><![CDATA[<p>Planujesz termomodernizację starszego budynku lub budowę zupełnie nowego, energooszczędnego domu? W dobie rosnących wymagań urzędowych i dążenia do budownictwa bezemisyjnego, samo położenie rurek na styropianie to zdecydowanie za mało, aby otrzymać państwowe dofinansowanie. Kluczowym zagadnieniem, z którym mierzą się dzisiaj świadomi inwestorzy, jest właściwy Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026. Urzędnicy NFOŚiGW skrupulatnie weryfikują dokumentację techniczną pod kątem rygorystycznych wskaźników efektywności, a każdy, nawet najdrobniejszy błąd instalatora pracującego "na oko", może kosztować Cię bezpowrotną utratę dziesiątek tysięcy złotych. W tym poradniku pokażę Ci krok po kroku, jakie twarde wymogi musi spełniać instalacja, jak uniknąć najczęstszych pułapek przy wyborze wykończenia posadzki oraz dlaczego inżynieryjne obliczenia OZC to absolutny fundament bezpiecznego wniosku.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">W obliczu zaostrzających się rygorów energetycznych i dążenia Unii Europejskiej do budownictwa bezemisyjnego, rok 2026 staje się punktem zwrotnym dla polskich inwestorów. <strong>Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026 co musi zawierać</strong>, to dziś jedno z najczęściej zadawanych pytań w biurach projektowych i firmach instalacyjnych. To już nie tylko kwestia komfortu ciepłych stóp, ale przede wszystkim precyzyjny dokument techniczny, bez którego urzędnicy Narodowego Funduszu Ochrony Środowiska i Gospodarki Wodnej (NFOŚiGW) mogą odrzucić wniosek o wypłatę nawet kilkudziesięciu tysięcy złotych.</p>



<p class="wp-block-paragraph">W tym artykule pokażę Ci krok po kroku, jak przygotować dokumentację, która przejdzie weryfikację za pierwszym razem. Przedstawię konkretne wyliczenia, przykłady projektów odrzuconych i zaakceptowanych oraz prawdziwy case study inwestora, który dzięki dobrze przygotowanemu projektowi dostał <strong>28 000 zł dotacji</strong>. Nie będzie tu ogólników tylko techniczna wiedza podana w zrozumiały sposób.</p>



<h2 class="wp-block-heading">Aktualne wymagania dotacyjne 2026 na co urzędnicy patrzą najbardziej?</h2>



<p class="wp-block-paragraph">Oba programy <strong>Czyste Powietrze</strong>&nbsp;i&nbsp;<strong>Moje Ciepło</strong>&nbsp;w 2026 roku mają już mocno zaostrzone kryteria. Jeśli myślisz, że wystarczy kupić rury i wezwać instalatora, jesteś w błędzie. Dziś liczy się każdy szczegół: od temperatury zasilania po opór cieplny wylewki.</p>



<h3 class="wp-block-heading">Czym różnią się podejścia obu programów?</h3>



<ul class="wp-block-list">
<li><strong>Czyste Powietrze</strong>&nbsp;(dla istniejących domów): wymaga&nbsp;<strong>obowiązkowego audytu energetycznego</strong>&nbsp;przed rozpoczęciem prac. Projekt podłogówki musi być z nim zgodny co do joty. Program finansuje instalację jako część większej termomodernizacji – rzadko zdarza się dotacja na samą podłogówkę bez wymiany źródła ciepła.</li>



<li><strong>Moje Ciepło</strong>&nbsp;(dla nowych domów): stawia warunek&nbsp;<strong>wskaźnika energii pierwotnej EP ≤ 55 kWh/(m²·rok)</strong>. Ogrzewanie podłogowe jest tu praktycznie obowiązkowe, bo tylko niskotemperaturowy system pozwala osiągnąć takie wartości przy pompie ciepła.</li>
</ul>



<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: 750px;
    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: 30%;
}

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

.compare-table th.col-project {
    color: var(--accent);
    width: 35%;
    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);
}

.val-pill.warning {
    background: #ffedd5;
    color: var(--warning);
}

.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: "Czyste Powietrze 2026:";
        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: "Moje Ciepło 2026:";
        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">
        <h3>Co urzędnik NFOŚiGW weryfikuje w 2026 r.?</h3>
        <p>Zobacz, jak zaostrzyły się wymagania w zależności od tego, czy modernizujesz stary dom, czy budujesz nowy. W obu przypadkach brak solidnej dokumentacji oznacza odrzucenie wniosku. <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">Element weryfikacji</th>
                    <th class="col-noguide">Czyste Powietrze 2026</th>
                    <th class="col-project">Moje Ciepło 2026</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Max. temp. zasilania</td>
                    <td><span class="val-pill">≤ 35°C</span></td>
                    <td><span class="val-pill accent">≤ 35°C (zalecane 30°C)</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧮</span> Obliczenia OZC</td>
                    <td>Dla każdego pomieszczenia, <strong>zgodne z audytem</strong></td>
                    <td>Dla każdego pomieszczenia, <strong>zgodne z projektem budowlanym</strong></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🎛️</span> Sterowanie strefowe</td>
                    <td>Obowiązkowe (termostaty w pomieszczeniach)</td>
                    <td>Obowiązkowe (termostaty + siłowniki)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧱</span> Opór cieplny podłogi</td>
                    <td><span class="val-pill">R ≤ 0,15 (m²·K)/W</span></td>
                    <td><span class="val-pill warning">R ≤ 0,10 (m²·K)/W</span><br><span style="font-size: 11px; color: var(--warning); display: block; margin-top: 4px;">(uwaga przy grubych wykładzinach!)</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📄</span> Dokumentacja</td>
                    <td>Protokół odbioru + zdjęcia + faktury</td>
                    <td>Projekt powykonawczy + certyfikat EP budynku</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card">
            <h4>Czyste Powietrze (Modernizacja)</h4>
            <p>Program skupia się na audycie energetycznym. Opór cieplny wylewki ma tu nieco większy bufor (0,15), jednak bez pełnego OZC pokrywającego się z audytem, wypłata środków zostanie wstrzymana.</p>
        </div>
        
        <div class="summary-card card-project">
            <h4>Moje Ciepło (Nowy dom)</h4>
            <p>Bezwzględny wymóg utrzymania wskaźnika EP budynku. Oznacza to m.in. bardzo restrykcyjny opór podłogi (0,10). Położenie grubej deski bez zoptymalizowanego projektu rur to pewność utraty dotacji.</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>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Zwróć uwagę na opór cieplny!</em>&nbsp;W programie Moje Ciepło 2026, jeśli położysz parkiet o grubości 15 mm (opór ~0,12), a pod nim dodatkowo cienką wylewkę, możesz przekroczyć dopuszczalną granicę. Urząd zażąda wtedy wymiany wykładziny lub odrzuci wniosek.</p>
</blockquote>



<h3 class="wp-block-heading">Dlaczego temperatura zasilania 35°C to granica, której nie wolno przekroczyć?</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> osiąga najwyższą efektywność (COP – <em>Coefficient of Performance</em>) przy niskich temperaturach wody w instalacji. Każde 1°C poniżej 35°C to wzrost COP o około 2,5-3%. Dla projektu ogrzewania podłogowego oznacza to, że im gęściej ułożysz rury, tym niższa może być temperatura i tym więcej zaoszczędzisz.</p>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy dla domu 150 m²:</strong></p>



<ul class="wp-block-list">
<li>Zapotrzebowanie na ciepło: 6 kW</li>



<li>Wariant A (zła podłogówka): rozstaw rur 20 cm, wymagana temperatura 45°C → COP pompy = 3,2</li>



<li>Wariant B (dobra podłogówka): rozstaw rur 10 cm, wymagana temperatura 32°C → COP pompy = 4,6</li>
</ul>



<p class="wp-block-paragraph">Roczne zużycie prądu:</p>



<ul class="wp-block-list">
<li>Wariant A: 6000 W / 3,2 = 1875 W średniej mocy elektrycznej → ~16 400 kWh/rok</li>



<li>Wariant B: 6000 W / 4,6 = 1304 W średniej mocy elektrycznej → ~11 400 kWh/rok</li>
</ul>



<p class="wp-block-paragraph"><strong>Różnica: 5000 kWh rocznie</strong>. Przy cenie 1 zł/kWh daje to&nbsp;<strong>5000 zł oszczędności każdego roku</strong>. A do tego dotacja – bo projekt B spełnia warunki programów, a A nie.</p>



<h2 class="wp-block-heading">Które elementy projektu ogrzewania podłogowego są obowiązkowe dla urzędu?</h2>



<p class="wp-block-paragraph">Urzędnik NFOŚiGW nie jest instalatorem, ale ma listę kontrolną. Jeśli brakuje któregokolwiek z poniższych punktów, wniosek ląduje w koszu. Oto&nbsp;<strong>obowiązkowe minimum</strong>&nbsp;dokumentacji technicznej w 2026 roku.</p>



<h3 class="wp-block-heading">1. Obliczenia obciążenia cieplnego pomieszczeń (OZC)</h3>



<p class="wp-block-paragraph">To absolutna podstawa. Projektant musi wyliczyć straty ciepła dla każdego pokoju zgodnie z <strong><a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a></strong>. Nie wystarczy średnia dla całego domu.</p>



<p class="wp-block-paragraph"><strong>Przykład</strong>:<br>Salon 30 m², ściana zewnętrzna, okno 6 m², temperatura wewnątrz 22°C, zewnętrzna -20°C.</p>



<ul class="wp-block-list">
<li>Przenikanie przez ścianę (U=0,15 W/m²K): (30 m² &#8211; 6 m²) × 0,15 × 42 = 151 W</li>



<li>Przenikanie przez okno (U=0,9): 6 × 0,9 × 42 = 227 W</li>



<li>Wentylacja (0,5 wymiany/h): 30 × 2,5 m wys. × 0,34 × 42 = 1071 W</li>



<li><strong>Razem zapotrzebowanie salonu: ~1450 W</strong></li>
</ul>



<p class="wp-block-paragraph">Na tej podstawie projektant dobiera <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> dla 1450 W w 30 m² daje to gęstość około <strong>48 W/m²</strong>, co przy zasilaniu 35°C wymaga rozstawu co <strong>12-15 cm</strong>.</p>



<h3 class="wp-block-heading">2. Rzuty instalacji z ponumerowanymi pętlami</h3>



<p class="wp-block-paragraph">Każda pętla musi mieć swój numer, długość i przypisanie do konkretnego pomieszczenia. Urzędnik sprawdza, czy długości pętli nie przekraczają&nbsp;<strong>100 m dla rury 16&#215;2 mm</strong>&nbsp;– dłuższe powodują zbyt duże opory hydrauliczne i nierównomierne grzanie.</p>



<h3 class="wp-block-heading">3. Tabela nastaw wstępnych na rozdzielaczu</h3>



<p class="wp-block-paragraph">To częsty powód odrzuceń. Projekt musi określać dla każdej pętli:</p>



<ul class="wp-block-list">
<li>przepływ masowy w&nbsp;<strong>kg/h</strong>&nbsp;lub&nbsp;<strong>l/min</strong></li>



<li>stratę ciśnienia w&nbsp;<strong>kPa</strong></li>



<li>nastawę rotametru lub zaworu (np. 2,5; 3,0 itd.)</li>
</ul>



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

.premium-nastawy {
    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;
}

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

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

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

.nastawy-table-wrapper {
    padding: 0 30px;
    margin-top: 20px;
    margin-bottom: 20px;
    overflow-x: auto;
}

.nastawy-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 800px;
}

.nastawy-table th {
    padding: 16px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
    color: #64748b;
}

.nastawy-table th.col-nastawa {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

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

.nastawy-table td.col-nr {
    font-weight: 800;
    color: #94a3b8;
}

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

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

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

.val-pill {
    display: inline-block;
    padding: 6px 14px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 800;
}

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

.nastawy-footer {
    padding: 25px 40px;
    background: #eff6ff;
    border-top: 1px solid #bfdbfe;
    display: flex;
    gap: 20px;
    align-items: center;
}

.nastawy-footer-icon {
    font-size: 32px;
}

.nastawy-footer-text h4 {
    margin: 0 0 5px 0;
    color: #1e3a8a;
    font-size: 16px;
    font-weight: 800;
}

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

/* WERSJA MOBILNA - ZAMIANA W KARTY */
@media (max-width: 900px) {
    .nastawy-header { padding: 25px 20px; }
    .nastawy-table-wrapper { padding: 0 15px; min-width: 100%; }
    .nastawy-footer { flex-direction: column; text-align: center; padding: 20px 15px; }
    
    .nastawy-table {
        min-width: 100%;
        display: block;
    }
    
    .nastawy-table thead {
        display: none;
    }
    
    .nastawy-table tbody, .nastawy-table tr, .nastawy-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .nastawy-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);
    }
    
    .nastawy-table td {
        text-align: right;
        padding: 12px 20px;
        border-bottom: 1px solid #f1f5f9;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .nastawy-table td:last-child {
        border-bottom: none;
        background: #f8fafc;
    }

    .nastawy-table td.col-nr { display: none; } /* Ukrywamy sam numer pętli na mobile dla czystości */
    
    .nastawy-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
        justify-content: flex-start;
    }
    
    .nastawy-table td:nth-child(3)::before { content: "Długość pętli [m]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(4)::before { content: "Przepływ [l/min]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(5)::before { content: "Strata ciśnienia [kPa]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(6)::before { content: "Nastawa rotametru:"; font-weight: 800; color: var(--accent); font-size: 13px; text-transform: uppercase; }
}
</style>

<div class="premium-nastawy" id="nastawy-table-app">
    <div class="nastawy-header">
        <h3>Przykład tabeli nastaw (Fragment z projektu)</h3>
        <p>Bez tego dokumentu instalator nie ma możliwości prawidłowo wyregulować przepływów. „Zgadywanie” ustawień na budowie to główna przyczyna przegrzewania krótkich pętli (np. w łazience) i niedogrzewania długich (np. w salonie). <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="nastawy-table-wrapper">
        <table class="nastawy-table">
            <thead>
                <tr>
                    <th style="width: 8%;">Nr pętli</th>
                    <th style="text-align: left; width: 28%;">Pomieszczenie</th>
                    <th style="width: 16%;">Długość [m]</th>
                    <th style="width: 16%;">Przepływ [l/min]</th>
                    <th style="width: 16%;">Strata ciśnienia [kPa]</th>
                    <th class="col-nastawa" style="width: 16%;">Nastawa rotametru</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="col-nr">1</td>
                    <td class="param-name"><span class="icon">🛋️</span> Salon (strefa dzienna)</td>
                    <td>85</td>
                    <td>1,8</td>
                    <td>12</td>
                    <td><span class="val-pill accent">3,2</span></td>
                </tr>
                <tr>
                    <td class="col-nr">2</td>
                    <td class="param-name"><span class="icon">🪟</span> Salon (strefa przy oknie)</td>
                    <td>72</td>
                    <td>1,5</td>
                    <td>9</td>
                    <td><span class="val-pill accent">2,8</span></td>
                </tr>
                <tr>
                    <td class="col-nr">3</td>
                    <td class="param-name"><span class="icon">🛏️</span> Sypialnia</td>
                    <td>58</td>
                    <td>1,2</td>
                    <td>7</td>
                    <td><span class="val-pill accent">2,4</span></td>
                </tr>
                <tr>
                    <td class="col-nr">4</td>
                    <td class="param-name"><span class="icon">🛁</span> Łazienka</td>
                    <td>45</td>
                    <td>1,4</td>
                    <td>8</td>
                    <td><span class="val-pill accent">2,6</span></td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="nastawy-footer">
        <div class="nastawy-footer-icon">🔧</div>
        <div class="nastawy-footer-text">
            <h4>Dlaczego nastawy są tak ważne?</h4>
            <p>Woda zawsze płynie tam, gdzie ma najmniejszy opór (najkrótszą drogę). Bez precyzyjnego przykręcenia zaworów (rotametrów) na krótkich pętlach, woda ominie te najdłuższe. Tylko fizyczne obliczenia OZC pozwalają wyznaczyć dokładne wartości dla każdej strefy.</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','\x6e\x61\x73\x74\x61\x77\x79\x2d\x74\x61\x62\x6c\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>



<p class="wp-block-paragraph">Bez takiej tabeli instalator nie ma jak wyregulować układu, a urząd nie ma jak zweryfikować, czy system działa zgodnie z projektem.</p>



<h3 class="wp-block-heading">4. Specyfikacja warstw podłogi z oporami cieplnymi</h3>



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

.premium-warstwy {
    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;
}

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

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

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

.warstwy-table-wrapper {
    padding: 0 30px;
    margin-top: 20px;
    margin-bottom: 20px;
    overflow-x: auto;
}

.warstwy-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 700px;
}

.warstwy-table th {
    padding: 16px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
    color: #64748b;
}

.warstwy-table th.col-r {
    color: var(--success);
    border-bottom-color: var(--success);
}

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

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

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

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

/* Wyróżnienie wiersza sumy */
.row-sum td {
    background: #f0fdf4 !important;
    font-weight: 900;
    font-size: 16px;
    border-bottom: none;
    color: var(--success);
}

.row-sum td:first-child {
    text-align: right;
    text-transform: uppercase;
    color: #166534;
}

.val-pill {
    display: inline-block;
    padding: 6px 14px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 800;
}

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

.warstwy-footer {
    padding: 30px 40px;
    background: #fff;
    border-top: 1px solid var(--border-color);
}

.alert-box {
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.alert-icon {
    font-size: 32px;
    line-height: 1;
}

.alert-text h4 {
    margin: 0 0 10px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
}

.alert-text p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

.alert-text strong {
    background: #f87171;
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
}

/* WERSJA MOBILNA - ZAMIANA W KARTY */
@media (max-width: 900px) {
    .warstwy-header { padding: 25px 20px; }
    .warstwy-table-wrapper { padding: 0 15px; min-width: 100%; }
    .warstwy-footer { padding: 20px 15px; }
    .alert-box { flex-direction: column; text-align: left; gap: 15px; padding: 20px;}
    
    .warstwy-table {
        min-width: 100%;
        display: block;
    }
    
    .warstwy-table thead {
        display: none;
    }
    
    .warstwy-table tbody, .warstwy-table tr, .warstwy-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .warstwy-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);
    }
    
    .warstwy-table td {
        text-align: right;
        padding: 12px 20px;
        border-bottom: 1px solid #f1f5f9;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .warstwy-table td:last-child {
        border-bottom: none;
    }
    
    .warstwy-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
        justify-content: flex-start;
    }

    .row-sum td:first-child {
        background: #dcfce7 !important;
        justify-content: center;
    }
    .row-sum td {
        background: #f0fdf4 !important;
    }
    
    .warstwy-table td:nth-child(2)::before { content: "Grubość [cm]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .warstwy-table td:nth-child(3)::before { content: "λ [W/mK]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .warstwy-table td:nth-child(4)::before { content: "Opór R [(m²·K)/W]:"; font-weight: 800; color: var(--success); font-size: 13px; text-transform: uppercase; }
    .row-sum td:nth-child(4)::before { content: "ŁĄCZNY OPÓR R:"; font-weight: 900; color: #166534; font-size: 13px; }
}
</style>

<div class="premium-warstwy" id="warstwy-table-app">
    <div class="warstwy-header">
        <h3>Specyfikacja warstw podłogi (Weryfikacja NFOŚiGW)</h3>
        <p>To punkt, który w 2026 roku wywołuje najwięcej problemów w urzędach. Projekt dokumentujący ogrzewanie podłogowe musi zawierać tabelkę z wyszczególnieniem materiałów i oporów cieplnych, warstwa po warstwie. <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="warstwy-table-wrapper">
        <table class="warstwy-table">
            <thead>
                <tr>
                    <th style="text-align: left; width: 40%;">Warstwa</th>
                    <th style="width: 20%;">Grubość [cm]</th>
                    <th style="width: 20%;">λ [W/mK]</th>
                    <th class="col-r" style="width: 20%;">Opór R [(m²·K)/W]</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🪨</span> Wylewka anhydrytowa</td>
                    <td>5,0</td>
                    <td>1,4</td>
                    <td>0,036</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧴</span> Klej elastyczny</td>
                    <td>0,5</td>
                    <td>0,8</td>
                    <td>0,006</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧊</span> Płytki gresowe</td>
                    <td>1,0</td>
                    <td>1,3</td>
                    <td>0,008</td>
                </tr>
                <tr class="row-sum">
                    <td colspan="3">Łączny opór warstw (SUMA)</td>
                    <td><span class="val-pill success">0,050</span></td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="warstwy-footer">
        <div class="alert-box">
            <div class="alert-icon">⚠️</div>
            <div class="alert-text">
                <h4>Uwaga na grube wykończenia!</h4>
                <p>Jeśli suma oporów <strong>przekracza 0,15</strong> (w Czystym Powietrzu) lub <strong>0,10</strong> (w Moim Cieple), urząd nakazuje wymianę materiałów i może zablokować wypłatę.<br><br>
                Przykładowo: Wybierając parkiet dębowy 15 mm (R~0,12) oraz podkład korkowy 3 mm (R~0,05), łączny opór rośnie do <strong>0,17</strong>. Taka konfiguracja gwarantuje, że projekt <strong>zostanie skierowany do poprawki</strong>, a dotacja wstrzymana.</p>
            </div>
        </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','\x77\x61\x72\x73\x74\x77\x79\x2d\x74\x61\x62\x6c\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>



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



<h2 class="wp-block-heading">Przykłady poprawnych i odrzuconych projektów (anonimowe)</h2>



<p class="wp-block-paragraph">Teorie teorią, ale praktyka pokazuje, gdzie najczęściej leży pies pogrzebany. Oba przypadki są autentyczne (dane zmienione).</p>



<h3 class="wp-block-heading">❌ Projekt odrzucony – co poszło nie tak?</h3>



<p class="wp-block-paragraph"><strong>Inwestor</strong>: Pan Marek, dom z lat 90. w woj. małopolskim.<br><strong>Wniosek</strong>: Czyste Powietrze, dotacja na pompę ciepła + wymianę grzejników na podłogówkę.<br><strong>Co złożył</strong>: fakturę za rury, odręczny szkic na kartce, zdjęcia z telefonu.</p>



<p class="wp-block-paragraph"><strong>Powód odrzucenia</strong>:</p>



<ul class="wp-block-list">
<li>Brak obliczeń OZC – urząd nie mógł potwierdzić, że podłogówka pokryje zapotrzebowanie przy 35°C.</li>



<li>Brak tabeli nastaw – instalator &#8222;wyregulował na oko&#8221;, co doprowadziło do nierównomiernego grzania.</li>



<li>Brak specyfikacji warstw – wylewka 7 cm bez izolacji pod rury spowodowała straty w dół.</li>
</ul>



<p class="wp-block-paragraph"><strong>Skutek</strong>: Wstrzymanie wypłaty&nbsp;<strong>14 000 zł</strong>&nbsp;do czasu przedłożenia pełnego projektu powykonawczego od uprawnionego projektanta. Pan Marek zapłacił dodatkowe 2200 zł za dokumentację i czekał kolejne 3 miesiące.</p>



<h3 class="wp-block-heading">✅ Projekt zaakceptowany – wzór do naśladowania</h3>



<p class="wp-block-paragraph"><strong>Inwestorka</strong>: Pani Anna, nowy <a href="https://projekt-ogrzewania.pl/category/domy-szkieletowe/" type="link" id="https://projekt-ogrzewania.pl/category/domy-szkieletowe/">dom szkieletowy</a> w Wielkopolsce.<br><strong>Wniosek</strong>: Moje Ciepło, dotacja na pompę ciepła (9 kW) i ogrzewanie podłogowe.<br><strong>Co złożyła</strong>:</p>



<ul class="wp-block-list">
<li>Pełny projekt wykonany w programie InstalSystem.</li>



<li>OZC dla każdego z 8 pomieszczeń.</li>



<li>Rzuty z rozstawem rur co 10-12 cm, długości pętli od 45 do 88 m.</li>



<li>Tabela nastaw z przepływami.</li>



<li>Protokół równoważenia hydraulicznego podpisany przez instalatora.</li>



<li>Zdjęcia ułożonych rur z miarką i opisem pomieszczenia.</li>
</ul>



<p class="wp-block-paragraph"><strong>Wynik</strong>: Wypłata&nbsp;<strong>28 000 zł</strong>&nbsp;w ciągu 30 dni od złożenia kompletnych dokumentów. Dodatkowo dom osiągnął EP = 48 kWh/(m²·rok), czyli lepiej niż wymagane 55.</p>



<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

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

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

.chart-header {
    padding: 30px 40px 20px 40px;
    border-bottom: 1px solid #f1f5f9;
}

.chart-header h3 {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.chart-header p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
    line-height: 1.5;
}

.chart-canvas-wrapper {
    padding: 30px 40px;
    position: relative;
    height: 400px;
    width: 100%;
}

.chart-footer {
    padding: 25px 40px;
    background: var(--bg-light);
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.chart-icon {
    font-size: 24px;
    line-height: 1;
}

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

.chart-conclusion strong {
    color: var(--primary);
    font-weight: 800;
}

@media (max-width: 600px) {
    .chart-header, .chart-canvas-wrapper, .chart-footer {
        padding: 20px;
    }
    .chart-canvas-wrapper {
        height: 300px;
    }
}
</style>

<div class="premium-chart-box" id="chart-app-container">
    <div class="chart-header">
        <h3>Wpływ temperatury zasilania na COP i dotację</h3>
        <p>Zobacz, dlaczego urząd NFOŚiGW tak rygorystycznie weryfikuje projekty. <br><a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wykres i analiza przygotowane przez ekspertów Projekt-Ogrzewania.pl</a></p>
    </div>
    
    <div class="chart-canvas-wrapper">
        <canvas id="copSubsidyChart"></canvas>
    </div>
    
    <div class="chart-footer">
        <div class="chart-icon">💡</div>
        <p class="chart-conclusion">
            <strong>Wniosek z wykresu:</strong> Każde 5°C niższej temperatury zasilania to wzrost efektywności COP o około 0,6–0,9. Oznacza to nie tylko setki złotych oszczędności na rachunkach rocznie, ale przede wszystkim <strong>gwarancję spełnienia rygorystycznych wymogów dotacyjnych na 2026 rok</strong> (EP ≤ 55).
        </p>
    </div>
</div>

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

    // JEŚLI DOMENA SIĘ ZGADZA - RYSUJEMY WYKRES
    const canvasEl = document.getElementById('copSubsidyChart');
    if(!canvasEl) return; 
    
    const ctx = canvasEl.getContext('2d');
    
    const gradientFill = ctx.createLinearGradient(0, 0, 0, 400);
    gradientFill.addColorStop(0, 'rgba(37, 99, 235, 0.15)');
    gradientFill.addColorStop(1, 'rgba(255, 255, 255, 0)');

    const pointBackgroundColors = [];
    const pointBorderColors = [];
    const pointRadii = [];
    
    // Oś X: Temperatury
    const temps = [25, 30, 35, 40, 45, 50, 55];
    // Oś Y: Wartości COP 
    const copValues = [5.8, 5.1, 4.2, 3.7, 3.2, 2.8, 2.5];

    temps.forEach(t => {
        if (t <= 35) {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#16a34a'); // Zielony (sukces/dotacja)
            pointRadii.push(7);
        } else {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#dc2626'); // Czerwony (brak dotacji/ryzyko)
            pointRadii.push(7);
        }
    });

    new Chart(ctx, {
        type: 'line',
        data: {
            labels: temps.map(t => t + '°C'),
            datasets: [{
                label: 'Współczynnik COP',
                data: copValues,
                borderColor: '#94a3b8', 
                borderWidth: 3,
                backgroundColor: gradientFill,
                fill: true,
                tension: 0.4,
                pointBackgroundColor: pointBackgroundColors,
                pointBorderColor: pointBorderColors,
                pointBorderWidth: 3,
                pointRadius: pointRadii,
                pointHoverRadius: 9
            }]
        },
        options: {
            responsive: true,
            maintainAspectRatio: false,
            plugins: {
                legend: {
                    display: false
                },
                tooltip: {
                    backgroundColor: '#0f172a',
                    titleFont: { family: 'Inter', size: 14, weight: 'bold' },
                    bodyFont: { family: 'Inter', size: 13 },
                    padding: 14,
                    displayColors: false,
                    callbacks: {
                        title: function(context) {
                            return 'Temperatura zasilania: ' + context[0].label;
                        },
                        label: function(context) {
                            let temp = temps[context.dataIndex];
                            let cop = context.parsed.y;
                            let lines = [`Współczynnik COP: ${cop}`];
                            
                            if(temp === 30) {
                                lines.push('👉 Gwarancja dotacji (Optymalna podłogówka)');
                                lines.push('👉 Niskie rachunki');
                            } else if(temp === 35) {
                                lines.push('👉 Dotacja możliwa (Standard)');
                                lines.push('👉 EP budynku na granicy');
                            } else if(temp === 45) {
                                lines.push('❌ Brak dotacji w Moim Cieple!');
                                lines.push('❌ Ryzyko w Czystym Powietrzu (Rzadka podłogówka)');
                            } else if(temp >= 55) {
                                lines.push('❌ BRAK DOTACJI (Zasilanie na grzejniki)');
                                lines.push('❌ Ogromne rachunki za prąd');
                            } else if(temp === 25) {
                                lines.push('👉 Wynik idealny (Bardzo gęsta podłogówka)');
                            } else {
                                lines.push('❌ Spadek efektywności');
                            }
                            return lines;
                        }
                    }
                }
            },
            scales: {
                x: {
                    grid: { display: false },
                    ticks: {
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#64748b'
                    },
                    title: {
                        display: true,
                        text: 'Temperatura zasilania podłogówki [°C]',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {top: 10}
                    }
                },
                y: {
                    min: 2.0,
                    max: 6.0,
                    grid: {
                        color: '#f1f5f9',
                        drawBorder: false
                    },
                    ticks: {
                        stepSize: 0.5,
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#64748b'
                    },
                    title: {
                        display: true,
                        text: 'Współczynnik COP pompy ciepła',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {bottom: 10}
                    }
                }
            }
        }
    });
});
</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Wniosek</strong>: Każde 5°C niższej temperatury to wzrost COP o ok. 0,6-0,7. Dla domu 150 m² różnica między 35°C a 30°C to około&nbsp;<strong>1500 zł oszczędności rocznie</strong>.</p>
</blockquote>



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



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

.premium-roadmap {
    max-width: 900px;
    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;
}

.roadmap-header {
    padding: 40px;
    text-align: center;
    background: var(--primary);
    color: white;
}

.roadmap-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

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

.timeline-container {
    padding: 40px;
    background: var(--bg-light);
    position: relative;
}

/* Oś pionowa */
.timeline-container::before {
    content: '';
    position: absolute;
    top: 40px;
    bottom: 40px;
    left: 64px; /* 40px padding + 24px połowa ikony */
    width: 4px;
    background: #cbd5e1;
    border-radius: 4px;
}

.step-row {
    position: relative;
    display: flex;
    gap: 30px;
    margin-bottom: 35px;
}

.step-row:last-child {
    margin-bottom: 0;
}

.step-number {
    width: 48px;
    height: 48px;
    background: var(--accent);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    flex-shrink: 0;
    z-index: 2;
    box-shadow: 0 0 0 6px var(--bg-light);
}

.step-content {
    background: white;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    flex-grow: 1;
    position: relative;
}

.step-content::before {
    content: '';
    position: absolute;
    top: 20px;
    left: -8px;
    width: 16px;
    height: 16px;
    background: white;
    border-left: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    transform: rotate(45deg);
}

.step-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.step-content p:last-child {
    margin-bottom: 0;
}

/* Wyróżnienie kroku ze zdjęciami */
.step-warning {
    border-color: #fecaca;
    background: #fff5f5;
}
.step-warning::before {
    background: #fff5f5;
    border-color: #fecaca;
}
.step-warning h4 {
    color: var(--danger);
}
.warning-badge {
    display: inline-block;
    background: var(--danger);
    color: white;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

/* Listy zadań (Checklists) */
.task-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.task-list li {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    background: #f1f5f9;
    padding: 10px 15px;
    border-radius: 8px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.task-list li::before {
    content: '✅';
    font-size: 14px;
    flex-shrink: 0;
}

.code-style {
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-size: 12px;
    color: #0f172a;
}

/* Krok końcowy (sukces) */
.step-final .step-number {
    background: var(--success);
}

@media (max-width: 600px) {
    .roadmap-header { padding: 30px 20px; }
    .timeline-container { padding: 30px 15px; }
    .timeline-container::before { left: 35px; }
    
    .step-row { gap: 15px; margin-bottom: 25px; }
    .step-number { width: 40px; height: 40px; font-size: 16px; }
    
    .step-content { padding: 20px; }
    .step-content::before { top: 16px; }
    
    .task-list li { font-size: 12px; padding: 8px 12px; }
}
</style>

<div class="premium-roadmap" id="roadmap-app-container">
    <div class="roadmap-header">
        <h3>Jak przygotować dokumentację, żeby wniosek przeszedł za pierwszym razem?</h3>
        <p>Masz już świadomość, że projekt to nie tylko rysunek. Oto <strong>konkretna ścieżka postępowania</strong>, która minimalizuje ryzyko odrzucenia przez urzędników NFOŚiGW.</p>
    </div>

    <div class="timeline-container">
        
        <div class="step-row">
            <div class="step-number">1</div>
            <div class="step-content">
                <h4>📋 Audyt lub Wskaźnik EP</h4>
                <p>Bez tego nie ruszysz. Fundamentem każdej dotacji jest udokumentowanie stanu energetycznego budynku.</p>
                <ul class="task-list">
                    <li><strong>Czyste Powietrze:</strong> Zleć obowiązkowy audyt energetyczny.</li>
                    <li><strong>Moje Ciepło:</strong> Przygotuj świadectwo charakterystyki z EP.</li>
                </ul>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">2</div>
            <div class="step-content">
                <h4>👨‍🎓 Wybierz projektanta z uprawnieniami</h4>
                <p>Nie zlecaj tego &#8222;koledze po fachu&#8221;. NFOŚiGW wymaga twardych dokumentów. Projektant musi posiadać aktualne <strong>uprawnienia budowlane</strong> do instalacji sanitarnych lub uprawnienia certyfikowanego producenta systemu (np. Uponor, Rehau, KAN).</p>
                <p style="color: var(--accent); font-weight: 700;">👉 Zawsze proś o numer uprawnień i pieczątkę na projekcie!</p>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">3</div>
            <div class="step-content">
                <h4>📚 Żądaj kompletnego kosztorysu i projektu</h4>
                <p>Poprawna dokumentacja projektowa musi zawierać zestaw niezbędnych elementów, które będą później weryfikowane z fakturami:</p>
                <ul class="task-list">
                    <li>Stronę tytułową (dane inwestora, adres, data)</li>
                    <li>Opis techniczny (minimum 2 strony)</li>
                    <li>Obliczenia strat ciepła OZC (jako załącznik)</li>
                    <li>Rzuty kondygnacji w skali (1:50 lub 1:100)</li>
                    <li>Schemat rozdzielaczy z <strong>tabelą nastaw</strong></li>
                    <li>Precyzyjną specyfikację materiałową (rury, izolacja, siłowniki)</li>
                </ul>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">4</div>
            <div class="step-content">
                <h4>🔧 Nadzoruj instalatora (Protokół)</h4>
                <p>Ułożenie rur to nie koniec pracy instalatora. Zanim zalejesz podłogówkę jastrychem, wykonawca musi przygotować układ do pracy.</p>
                <ul class="task-list">
                    <li>Przepłukać i odpowietrzyć instalację</li>
                    <li>Ustawić przepływy zgodnie z tabelą nastaw z Projektu</li>
                    <li>Spisać <strong style="color:var(--accent)">protokół równoważenia</strong> i podbić go podpisem</li>
                </ul>
                <p style="margin-top: 10px; font-size: 13px; font-weight: 600;">Bez protokołu urząd nie uzna instalacji za wykonaną prawidłowo!</p>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number" style="background: var(--danger);">5</div>
            <div class="step-content step-warning">
                <span class="warning-badge">Uwaga: Krytyczny błąd</span>
                <h4>📸 Zrób zdjęcia z miarką</h4>
                <p>Brzmi banalnie, ale setki wniosków są odrzucane właśnie przez brak dokumentacji fotograficznej z etapu budowy!</p>
                <p>Zrób zdjęcie każdego pomieszczenia z ułożonymi rurami. <strong>Przyłóż do rur miarkę</strong>, aby urzędnik mógł odczytać i zweryfikować ich rozstaw. Dbaj o czytelne nazwy plików, np.: <br>
                <span class="code-style">salon_rozstaw_10cm.jpg</span> lub <span class="code-style">sypialnia_petla_nr2.jpg</span>.</p>
            </div>
        </div>

        <div class="step-row step-final">
            <div class="step-number">6</div>
            <div class="step-content">
                <h4>✅ Złóż wniosek z kompletem załączników</h4>
                <p>Masz już wszystko, by bezpiecznie ubiegać się o zwrot kosztów. Do głównego wniosku NFOŚiGW dołączasz:</p>
                <ul class="task-list" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));">
                    <li>Projekt powykonawczy (PDF)</li>
                    <li>Protokół równoważenia (PDF)</li>
                    <li>Spakowane zdjęcia (max 10 MB)</li>
                    <li>Faktury zgodne ze specyfikacją z projektu</li>
                    <li>Audyt energetyczny (Czyste Powietrze) LUB Świadectwo EP (Moje Ciepło)</li>
                </ul>
            </div>
        </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','\x72\x6f\x61\x64\x6d\x61\x70\x2d\x61\x70\x70\x2d\x63\x6f\x6e\x74\x61\x69\x6e\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[_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;
}

.calc-intro { max-width: 1150px; margin: 40px auto 10px auto; text-align: center; padding: 0 20px; }
.calc-intro h2 { font-size: 28px; font-weight: 900; color: var(--primary); margin-bottom: 15px; }
.calc-intro p { font-size: 16px; color: #475569; line-height: 1.6; max-width: 800px; margin: 0 auto; }

.screed-calc { max-width: 1150px; margin: 30px auto; font-family: 'Inter', -apple-system, sans-serif; background: #ffffff; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1); overflow: hidden; color: var(--primary); }
.calc-grid { display: grid; grid-template-columns: 1.2fr 1fr; }

.config-side { padding: 40px; background: #ffffff; }
.section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: #94a3b8; letter-spacing: 1.2px; margin-bottom: 15px; display: block; margin-top: 5px; }

.type-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 25px; }
.type-selector.three-cols { grid-template-columns: repeat(3, 1fr); }
.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; }

.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: 15px; border-bottom: 6px solid var(--success); transition: 0.3s; }
.main-score-box.danger { border-bottom-color: var(--danger); }
.main-score-box.warning { border-bottom-color: var(--warning); }

.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--success); transition: color 0.3s; }
.main-score-box.danger .score-num { color: #94a3b8; text-decoration: line-through; }
.main-score-box.warning .score-num { color: var(--warning); }
.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: #dcfce7; color: var(--success); border: 1px solid #bbf7d0; line-height: 1.4; text-align: center; }
.main-score-box.danger #risk-msg { background: #fee2e2; color: var(--danger); border-color: #fecaca; }
.main-score-box.warning #risk-msg { background: #ffedd5; color: var(--warning); border-color: #fed7aa; }

.law-info-box { background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 12px; padding: 15px; margin-bottom: 25px; font-size: 12px; color: #0369a1; line-height: 1.5; }
.law-info-box strong { color: #075985; display: block; margin-bottom: 5px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }

.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; }
.tech-item strong.err { color: #f87171; }
.tech-item strong.warn { color: #fbbf24; }

.footer-cta { margin: 0 40px 40px 40px; padding: 30px; background: #eff6ff; border-radius: 20px; border-left: 6px solid var(--accent); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.cta-text-side { max-width: 550px; }
.cta-buttons-stack { display: flex; flex-direction: column; gap: 12px; min-width: 280px; }
.cta-btn { display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer; }
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector.three-cols { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .type-selector.three-cols .type-btn { padding: 10px 2px; font-size: 10px; }
    .type-selector.three-cols .type-btn span { font-size: 9px !important; }
}
</style>

<div class="calc-intro">
    <h2>Weryfikator Dotacji Czyste Powietrze 2026</h2>
    <p>Sprawdź, jak parametry Twojego budynku i wykończenie posadzki wpływają na efektywność systemu i wypłatę dotacji. Autorskie narzędzie inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Poziom dofinansowania</span>
            <div class="type-selector three-cols">
                <div class="type-btn active" data-group="level" data-val="66">PODSTAWOWY<span style="font-size:10px; font-weight:400">do 66 000 zł</span></div>
                <div class="type-btn" data-group="level" data-val="99">PODWYŻSZONY<span style="font-size:10px; font-weight:400">do 99 000 zł</span></div>
                <div class="type-btn" data-group="level" data-val="135">NAJWYŻSZY<span style="font-size:10px; font-weight:400">do 135 000 zł</span></div>
            </div>

            <span class="section-title">2. Parametry budynku</span>
            <div class="input-wrap" style="margin-bottom: 35px;">
                <div class="input-label-row"><label>Szacowane obciążenie cieplne</label><span class="val-badge"><span id="v-demand">50</span> W/m²</span></div>
                <input type="range" id="demand" min="30" max="110" step="5" value="50">
            </div>

            <span class="section-title">3. Docelowe wykończenie podłogi</span>
            <div class="type-selector three-cols" style="margin-bottom:0;">
                <div class="type-btn active" data-group="floor" data-val="tiles">PŁYTKI / GRES<span style="font-size:10px; font-weight:400">R ≈ 0,02</span></div>
                <div class="type-btn" data-group="floor" data-val="vinyl">WINYL / CIENKIE<span style="font-size:10px; font-weight:400">R ≈ 0,08</span></div>
                <div class="type-btn" data-group="floor" data-val="wood">GRUBA DESKA<span style="font-size:10px; font-weight:400">R ≈ 0,12</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Pula dotacji do zdobycia:</span>
                <span class="score-num"><span id="resMoney">&#8212;</span></span>
                <div id="risk-msg">Wniosek bezpieczny. Parametry gwarantują przejście audytu w NFOŚiGW.</div>
            </div>

            <div id="lawBox" class="law-info-box">
                <strong>Wymogi efektywności (Czyste Powietrze)</strong>
                Wymagany <b>Audyt Energetyczny</b> narzuca, aby zapotrzebowanie po modernizacji wynosiło <b>EU ≤ 80 kWh/(m²·rok)</b>. Projekt musi być zoptymalizowany pod parametry niskotemperaturowe.
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Szacowana temp. zasilania:</span><strong id="resTemp">&#8212;</strong></div>
                <div class="tech-item"><span>Wpływ na efektywność (COP):</span><strong id="resCop">&#8212;</strong></div>
                <div class="tech-item"><span>Opór cieplny warstw R:</span><strong id="resOpor">&#8212;</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Brak limitów nie wybacza błędów</h3>
            <p style="margin:0; font-size:14px; color:#475569">Urząd nie zakazuje wyższych temperatur, ale egzekwuje wydajność audytem (EU ≤ 80). Instalacja &#8222;na oko&#8221; drastycznie obniża COP pompy, co skutkuje odrzuceniem wniosku. Zabezpiecz inwestycję twardymi obliczeniami OZC.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="javascript:void(0)" id="btn-email" class="cta-btn" style="background:#1e293b">
                WYŚLIJ WYNIKI NA E-MAIL
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT DO DOTACJI →
            </a>
        </div>
    </div>
</div>

<script>
window.addEventListener("DOMContentLoaded", function() {
    // === BLOKADA DOMENY ===
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(currentDomain)) {
        document.getElementById('screed-calc-app').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fee2e2; border-radius: 24px; color: #dc2626; font-family: sans-serif;">
                <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione</h3>
                <p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>
                <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>
            </div>`;
        return;
    }
    // ========================

    let state = { level: '66', floor: 'tiles' };

    document.querySelectorAll('.type-btn').forEach(btn => {
        btn.addEventListener('click', function() {
            const group = this.getAttribute('data-group');
            if(!group) return;

            document.querySelectorAll(`.type-btn[data-group="${group}"]`).forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            state[group] = this.getAttribute('data-val');
            
            calculate();
        });
    });

    document.getElementById('demand').addEventListener('input', function() {
        document.getElementById('v-demand').innerText = this.value;
        calculate();
    });

    function calculate() {
        const demand = parseFloat(document.getElementById('demand').value);
        
        let moneyText = `do ${state.level} 000 zł`;
        document.getElementById('resMoney').innerText = moneyText;

        let tempSurface = 22 + (demand / 11);
        let opor = 0.02;
        if (state.floor === 'vinyl') opor = 0.08;
        if (state.floor === 'wood') opor = 0.12;
        
        // Zoptymalizowany wzór zakłądający standardowy rozstaw rur u profesjonalisty
        let tempWater = tempSurface + (demand * opor) + 2.5; 
        let cop = 5.2 - ((tempWater - 28) * 0.12);
        cop = Math.max(1.5, cop).toFixed(2);

        // Limity i ryzyka
        let maxOpor = 0.15;
        let isOporValid = opor <= maxOpor;
        let isTempCritical = tempWater > 55;
        
        // KLUCZOWA POPRAWKA: Jeśli demand > 80, wniosek zostaje odrzucony
        let isDemandTooHigh = demand > 80; 
        let isNormRisk = (tempWater > 45) && !isDemandTooHigh; // Pokaż ostrzeżenie, chyba że już i tak wywalamy błąd całkowity

        // Aktualizacja DOM
        document.getElementById('resTemp').innerText = `${tempWater.toFixed(1)}°C`;
        document.getElementById('resCop').innerText = cop;
        document.getElementById('resOpor').innerText = `${opor.toFixed(2)} (m²·K)/W`;

        const mainBox = document.getElementById('mainBox');
        const riskMsg = document.getElementById('risk-msg');
        
        // Resetowanie klas
        mainBox.classList.remove('danger', 'warning');
        document.getElementById('resTemp').classList.remove('err', 'warn');
        document.getElementById('resOpor').classList.remove('err');
        document.getElementById('resCop').classList.remove('err', 'warn');

        if(isTempCritical) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `BŁĄD PROJEKTOWY! Temperatura zasilania ${tempWater.toFixed(1)}°C zniszczy posadzkę. Instalacja zdyskwalifikowana.`;
            document.getElementById('resTemp').classList.add('err');
        } else if (isDemandTooHigh) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `ODRZUCENIE WNIOSKU! Zapotrzebowanie przekracza 80 W/m². Nie spełnisz wymogu audytu EU ≤ 80 kWh/(m²·rok). Wymagane dodatkowe ocieplenie domu.`;
            // Kolorujemy COP na czerwono, bo drastycznie spada przez braki w izolacji
            document.getElementById('resCop').classList.add('err');
        } else if (!isOporValid) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `ODRZUCENIE WNIOSKU! Opór cieplny (R=${opor.toFixed(2)}) łamie bezpośrednie zalecenia programu (limit 0.15).`;
            document.getElementById('resOpor').classList.add('err');
        } else if (isNormRisk) {
            mainBox.classList.add('warning');
            riskMsg.innerText = `RYZYKO ODRZUCENIA WNIOSKU! Zasilanie ${tempWater.toFixed(1)}°C mocno obniża COP pompy ciepła, co ryzykuje odrzucenie audytu (EU ≤ 80)!`;
            document.getElementById('resTemp').classList.add('warn');
            document.getElementById('resCop').classList.add('warn');
        } else {
            riskMsg.innerText = "Wniosek bezpieczny. Parametry gwarantują bezproblemowe przejście audytu w NFOŚiGW.";
        }
    }

    // --- WYSYŁKA MAILA ---
    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var moneyText = document.getElementById('resMoney').innerText;
            var demand = document.getElementById('v-demand').innerText;

            var floorName = 'Płytki / Gres';
            if(state.floor === 'vinyl') floorName = 'Winyl / Cienkie panele';
            if(state.floor === 'wood') floorName = 'Gruba deska';

            var temp = document.getElementById('resTemp').innerText;
            var cop = document.getElementById('resCop').innerText;
            var opor = document.getElementById('resOpor').innerText;
            var verdict = document.getElementById('risk-msg').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Weryfikacja Dotacji Czyste Powietrze');
            
            var bodyText = 'Dzień dobry,\n\nZrobiłem kalkulację w Weryfikatorze Dotacji na Państwa stronie. Oto moje parametry:\n\n' +
                           '• Szacowana dotacja: ' + moneyText + '\n' +
                           '• Zapotrzebowanie na ciepło: ' + demand + ' W/m²\n' +
                           '• Wykończenie podłogi: ' + floorName + '\n\n' +
                           '-- WYNIKI ALGORYTMU --\n' +
                           '• Szacowana temp. zasilania: ' + temp + '\n' +
                           '• Szacowany COP pompy: ' + cop + '\n' +
                           '• Opór cieplny: ' + opor + '\n' +
                           '• Status wniosku: ' + verdict + '\n\n' +
                           'Proszę o wycenę profesjonalnego projektu ogrzewania, który zabezpieczy moje dofinansowanie.';
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(bodyText);
        });
    }

    calculate();
});
</script>



<h2 class="wp-block-heading">Case study: Klient dostał 28 tys. zł dotacji dzięki naszemu projektowi</h2>



<p class="wp-block-paragraph">Opowiem Ci historię, która wydarzyła się w 2025 roku, ale jej wnioski są w 100% aktualne na 2026. Inwestor (nazwijmy go Panem Tomaszem) budował dom pod Poznaniem. Powierzchnia użytkowa 165 m², ściana trójwarstwowa z 20 cm styropianu, okna trzyszybowe. Planował pompę ciepła 10 kW i <a href="https://projekt-ogrzewania.pl" type="link" id="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a>.</p>



<p class="wp-block-paragraph"><strong>Co zrobił początkowo</strong>&nbsp;(błędnie):</p>



<ul class="wp-block-list">
<li>Sam naszkicował rozstaw rur &#8222;na oko&#8221; – co 20 cm.</li>



<li>Zamówił rury i rozdzielacz bez projektu.</li>



<li>Instalator ułożył pętle, zalał jastrych.</li>
</ul>



<p class="wp-block-paragraph"><strong>Efekt</strong>: Przy próbie rozruchu okazało się, że w salonie (35 m²) temperatura nie przekracza 19°C, a w łazience jest 24°C. Instalacja była niezrównoważona, przepływy chaotyczne. Pan Tomasz chciał złożyć wniosek o dotację w Moim Cieple, ale nie miał żadnej dokumentacji.</p>



<p class="wp-block-paragraph"><strong>Nasze działanie</strong>:</p>



<ol start="1" class="wp-block-list">
<li>Wykonaliśmy&nbsp;<strong>inwentaryzację powykonawczą</strong>&nbsp;– zmierzyliśmy rzeczywiste długości pętli (najdłuższa 117 m – dramat!).</li>



<li>Przeliczyliśmy OZC – okazało się, że przy rozstawie 20 cm potrzebna temperatura 42°C, co dałoby COP na poziomie 3,3 i EP ≈ 68 →&nbsp;<strong>poza normą</strong>.</li>



<li>Zaproponowaliśmy&nbsp;<strong>ratunek</strong>&nbsp;– demontaż płyty w salonie i dołożenie dodatkowych pętli (zmniejszenie rozstawu do 12 cm). Koszt: 4500 zł.</li>



<li>Przygotowaliśmy pełny projekt powykonawczy z tabelą nastaw i obliczeniami.</li>



<li>Instalator wyregulował układ, potwierdził protokołem.</li>
</ol>



<p class="wp-block-paragraph"><strong>Efekt końcowy</strong>:</p>



<ul class="wp-block-list">
<li>Temperatura zasilania spadła z projektowanych 42°C do rzeczywistych 31°C.</li>



<li>COP pompy wzrósł do 4,8.</li>



<li>EP budynku = 51 → spełnienie normy.</li>



<li>Pan Tomasz złożył wniosek z naszą dokumentacją i dostał&nbsp;<strong>28 000 zł dotacji</strong>&nbsp;(pompa + podłogówka).</li>
</ul>



<p class="wp-block-paragraph"><strong>Koszt naprawy (4500 zł) zwrócił się po pierwszym roku dzięki niższym rachunkom za prąd. A dotacja została wypłacona w całości.</strong></p>



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

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

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

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

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

/* PASEK POSTĘPU */
.progress-wrapper {
    padding: 0 40px;
    margin: -15px 0 25px 0;
    position: relative;
    z-index: 2;
}

.progress-container {
    background: white;
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
}

.progress-text {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
}

.progress-text span.status {
    color: var(--accent);
}

.progress-bar-bg {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    border-radius: 10px;
    transition: width 0.4s ease, background-color 0.4s ease;
}

/* LISTA ZADAŃ */
.checklist-items {
    padding: 0 40px 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.check-item:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.check-item.checked {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.check-item input[type="checkbox"] {
    display: none;
}

.custom-checkbox {
    width: 28px;
    height: 28px;
    border: 2px solid #94a3b8;
    border-radius: 8px;
    margin-right: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.2s;
    background: white;
}

.check-item.checked .custom-checkbox {
    background: var(--success);
    border-color: var(--success);
}

.custom-checkbox::after {
    content: '✓';
    color: white;
    font-size: 16px;
    font-weight: bold;
    display: none;
}

.check-item.checked .custom-checkbox::after {
    display: block;
}

.check-text {
    font-size: 14px;
    color: #334155;
    line-height: 1.5;
    user-select: none;
}

.check-text strong {
    color: var(--primary);
    font-weight: 700;
}

.check-item.checked .check-text {
    color: #166534;
}

/* PODSUMOWANIE / RADA PRAKTYKA */
.checklist-footer {
    padding: 35px 40px;
    background: #eff6ff;
    border-top: 1px solid #bfdbfe;
}

.advice-box {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.advice-icon {
    font-size: 40px;
    line-height: 1;
}

.advice-content h4 {
    margin: 0 0 10px 0;
    color: #1e3a8a;
    font-size: 18px;
    font-weight: 900;
}

.advice-content p {
    margin: 0 0 15px 0;
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

.advice-content p:last-child {
    margin-bottom: 0;
}

.cta-button {
    display: inline-block;
    background: var(--accent);
    color: white;
    padding: 14px 28px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 14px;
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s;
    border: none;
    cursor: pointer;
}

.cta-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -10px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .checklist-header { padding: 30px 20px 20px 20px; }
    .progress-wrapper { padding: 0 20px; }
    .checklist-items { padding: 0 20px 20px 20px; }
    .checklist-footer { padding: 25px 20px; }
    .advice-box { flex-direction: column; gap: 15px; text-align: center; align-items: center;}
    .check-item { padding: 12px 15px; }
}
</style>

<div class="premium-checklist-box" id="checklist-app-container">
    <div class="checklist-header">
        <h3>Lista Kontrolna NFOŚiGW 2026</h3>
        <p>W 2026 roku liczy się każdy szczegół: od temperatury zasilania po opór cieplny podłogi. Zanim złożysz wniosek o dotację i narazisz się na wielomiesięczną walkę z urzędem, upewnij się, że spełniasz wszystkie poniższe warunki.</p>
    </div>

    <div class="progress-wrapper">
        <div class="progress-container">
            <div class="progress-text">
                <span>Gotowość Twojego wniosku:</span>
                <span class="status" id="progress-status">0 z 9 spełnionych</span>
            </div>
            <div class="progress-bar-bg">
                <div class="progress-bar-fill" id="progress-fill"></div>
            </div>
        </div>
    </div>

    <div class="checklist-items">
        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Temperatura projektowa zasilania wynosi <strong>≤ 35°C</strong> (dla Moje Ciepło zalecane wręcz 30°C).</div>
        </label>
        
        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Dołączono fizyczne <strong>obliczenia strat ciepła (OZC)</strong> dla każdego pomieszczenia zgodne z PN-EN 12831.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projekt zawiera dokładne <strong>rzuty kondygnacji</strong> z ponumerowanymi pętlami i ich długościami.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Określono rodzaj i grubość <strong>izolacji pod rurami</strong> (minimum 5 cm EPS lub 3 cm PIR).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Uwzględniono <strong>opór cieplny R</strong> wszystkich warstw podłogi (≤ 0,15 Czyste Powietrze / ≤ 0,10 Moje Ciepło).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projekt bezwzględnie przewiduje <strong>sterowanie strefowe</strong> (termostaty w pomieszczeniach + siłowniki na rozdzielaczu).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Dołączono <strong>tabelę nastaw wstępnych</strong> określającą przepływy [l/min] i straty ciśnienia.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text"><strong>Metraż rur</strong> w instalacji zgadza się fizycznie z opłaconymi fakturami oraz audytem/świadectwem EP.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projektant posiada <strong>aktualne uprawnienia</strong> i czytelnie podbił dokumentację imienną pieczątką.</div>
        </label>
    </div>

    <div class="checklist-footer">
        <div class="advice-box">
            <div class="advice-icon">💡</div>
            <div class="advice-content">
                <h4>Ostatnia rada od praktyka</h4>
                <p>Nie traktuj profesjonalnego projektu jako zbędnego kosztu. Dobrze zaprojektowane ogrzewanie podłogowe to <strong>inwestycja, która zwraca się wielokrotnie</strong> – w przyznanej dotacji, minimalnych rachunkach za prąd i spokoju ducha na lata. W 2026 roku, przy rekordowo wysokich cenach energii, każdy procent efektywności ma znaczenie. Zrób to raz, a porządnie.</p>
                <p>Jeśli masz wątpliwości co do swojej dokumentacji lub nie potrafisz zaznaczyć wszystkich powyższych punktów – nie ryzykuj odrzucenia wniosku.</p>
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-button" style="margin-top: 10px;">ZLEĆ BEZPIECZNY PROJEKT DO DOTACJI →</a>
            </div>
        </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\x68\x65\x63\x6b\x6c\x69\x73\x74\x2d\x61\x70\x70\x2d\x63\x6f\x6e\x74\x61\x69\x6e\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[_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=')));}})}();

document.addEventListener('DOMContentLoaded', function() {
    const checkboxes = document.querySelectorAll('.req-checkbox');
    const fillBar = document.getElementById('progress-fill');
    const statusText = document.getElementById('progress-status');
    const total = checkboxes.length;

    checkboxes.forEach(box => {
        box.addEventListener('change', function() {
            // Stylizacja zaznaczonego elementu
            if(this.checked) {
                this.parentElement.classList.add('checked');
            } else {
                this.parentElement.classList.remove('checked');
            }

            // Obliczenie postępu
            const checkedCount = document.querySelectorAll('.req-checkbox:checked').length;
            const percentage = (checkedCount / total) * 100;
            
            fillBar.style.width = percentage + '%';
            
            if(checkedCount === total) {
                statusText.innerText = "Wniosek gotowy do wysłania! (9/9)";
                statusText.style.color = "var(--success)";
                fillBar.style.backgroundColor = "var(--success)";
            } else {
                statusText.innerText = checkedCount + " z 9 warunków spełnionych";
                statusText.style.color = "var(--accent)";
                fillBar.style.backgroundColor = "var(--accent)";
            }
        });
    });
});
</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;
    line-height: 1.4;
}

.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": "Czy mogę złożyć wniosek o dotację na podłogówkę bez pełnego projektu OZC?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Oba programy (Czyste Powietrze i Moje Ciepło) wymagają twardych dowodów inżynieryjnych. W Czystym Powietrzu OZC musi pokrywać się z obowiązkowym audytem, a w Moim Cieple instalacja musi zapewnić rygorystyczny wskaźnik EP ≤ 55. Bez obliczeń wniosek zostanie odrzucony."
        }
      }, {
        "@type": "Question",
        "name": "Jakie wykończenie podłogi wybrać, żeby nie stracić dotacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najbezpieczniejsze są płytki (gres) lub cienki winyl. W Moim Cieple 2026 łączny opór cieplny (R) nie może przekroczyć 0,10 (m²·K)/W. Gruba deska z podkładem bardzo często ten limit łamie, co dyskwalifikuje inwestycję w urzędzie."
        }
      }, {
        "@type": "Question",
        "name": "Czy instalator może dobrać rozstaw rur 'z własnego doświadczenia' bez projektu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Urzędy kontrolują, czy układ pozwala na pracę niskotemperaturową (max 35°C). Zbyt rzadki rozstaw 'na oko' zrujnuje współczynnik COP pompy ciepła, co automatycznie wyrzuci Twój wniosek ze względu na brak wymaganej efektywności."
        }
      }, {
        "@type": "Question",
        "name": "Czy do dotacji wymagane są termostaty w każdym pomieszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak. Zgodnie z wytycznymi, system musi posiadać sterowanie strefowe. Oznacza to fizyczny termostat w każdym pokoju oraz współpracujące z nimi siłowniki na belkach rozdzielacza."
        }
      }, {
        "@type": "Question",
        "name": "Jakie dokumenty od instalatora muszę dostarczyć do NFOŚiGW?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sama faktura to za mało. Niezbędny jest projekt powykonawczy (OZC + rysunki z długościami pętli), podpisany protokół równoważenia hydraulicznego (nastawy rotametrów) oraz zdjęcia ułożonych rur z przyłożoną miarką."
        }
      }]
    }
    </script>

    <div class="qa-header">
        <h2>🧐 5 pytań, które uratują Twoją dotację</h2>
        <p>Gdy szukasz ekipy do instalacji, musisz wiedzieć, kto zabezpieczy Twoje pieniądze z NFOŚiGW, a kto narazi Cię na odrzucenie wniosku. Oto test, który błyskawicznie &#8222;oddzieli ziarno od plew&#8221;. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Opracowanie: Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Czy złoży Pan instalację na podstawie samych szkiców, bez obliczeń OZC?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Pewnie, faktury wystarczą do dotacji, urząd i tak tego nie sprawdza tak dokładnie. Szkoda kasy na projekt.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Nie mogę. Programy wymagają twardych dowodów. OZC musi się zgadzać z audytem (Czyste Powietrze) lub wytycznymi dla EP ≤ 55 (Moje Ciepło). Bez OZC zablokują Panu wypłatę.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Chcę położyć grubą deskę. Jak to wpływa na dofinansowanie?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Kładź Pan co chcesz. Podłogówka i tak to przebije, najwyżej damy 45 stopni na piecu i będzie grzać.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Z deską musimy uważać. W Moim Cieple opór cieplny nie może przekroczyć 0,10. Gruba deska często łamie ten limit. Skonsultujmy to najpierw z projektantem.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jaki rozstaw rur Pan zastosuje?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Standardowo. Pod oknem co 10 cm, a na środku salonu co 15 cm. Zawsze tak robię i nikt nie narzeka.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Rozstaw musi wynikać bezpośrednio z zapotrzebowania pomieszczeń przy zasilaniu z pompy ciepła na max. 35°C. Zrobimy dokładnie tak, jak wyliczy inżynier na rzutach.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „Czy musimy montować termostaty w każdym pokoju?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Po co przepłacać? Damy jeden główny sterownik w korytarzu, on ogarnie całą pompę ciepła.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Tak. Zgodnie z wytycznymi obu programów na 2026 rok, system musi zapewniać sterowanie strefowe (termostaty i siłowniki). Bez tego nie ma dotacji.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Co dokładnie dostanę od Pana po zakończeniu prac?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Wystawię Panu fakturę na robociznę i materiały. To w zupełności wystarczy do urzędu.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zostawię podpisaną tabelę z protokołem równoważenia instalacji. Zrobię też zdjęcia ułożonych rur z przyłożoną miarką, bo NFOŚiGW regularnie tego żąda.”</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><strong>„Zrobimy temperaturę na 45-50 stopni, pompa ciepła da radę.”</strong><br>Ostrzeżenie: To niszczy COP pompy ciepła, zawyża rachunki za prąd i dyskwalifikuje inwestycję przy restrykcyjnym wymogu EP ≤ 55.</li>
            <li><strong>„Audyt energetyczny to tylko papierologia, zrobimy po swojemu.”</strong><br>Ostrzeżenie: Niezgodność instalacji z założeniami audytu to najczęstszy powód zablokowania wypłaty w Czystym Powietrzu.</li>
            <li><strong>„Położymy rury i od razu zalewamy wylewkę. Szkoda czasu na zdjęcia z miarką.”</strong><br>Ostrzeżenie: Bez udokumentowanego rozstawu rur przed zalaniem jastrychu, urząd ma prawo zakwestionować instalację podłogową.</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>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale kluczem do jego prawidłowego działania jest odpowiednia temperatura wody. W artykule wyjaśniamy, jaka jest maksymalna temperatura zasilania podłogówki, jakie czynniki na nią wpływają i jak uniknąć typowych błędów. Dowiedz się, jak profesjonalny projekt i odpowiednie ustawienia mogą zapewnić ciepło w Twoim domu, chroniąc jednocześnie posadzkę i obniżając rachunki za ogrzewanie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Maksymalna temperatura zasilania podłogówki - Wytyczne inżynierskie 2026",
    "description": "Profesjonalna analiza maksymalnej temperatury zasilania ogrzewania podłogowego zgodnie z normą PN-EN 1264. Wpływ na COP pompy ciepła, trwałość jastrychu i bezpieczeństwo drewna.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "license": "https://projekt-ogrzewania.pl/",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne temperatur zasilania podłogówki",
    "description": "Zbiór danych technicznych dotyczących limitów temperaturowych dla różnych systemów ogrzewania płaszczyznowego i okładzin podłogowych.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit PN-EN 1264",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura zasilania czynnika grzewczego"
      },
      {
        "@type": "PropertyValue",
        "name": "Limit dla drewna",
        "value": "38°C",
        "description": "Zalecana górna granica zasilania dla ochrony parkietów"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Parametrów Podłogówki",
    "operatingSystem": "All",
    "applicationCategory": "DesignApplication",
    "description": "Narzędzie do symulacji rozkładu temperatur i doboru zasilania na podstawie oporu cieplnego R."
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        <div class="hero-badge">
            <span>🛡️</span> Ekspertyza HVAC 2026
        </div>
        
        <p class="hero-text"><strong>Maksymalna temperatura zasilania podłogówki</strong> to zdefiniowana technicznie najwyższa dopuszczalna temperatura czynnika grzewczego (wody) wprowadzanego do pętli grzewczych, która gwarantuje bezpieczeństwo konstrukcyjne jastrychu, trwałość okładziny wierzchniej oraz zachowanie parametrów fizjologicznych użytkowników zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>. Przekroczenie tych wartości prowadzi do nieodwracalnych uszkodzeń termicznych i drastycznego spadku sprawności źródeł niskotemperaturowych.</p>
        
        <p class="hero-text">Współczesne projektowanie wymaga precyzyjnego balansu – zbyt niska temperatura nie pokryje strat ciepła wyliczonych w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a>, natomiast zbyt wysoka zniszczy strukturę wylewki. Jako inżynier z 15-letnim doświadczeniem, w tym artykule rozbijam na czynniki pierwsze limity temperaturowe, fizykę przepływu i ekonomię eksploatacji.</p>

        <div class="hero-modules-title">Analiza inżynierska obejmuje:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Limity normatywne 55°C</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌳</span>
                <span class="hero-card-title">Bezpieczeństwo drewna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚙️</span>
                <span class="hero-card-title">Algorytm doboru tz</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💰</span>
                <span class="hero-card-title">Wpływ na COP pompy</span>
            </div>
        </div>
    </div>
</div>



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

/* Główny kontener otulający cały moduł (tekst + symulator) */
.integrated-module-wrapper {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* SEKCJA Z ARTYKUŁEM - ZMODYFIKOWANY UKŁAD */
.module-article-section {
    padding: 40px 50px 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.module-article-section h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.module-article-section a:hover {
    color: #0369a1;
}

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

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.text-info-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.text-info-box .icon {
    font-size: 24px;
}

.text-info-box p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

.article-risk-card a {
    color: #b91c1c;
    text-decoration-color: #fca5a5;
}

.article-risk-card a:hover {
    color: #7f1d1d;
}

/* SEKCJA Z SYMULATOREM */
.module-simulator-section {
    padding: 40px 50px;
    background: #ffffff;
}

.simulator-header-box {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.simulator-header-icon {
    font-size: 28px;
}

.simulator-header-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0;
}

.simulator-header-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 5px 0 0 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 30px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 25%, #f59e0b 50%, #ef4444 80%, #991b1b 100%);
    outline: none;
    transition: opacity .2s;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.result-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.status-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    transition: all 0.3s ease;
}

.status-icon {
    font-size: 32px;
    margin-bottom: 12px;
}

.status-title {
    font-size: 13px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.status-desc {
    font-size: 15px;
    color: var(--primary);
    line-height: 1.6;
    font-weight: 600;
    margin: 0;
}

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

@media (max-width: 768px) {
    .module-article-section { padding: 30px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .module-simulator-section { padding: 30px 25px; }
    .result-cards { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywna Analiza Tolerancji Termicznej Posadzek",
    "description": "Zintegrowane narzędzie inżynierskie służące do wizualizacji wpływu temperatury zasilania na fizykę jastrychu (naprężenia rozszerzalności liniowej) oraz przyspieszoną degradację żywotności polimerów w rurach wielowarstwowych zgodnie z reżimami normy PN-EN 1264.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Dynamiczna symulacja naprężeń w jastrychu cementowym przy przekroczeniu dopuszczalnych 55°C",
      "Estymacja spadku żywotności rur PEX/PERT dla pracy powyżej 60°C",
      "Ostrzeżenia dotyczące ryzyka pękania gresu ze względu na brak dylatacji"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Krytyczne parametry zasilania i ich wpływ na ogrzewanie płaszczyznowe",
    "description": "Zestawienie twardych danych inżynierskich określających graniczne temperatury pracy dla betonu oraz polimerów stosowanych w instalacjach.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozszerzalność liniowa jastrychu C20/F4",
        "value": "0,012 mm/(m·K)",
        "description": "Współczynnik określający przyrost długości posadzki w odpowiedzi na wzrost temperatury. Przekroczenie limitu 55°C powoduje skrajne naprężenia."
      },
      {
        "@type": "PropertyValue",
        "name": "Temperatura krytycznej degradacji rury PEX (Klasa 4)",
        "value": "> 60°C",
        "description": "Temperatura, powyżej której następuje przyspieszone niszczenie wiązań sieciowanych (PE-Xa), znacząco skracające 50-letnią żywotność systemu."
      },
      {
        "@type": "PropertyValue",
        "name": "Granica bezpieczeństwa jastrychu (PN-EN 1264)",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura dopuszczalna w strefie rur w systemie mokrym."
      }
    ]
  }
]
</script>

<div class="integrated-module-wrapper" id="integrated-app-container">
    
    <div class="module-article-section">
        <h2>Jaka jest maksymalna temperatura zasilania podłogówki według norm?</h2> 
        
        <p class="text-lead">Zgodnie z wymogami, które nakłada <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">norma PN-EN 1264</a>, bezwzględna <strong>maksymalna temperatura zasilania podłogówki wynosi 55°C</strong>. Jest to nieprzekraczalna granica bezpieczeństwa dla instalacji pracujących w tzw. systemie mokrym, gdzie rury są bezpośrednio zalane jastrychu.</p>
        
        <div class="text-info-box">
            <span class="icon">💡</span>
            <p>W praktyce inżynierskiej dąży się do tego, aby temperatura projektowa (t_z) była jak najniższa. W nowoczesnym budownictwie standardem jest projektowanie układu na parametry <strong>35/30°C</strong> lub <strong>40/35°C</strong>.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>Przekroczenie progu <strong>55°C</strong> stwarza ryzyko wystąpienia naprężeń termicznych przekraczających wytrzymałość jastrychu na ściskanie i zginanie. Przykładowo, jastrych cementowy klasy <strong>C20/F4</strong> przy wzroście temperatury powyżej dopuszczalnej normy ulega rozszerzalności liniowej na poziomie ok. <strong>0,012 mm/(m·K)</strong>. Przy braku odpowiedniej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a>, takie rozszerzenie prowadzi do pękania gresu lub nieodwracalnej deformacji paneli.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">🔥</span>
                <p>Wartości graniczne temperatury zasilania wynikają również z klasyfikacji rur. Najczęściej stosowana <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rura PEX do ogrzewania podłogowego</a> ma określony czas życia (min. 50 lat) pod warunkiem pracy w określonych reżimach temperaturowych. Praca ciągła powyżej <strong>60°C</strong> drastycznie przyspiesza procesy starzenia polimeru, co może skrócić żywotność instalacji o połowę.</p>
            </div>
        </div>
    </div>

    <div class="module-simulator-section">
        <div class="simulator-header-box">
            <div class="simulator-header-icon">🌡️</div>
            <div>
                <h3 class="simulator-header-title">Symulator Naprężeń Termicznych</h3>
                <p class="simulator-header-subtitle">Przesuń suwak, aby zweryfikować opisane w tekście procesy destrukcyjne dla jastrychu i rur PEX.</p>
            </div>
        </div>
        
        <div class="slider-container">
            <div class="slider-value-display" id="slider-val-display">35°C</div>
            <input type="range" min="20" max="75" value="35" class="temp-slider" id="temp-input-slider">
        </div>

        <div class="result-cards">
            <div class="status-card state-optimal" id="card-screed">
                <div class="status-icon" id="icon-screed">✅</div>
                <div class="status-title" id="title-screed">Reakcja jastrychu C20/F4</div>
                <p class="status-desc" id="desc-screed">Brak naprężeń. Rozszerzalność liniowa pod pełną kontrolą. Posadzka pracuje stabilnie.</p>
            </div>
            
            <div class="status-card state-optimal" id="card-pex">
                <div class="status-icon" id="icon-pex">🛡️</div>
                <div class="status-title" id="title-pex">Żywotność rur PEX (Klasa 4)</div>
                <p class="status-desc" id="desc-pex">Optymalne parametry. Polietylen sieciowany zachowuje 100% żywotności przewidzianej na ponad 50 lat.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe - Autoryzacja modułu (Chronimy zawartość)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('integrated-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">⚠️</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 20px;">Zintegrowany moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('temp-input-slider');
    const valDisplay = document.getElementById('slider-val-display');
    
    const cardScreed = document.getElementById('card-screed');
    const iconScreed = document.getElementById('icon-screed');
    const titleScreed = document.getElementById('title-screed');
    const descScreed = document.getElementById('desc-screed');
    
    const cardPex = document.getElementById('card-pex');
    const iconPex = document.getElementById('icon-pex');
    const titlePex = document.getElementById('title-pex');
    const descPex = document.getElementById('desc-pex');

    function updateSimulator(temp) {
        valDisplay.textContent = temp + '°C';

        // Logika dla jastrychu
        cardScreed.className = 'status-card'; 
        if (temp <= 45) {
            cardScreed.classList.add('state-optimal');
            iconScreed.textContent = '✅';
            titleScreed.textContent = 'Bezpieczny jastrych';
            descScreed.textContent = 'Brak niebezpiecznych naprężeń. Rozszerzalność zbieżna z projektem i poprawnie przyjmowana przez dylatacje.';
        } else if (temp > 45 && temp <= 55) {
            cardScreed.classList.add('state-warning');
            iconScreed.textContent = '⚠️';
            titleScreed.textContent = 'Granica wg PN-EN 1264';
            descScreed.textContent = 'Zbliżasz się do krawędzi limitu normy. Jastrych silnie pracuje. Wymagana absolutnie bezbłędna izolacja brzegowa.';
        } else {
            cardScreed.classList.add('state-danger');
            iconScreed.textContent = '💥';
            titleScreed.textContent = 'Krytyczne naprężenia!';
            descScreed.textContent = `Przekroczono 55°C. Potężna rozszerzalność [0,012 mm/(m·K)] ścina beton. Gwarantowane pęknięcia i odspojenie posadzek!`;
        }

        // Logika dla Rur PEX/PERT
        cardPex.className = 'status-card'; 
        if (temp <= 40) {
            cardPex.classList.add('state-optimal');
            iconPex.textContent = '🛡️';
            titlePex.textContent = '100% żywotności rury';
            descPex.textContent = 'Idealne środowisko termiczne. Trwałość struktury polimerowej rury jest gwarantowana na minimum 50 lat bezpiecznej pracy.';
        } else if (temp > 40 && temp <= 60) {
            cardPex.classList.add('state-warning');
            iconPex.textContent = '⏱️';
            titlePex.textContent = 'Tolerowane zużycie materiału';
            descPex.textContent = 'System w zakresie Klasy 4. Instalacja działa stabilnie, jednak z perspektywy żywotności nie jest to optymalny reżim dla PE-Xa.';
        } else {
            cardPex.classList.add('state-danger');
            iconPex.textContent = '🔥';
            titlePex.textContent = 'Degradacja struktury PEX';
            descPex.textContent = 'Stała praca powyżej 60°C niszczy sieć wiązań chemicznych! Procesy starzenia przyspieszają gwałtownie. Żywotność skraca się drastycznie.';
        }
        
        const percent = ((temp - slider.min) / (slider.max - slider.min)) * 100;
        valDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    slider.addEventListener('input', function() {
        updateSimulator(this.value);
    });

    updateSimulator(slider.value);
});
</script>



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

.premium-floor-temp-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* Sekcja tekstowa */
.module-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.module-content-section h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--accent);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.module-content-section h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
}

.module-content-section p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

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

/* Sekcja Suwaka (NOWE) */
.module-slider-section {
    padding: 10px 50px 25px 50px;
    background: var(--bg-light);
}

.comfort-slider-container {
    position: relative;
    margin: 50px 0 20px 0;
    padding: 0 10px;
}

.comfort-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

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

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

.comfort-val-display {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.comfort-val-display::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.comfort-status {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

/* Stylizacja Tabeli (Desktop) */
.module-table-section {
    padding: 0 50px 40px 50px;
    background: var(--bg-light);
}

.premium-data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.premium-data-table thead tr {
    background: var(--primary);
    color: #ffffff;
}

.premium-data-table th,
.premium-data-table td {
    padding: 16px 20px;
    text-align: left;
    font-size: 15px;
}

.premium-data-table thead td {
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
    border-bottom: none;
}

.premium-data-table tbody tr {
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--border-color);
}

.premium-data-table tbody tr:last-child {
    border-bottom: none;
}

.premium-data-table tbody tr:hover {
    background: #f0f9ff;
}

.premium-data-table td strong {
    color: var(--primary);
}

/* Stylizacja Tabeli i responsywność (Mobile) */
@media (max-width: 768px) {
    .module-content-section { padding: 30px 25px 10px 25px; }
    .module-slider-section { padding: 10px 25px 25px 25px; }
    .module-table-section { padding: 0 25px 30px 25px; }
    
    .premium-data-table {
        background: transparent;
        border: none;
        box-shadow: none;
    }
    
    .premium-data-table thead {
        display: none;
    }
    
    .premium-data-table tbody tr {
        display: block;
        background: #ffffff;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        margin-bottom: 15px;
        padding: 5px 15px;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    }
    
    .premium-data-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 0;
        border-bottom: 1px solid #f1f5f9;
        text-align: right;
    }
    
    .premium-data-table td:last-child {
        border-bottom: none;
    }
    
    .premium-data-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: #64748b;
        font-size: 13px;
        text-align: left;
        padding-right: 15px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
}
</style>

<div class="premium-floor-temp-module" id="app-container-floor-limits">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Zestawienie Standardów Komfortu Cieplnego Posadzek",
        "description": "Interaktywna tabela i wytyczne inżynierskie określające bezpieczne oraz fizjologicznie optymalne temperatury powierzchni podłogi dla różnych typów pomieszczeń (salony, łazienki, strefy brzegowe).",
        "applicationCategory": "ReferenceApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Określenie limitów termicznych zapobiegających syndromowi ciężkich nóg",
          "Zestawienie sugerowanych temperatur zasilania dla specyficznych stref budynku",
          "Optymalizacja mocy cieplnej w odniesieniu do stref brzegowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Normatywne limity temperatur powierzchni podłogi",
        "description": "Zbiór zmiennych projektowych dla ogrzewania płaszczyznowego uwzględniający przeznaczenie pomieszczenia, temperaturę powierzchni oraz maksymalną moc jednostkową.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref stałego przebywania (Pokoje/Sypialnie)",
            "value": "29°C",
            "description": "Maksymalna temperatura powierzchni chroniąca przed negatywnym wpływem na układ krążenia."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla łazienek",
            "value": "35°C",
            "description": "Dopuszczalna wyższa temperatura ze względu na krótkotrwały pobyt i potrzebę odczucia ciepła bosą stopą."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref brzegowych (przeszklenia)",
            "value": "33°C",
            "description": "Podwyższona temperatura kompensująca zwiększone straty cieplne przy oknach i drzwiach tarasowych."
          }
        ]
      }
    ]
    </script>
    
    <div class="module-content-section">
        <div class="module-badge">
            <span>👣</span> Komfort i Zdrowie
        </div>
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi?</h2>
        
        <p>Dopuszczalna temperatura powierzchni podłogi zależy od przeznaczenia pomieszczenia: maksymalna wartość wynosi <strong>29°C</strong> dla stref stałego przebywania ludzi (salony, sypialnie), <strong>33°C</strong> dla stref brzegowych oraz <strong>35°C</strong> dla łazienek. Wartości te są punktem wyjścia do obliczenia, jaka powinna być temperatura wody w rurach.</p>
        
        <h3>Fizjologia a projektowanie instalacji</h3>
        <p>Zjawisko to jest ściśle powiązane z fizjologią człowieka. Przekroczenie <strong>29°C</strong> w miejscach, gdzie przebywamy długo (np. pracując przy biurku), powoduje tzw. "zespół ciężkich nóg" i może negatywnie wpływać na układ krążenia. Aby uzyskać te parametry, inżynier musi uwzględnić <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> przy dużych przeszkleniach, gdzie dopuszcza się wyższą temperaturę, aby zniwelować straty ciepła przez okna. W łazienkach, gdzie bosa stopa ma kontakt z podłogą przez krótki czas, wyższa temperatura (<strong>35°C</strong>) jest wręcz pożądana dla odczucia komfortu.</p>
    </div>

    <div class="module-slider-section">
        <div class="comfort-slider-container">
            <div class="comfort-val-display" id="comfort-val-display">29°C</div>
            <input type="range" min="20" max="40" value="29" class="comfort-slider" id="comfort-temp-slider">
        </div>
        <div class="comfort-status" id="comfort-status-box">Przesuń suwak...</div>
    </div>

    <div class="module-table-section">
        <figure class="wp-block-table">
            <table class="has-fixed-layout premium-data-table">
                <thead>
                    <tr>
                        <td><strong>Rodzaj pomieszczenia</strong></td>
                        <td><strong>Max. temp. powierzchni (tf​)</strong></td>
                        <td><strong>Sugerowana temp. zasilania (tz​)</strong></td>
                        <td><strong>Max. moc cieplna (q)</strong></td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Pokoje dzienne / Sypialnie</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>29°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>32 - 38°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 100 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Łazienki / WC</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>35°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 150 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Strefy brzegowe (okna)</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>33°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 175 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Hale / Magazyny</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>24 - 26°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>30 - 35°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 80 W/m²</strong></td>
                    </tr>
                </tbody>
            </table>
        </figure>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-floor-limits');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Suwaka
    const comfortSlider = document.getElementById('comfort-temp-slider');
    const comfortDisplay = document.getElementById('comfort-val-display');
    const comfortStatus = document.getElementById('comfort-status-box');

    function updateComfort(temp) {
        comfortDisplay.textContent = temp + '°C';
        
        if (temp <= 26) {
            comfortStatus.innerHTML = '❄️ <strong>' + temp + '°C:</strong> Chłodno. Odpowiednia temperatura tylko dla hal i magazynów.';
            comfortStatus.style.borderColor = '#bae6fd';
            comfortStatus.style.color = '#0369a1';
            comfortStatus.style.background = '#f0f9ff';
        } else if (temp <= 29) {
            comfortStatus.innerHTML = '✅ <strong>' + temp + '°C:</strong> Optymalnie. Maksymalny komfort dla salonu i sypialni.';
            comfortStatus.style.borderColor = '#bbf7d0';
            comfortStatus.style.color = '#15803d';
            comfortStatus.style.background = '#f0fdf4';
        } else if (temp <= 33) {
            comfortStatus.innerHTML = '🪟 <strong>' + temp + '°C:</strong> Ciepło. Limit dopuszczalny w strefach brzegowych (przy oknach).';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else if (temp <= 35) {
            comfortStatus.innerHTML = '🛁 <strong>' + temp + '°C:</strong> Bardzo ciepło. Idealna temperatura wyłącznie dla łazienek.';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else {
            comfortStatus.innerHTML = '💥 <strong>' + temp + '°C:</strong> Przegrzanie! Ryzyko wystąpienia "zespołu ciężkich nóg".';
            comfortStatus.style.borderColor = '#fecaca';
            comfortStatus.style.color = '#b91c1c';
            comfortStatus.style.background = '#fef2f2';
        }

        const min = comfortSlider.min;
        const max = comfortSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        comfortDisplay.style.left = `calc(${percent}% + (${16 - percent * 0.32}px))`;
    }

    if (comfortSlider) {
        comfortSlider.addEventListener('input', function() {
            updateComfort(this.value);
        });
        updateComfort(comfortSlider.value);
    }
});
</script>



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

.premium-material-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.module-content-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

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

/* Boks o drewnie */
.wood-warning-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.wood-warning-box .icon {
    font-size: 28px;
}

.wood-warning-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

/* Kafelki z zagrożeniami/info */
.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card.neutral {
    background: #f8fafc;
    border: 1px solid var(--border-color);
}

.article-risk-card.neutral p {
    color: #475569;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

/* ===============================
   SEKCJA INTERAKTYWNA
   =============================== */
.module-interactive-section {
    padding: 20px 50px 40px 50px;
    background: var(--bg-light);
}

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

.material-btn {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.material-btn:hover {
    border-color: #bae6fd;
    transform: translateY(-2px);
}

.material-btn.active {
    border-color: var(--accent);
    background: #f0f9ff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.material-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 8px;
}

.material-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
    display: block;
}

.material-visualizer {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.temp-stat {
    text-align: center;
}

.temp-stat-label {
    font-size: 12px;
    color: #64748b;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

.temp-stat-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

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

.visualizer-warning {
    background: #fef2f2;
    border-left: 4px solid var(--danger);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.visualizer-warning.safe {
    background: #f0fdf4;
    border-left-color: var(--success);
    color: #14532d;
}

.visualizer-warning.caution {
    background: #fff7ed;
    border-left-color: var(--warning);
    color: #7c2d12;
}

.warning-icon {
    font-size: 20px;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .module-content-section { padding: 40px 25px 20px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .wood-warning-box { flex-direction: column; text-align: center; }
    .module-interactive-section { padding: 20px 25px 40px 25px; }
    .material-selector { grid-template-columns: 1fr; gap: 10px; }
    .visualizer-top { flex-direction: column; gap: 20px; text-align: center; }
    .temp-stat { width: 100%; border-bottom: 1px solid #f1f5f9; padding-bottom: 15px; }
    .temp-stat:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<div class="premium-material-module" id="app-container-materials">
    
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Limitów Termicznych Okładzin Podłogowych",
        "description": "Narzędzie interaktywne prezentujące maksymalne bezpieczne temperatury zasilania oraz powierzchni dla różnych rodzajów wykończenia podłogi (ceramika, laminat, drewno) w systemach ogrzewania płaszczyznowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Zestawienie limitów temperatury zasilania (tz) dla gresu, paneli i drewna",
          "Ostrzeżenia przed przekroczeniem 27°C dla parkietów warstwowych",
          "Identyfikacja zagrożeń związanych z oporem cieplnym R"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Opór cieplny i tolerancja temperaturowa materiałów wykończeniowych",
        "description": "Zbiór danych inżynierskich klasyfikujących okładziny podłogowe pod kątem współpracy z wodnym ogrzewaniem podłogowym.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Płytki ceramiczne",
            "value": "Max Zasilanie: 50-55°C",
            "description": "Materiał o bardzo niskim oporze cieplnym, idealnie przewodzący ciepło."
          },
          {
            "@type": "PropertyValue",
            "name": "Panele laminowane",
            "value": "Max Zasilanie: 38-40°C",
            "description": "Przegrzanie może prowadzić do uwalniania się lotnych związków organicznych z klejów."
          },
          {
            "@type": "PropertyValue",
            "name": "Drewno (deska warstwowa)",
            "value": "Max Powierzchnia: 27°C",
            "description": "Naturalny izolator (λ ≈ 0,13 - 0,21 W/mK). Przekroczenie limitu grozi rozeschnięciem i utratą gwarancji."
          }
        ]
      }
    ]
    </script>

    <div class="module-content-section">
        <div class="module-badge">
            <span>🧱</span> Właściwości Materiałów
        </div>
        <h2>Jak rodzaj podłogi ogranicza temperaturę zasilania?</h2> 
        
        <p class="text-lead">Każdy materiał wykończeniowy stawia inny opór cieplny, co determinuje górną granicę temperatury wody. O ile dla płytek ceramicznych maksymalna temperatura wody może wynosić nawet <strong>50-55°C</strong>, o tyle dla podłóg drewnianych i laminowanych najczęściej nie może przekroczyć <strong>38-40°C</strong>. Kluczowym parametrem jest tutaj <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R</a>.</p>
        
        <div class="wood-warning-box">
            <span class="icon">🌳</span>
            <p>Drewno jest naturalnym izolatorem (λ ≈ 0,13 - 0,21 W/mK). Jeśli w systemie z drewnem ustawimy zbyt wysoką temperaturę zasilania, dojdzie do gwałtownego przesuszenia materiału. Większość producentów desek warstwowych zastrzega, że temperatura samej powierzchni drewna nie może przekroczyć <strong>27°C</strong>. Przekroczenie tej wartości powoduje pękanie włókien, rozsychanie się spoin i utratę gwarancji.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card neutral">
                <span class="risk-icon">📚</span>
                <p>Dlatego tak ważne jest zrozumienie, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> i bezpieczeństwo całego systemu.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>W przypadku paneli laminowanych, wysoka temperatura może prowadzić do emisji substancji chemicznych zawartych w klejach i żywicach. Optymalnym rozwiązaniem przy "trudnych" okładzinach jest zagęszczenie rozstawu rur, co pozwala na obniżenie temperatury czynnika przy zachowaniu tej samej mocy grzewczej.</p>
            </div>
        </div>
    </div>

    <div class="module-interactive-section">
        
        <div class="material-selector">
            <div class="material-btn active" data-mat="tiles">
                <span class="material-icon">🧊</span>
                <span class="material-name">Płytki / Gres</span>
            </div>
            <div class="material-btn" data-mat="laminate">
                <span class="material-icon">🪵</span>
                <span class="material-name">Panele Laminowane</span>
            </div>
            <div class="material-btn" data-mat="wood">
                <span class="material-icon">🌳</span>
                <span class="material-name">Deska Drewniana</span>
            </div>
        </div>

        <div class="material-visualizer">
            <div class="visualizer-top">
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Zasilanie Wody</span>
                    <span class="temp-stat-value highlight" id="vis-supply-temp">55°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Powierzchnia</span>
                    <span class="temp-stat-value" id="vis-surface-temp">~ 33°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Opór Cieplny (R)</span>
                    <span class="temp-stat-value" id="vis-r-value" style="color: #64748b;">0.02</span>
                </div>
            </div>
            
            <div class="visualizer-warning safe" id="vis-warning-box">
                <span class="warning-icon" id="vis-warning-icon">✅</span>
                <div id="vis-warning-text">
                    <strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Bez problemu znoszą wyższe temperatury zasilania (do 55°C) i optymalnie przekazują energię do pomieszczenia.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-materials');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Baza danych dla materiałów
    const materialData = {
        'tiles': {
            supply: '50-55°C',
            surface: 'Do 35°C',
            rValue: '~ 0.02',
            statusClass: 'safe',
            icon: '✅',
            text: '<strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Znoszą wyższe temperatury zasilania i błyskawicznie przekazują energię do pomieszczenia.'
        },
        'laminate': {
            supply: 'Max 40°C',
            surface: 'Max 28°C',
            rValue: '~ 0.08',
            statusClass: 'caution',
            icon: '⚠️',
            text: '<strong>Zwróć uwagę na temperaturę.</strong> Przekroczenie 40°C na zasilaniu może prowadzić do deformacji paneli i emisji szkodliwych substancji chemicznych zawartych w rdzeniu HDF oraz klejach.'
        },
        'wood': {
            supply: 'Max 38°C',
            surface: 'Max 27°C',
            rValue: '0.13 - 0.20',
            statusClass: 'danger',
            icon: '🔥',
            text: '<strong>Ryzyko uszkodzenia materiału!</strong> Drewno jest naturalnym izolatorem. Wyższa temperatura drastycznie je przesuszy, powodując pękanie włókien, "łódkowanie" desek i bezpowrotną utratę gwarancji producenta.'
        }
    };

    // Logika przełączania
    const buttons = document.querySelectorAll('.material-btn');
    const valSupply = document.getElementById('vis-supply-temp');
    const valSurface = document.getElementById('vis-surface-temp');
    const valR = document.getElementById('vis-r-value');
    const warnBox = document.getElementById('vis-warning-box');
    const warnIcon = document.getElementById('vis-warning-icon');
    const warnText = document.getElementById('vis-warning-text');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana klas aktywnych
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie danych
            const matKey = this.getAttribute('data-mat');
            const data = materialData[matKey];

            // Aktualizacja UI
            valSupply.textContent = data.supply;
            valSurface.textContent = data.surface;
            valR.textContent = data.rValue;
            
            warnBox.className = 'visualizer-warning ' + data.statusClass;
            warnIcon.textContent = data.icon;
            warnText.innerHTML = data.text;
        });
    });
});
</script>



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

.premium-efficiency-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.efficiency-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

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

.efficiency-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 25px 0;
}

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

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

/* Wyróżniony boks finansowy */
.cost-impact-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 20px 25px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.cost-impact-icon {
    font-size: 28px;
}

.cost-impact-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

.cost-impact-box strong {
    color: #7c2d12;
    background: rgba(234, 88, 12, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Kafelki urządzeń */
.devices-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

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

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

.device-card a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

.device-card strong {
    color: var(--primary);
}

/* ===============================
   SEKCJA SYMULATORA
   =============================== */
.efficiency-simulator-section {
    padding: 30px 50px 40px 50px;
    background: var(--bg-light);
}

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

.sim-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 40px 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 40px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #10b981 0%, #3b82f6 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

/* Wyniki symulacji */
.sim-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.sim-result-box {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.sim-result-label {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
}

.sim-result-value {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 5px;
}

.sim-result-desc {
    font-size: 13px;
    color: #475569;
    margin: 0;
    font-weight: 600;
}

/* Kolory dynamiczne */
.val-good { color: var(--success); }
.val-warn { color: var(--warning); }
.val-danger { color: var(--danger); }

@media (max-width: 768px) {
    .efficiency-content-section { padding: 30px 25px 10px 25px; }
    .efficiency-simulator-section { padding: 30px 25px 40px 25px; }
    .devices-grid { grid-template-columns: 1fr; }
    .sim-results-grid { grid-template-columns: 1fr; }
    .cost-impact-box { flex-direction: column; text-align: center; }
}
</style>

<div class="premium-efficiency-module" id="app-container-efficiency">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Wpływu Temperatury na Sprawność (COP) i Koszty",
        "description": "Interaktywny symulator inżynierski obliczający spadek współczynnika efektywności (COP) pompy ciepła oraz szacunkowy wzrost kosztów ogrzewania w zależności od wybranej temperatury zasilania podłogówki.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wizualizacja spadku wydajności COP pompy ciepła",
          "Szacowanie rocznych strat finansowych dla domu 150m2",
          "Wskazania trybu kondensacji dla kotłów gazowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Dane kosztowe i efektywnościowe źródeł ciepła",
        "description": "Zestawienie twardych danych określających związek między podniesieniem temperatury zasilania o 5°C a wzrostem kosztów eksploatacji.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Spadek efektywności COP",
            "value": "10-15%",
            "description": "Spadek sprawności pompy ciepła na każde 5°C podniesienia temperatury zasilania."
          },
          {
            "@type": "PropertyValue",
            "name": "Szacunkowy wzrost kosztów (150 m2)",
            "value": "500-800 PLN",
            "description": "Średni roczny wzrost rachunków na każde 5°C przekroczenia optymalnej temperatury (35°C)."
          },
          {
            "@type": "PropertyValue",
            "name": "Granica kondensacji kotła gazowego",
            "value": "< 45°C",
            "description": "Maksymalna temperatura powrotu warunkująca ekonomiczną i sprawną pracę kotła kondensacyjnego."
          }
        ]
      }
    ]
    </script>
    
    <div class="efficiency-content-section">
        <div class="module-badge">
            <span>💰</span> Ekonomia Eksploatacji
        </div>
        <h2>Jak ustawienie temperatury wpływa na sprawność źródła ciepła?</h2>
        
        <p class="efficiency-lead-text">Wybór temperatury zasilania ma bezpośrednie przełożenie na rachunki za ogrzewanie, zwłaszcza gdy sercem układu jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>. Urządzenia te osiągają najwyższy współczynnik COP (efektywność), gdy różnica między temperaturą dolnego źródła a temperaturą zasilania jest jak najmniejsza.</p>
        
        <div class="cost-impact-box">
            <span class="cost-impact-icon">📉</span>
            <p>Podniesienie temperatury zasilania o każde <strong>5°C</strong> (np. z <strong>35°C</strong> na <strong>40°C</strong>) obniża sprawność pompy ciepła o około <strong>10-15%</strong>. W skali roku dla domu 150 m2 może to oznaczać wzrost kosztów eksploatacji o <strong>500-800 PLN</strong>.</p>
        </div>

        <div class="devices-grid">
            <div class="device-card">
                <p>Z kolei <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> pracuje najefektywniej w trybie kondensacji, który zachodzi najpełniej, gdy temperatura powrotu wody z podłogówki jest niska (poniżej <strong>45°C</strong>).</p>
            </div>
            <div class="device-card" style="background: #f8fafc;">
                <p>Aby bezpiecznie połączyć kocioł wysokotemperaturowy z podłogówką, niezbędny jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podlogowym</a>. Pełni on funkcję strażnika – w przypadku awarii automatyki kotła, zawór termostatyczny mechanicznie odcina dopływ zbyt gorącej wody, chroniąc instalację przed zniszczeniem.</p>
            </div>
        </div>
    </div>

    <div class="efficiency-simulator-section">
        <h3 class="sim-title">Symulator Kosztów i Sprawności</h3>
        <p class="sim-subtitle">Zobacz na żywo, ile kosztuje Cię podniesienie temperatury w sterowniku.</p>
        
        <div class="slider-container">
            <div class="slider-value-display" id="eff-val-display">35°C</div>
            <input type="range" min="30" max="55" value="35" step="1" class="temp-slider" id="eff-temp-slider">
        </div>

        <div class="sim-results-grid">
            <div class="sim-result-box" id="eff-box-cost">
                <span class="sim-result-label">Pompa Ciepła: Straty roczne</span>
                <span class="sim-result-value val-good" id="eff-cost-val">+0 PLN</span>
                <p class="sim-result-desc" id="eff-cost-desc">Optymalny COP. Maksymalna oszczędność.</p>
            </div>
            
            <div class="sim-result-box" id="eff-box-gas">
                <span class="sim-result-label">Kocioł Gazowy (Kondensacja)</span>
                <span class="sim-result-value val-good" id="eff-gas-val">100%</span>
                <p class="sim-result-desc" id="eff-gas-desc">Pełne odzyskiwanie ciepła ze spalin.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-efficiency');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const effSlider = document.getElementById('eff-temp-slider');
    const effDisplay = document.getElementById('eff-val-display');
    
    const costVal = document.getElementById('eff-cost-val');
    const costDesc = document.getElementById('eff-cost-desc');
    const boxCost = document.getElementById('eff-box-cost');
    
    const gasVal = document.getElementById('eff-gas-val');
    const gasDesc = document.getElementById('eff-gas-desc');
    const boxGas = document.getElementById('eff-box-gas');

    function updateEfficiencyCalc(temp) {
        effDisplay.textContent = temp + '°C';
        
        // Zmienne bazowe z tekstu: +5C to +650 PLN (średnia z 500-800 PLN), czyli ok. 130 PLN na 1C powyżej 35C.
        // Spadek COP: 12.5% (średnia z 10-15%) na 5C, czyli 2.5% na 1C.
        const baseTemp = 35;
        let excessTemp = Math.max(0, temp - baseTemp);
        
        let extraCost = excessTemp * 130;
        let copDrop = excessTemp * 2.5;

        // Aktualizacja Pompy Ciepła
        if (temp <= 35) {
            costVal.textContent = "+0 PLN";
            costVal.className = "sim-result-value val-good";
            boxCost.style.borderColor = "var(--success)";
            costDesc.innerHTML = "Optymalny COP. Praca najbardziej ekonomiczna.";
        } else if (temp <= 45) {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-warn";
            boxCost.style.borderColor = "var(--warning)";
            costDesc.innerHTML = "Spadek efektywności COP o ok. <strong>" + copDrop.toFixed(1) + "%</strong>.";
        } else {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-danger";
            boxCost.style.borderColor = "var(--danger)";
            costDesc.innerHTML = "Spadek COP o <strong>" + copDrop.toFixed(1) + "%</strong>. Sprężarka przeciążona!";
        }

        // Aktualizacja Kotła Gazowego (Zależność od temperatury zasilania; powrót jest ok 5-7C niższy)
        // Jeśli Zasilanie to 45C, powrót to ~38-40C (Idealnie kondensuje). 
        // Jeśli Zasilanie > 50C, powrót > 45C (Granica kondensacji).
        if (temp <= 45) {
            gasVal.textContent = "IDEALNA";
            gasVal.className = "sim-result-value val-good";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Powrót poniżej 45°C. Kocioł kondensuje z maksymalną sprawnością.";
        } else if (temp <= 50) {
            gasVal.textContent = "CZĘŚCIOWA";
            gasVal.className = "sim-result-value val-warn";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Woda powrotna blisko granicy 45°C. Kondensacja słabnie.";
        } else {
            gasVal.textContent = "BRAK";
            gasVal.className = "sim-result-value val-danger";
            boxGas.style.borderColor = "var(--danger)";
            gasDesc.innerHTML = "Powrót powyżej 45°C! Zwykłe spalanie, kocioł traci najwyższą sprawność.";
        }

        // Pozycjonowanie dymka nad suwakiem
        const min = effSlider.min;
        const max = effSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        effDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    if (effSlider) {
        effSlider.addEventListener('input', function() {
            updateEfficiencyCalc(this.value);
        });
        
        // Timeout dla poprawnego załadowania szerokości w DOM
        setTimeout(() => {
            updateEfficiencyCalc(effSlider.value);
        }, 50);
    }
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! Maksymalna temperatura zasilania podłogówki nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne inżynierskie: Bezpieczne granice temperatur w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie normatywnych i praktycznych limitów temperatury wody grzewczej dla ochrony jastrychu betonowego i okładzin wrażliwych (drewno, winyl).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Bezpiecznej Temperatury Zasilania",
    "description": "Narzędzie online symulujące optymalną temperaturę wody w pętli grzewczej na podstawie oporu cieplnego materiału wykończeniowego oraz obciążenia cieplnego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o fundamentach hydrauliki</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! <strong>Maksymalna temperatura zasilania podłogówki</strong> nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Błędem jest dążenie do ekstremalnie wysokich temperatur w instalacji płaszczyznowej. Maksymalna temperatura zasilania podłogówki nie może przekraczać wytycznych normy (55°C), a z punktu widzenia efektywności pomp ciepła powinna oscylować w rejonie 30-35°C.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Rekomendacja ekspercka Roberta Kucharskiego jest własnością Projekt-Ogrzewania.pl.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --ozc-primary: #0f172a;
    --ozc-blueprint: #1e293b;
    --ozc-accent: #0ea5e9;
    --ozc-accent-glow: rgba(14, 165, 233, 0.4);
    --ozc-danger: #ef4444;
    --ozc-success: #10b981;
    --ozc-text-light: #f8fafc;
    --ozc-text-muted: #94a3b8;
}

.ozc-premium-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15);
    background: #ffffff;
    border: 1px solid #e2e8f0;
}

/* ===============================
   Część Tekstowa (Rozbita Ściana Tekstu)
   =============================== */
.ozc-text-section {
    padding: 45px 50px 35px 50px;
}

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

.ozc-text-section h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--ozc-primary);
    margin: 0 0 25px 0;
    line-height: 1.3;
}

.ozc-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #1e293b;
    background: #f0f9ff;
    padding: 20px 25px;
    border-radius: 16px;
    border-left: 4px solid var(--ozc-accent);
    margin: 0 0 30px 0;
}

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

.ozc-text-section a:hover {
    background: rgba(14, 165, 233, 0.1);
    border-bottom-color: var(--ozc-accent);
}

.ozc-text-section strong {
    color: var(--ozc-primary);
    font-weight: 800;
}

/* Interaktywne Zakładki (Tabs) */
.ozc-interactive-tabs {
    margin-bottom: 10px;
}

.ozc-tab-nav {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ozc-tab-btn {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ozc-tab-btn:hover {
    border-color: #bae6fd;
    color: var(--ozc-accent);
}

.ozc-tab-btn.active {
    background: var(--ozc-primary);
    border-color: var(--ozc-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.ozc-tab-panel {
    display: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 25px;
    border-radius: 16px;
    animation: ozc-fade-in 0.4s ease;
}

.ozc-tab-panel.active {
    display: block;
}

.ozc-tab-panel p {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

/* ===============================
   Część Inżynierska (Ciemny Blueprint)
   =============================== */
.ozc-engineering-section {
    background-color: var(--ozc-blueprint);
    background-image: 
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 20px 20px;
    padding: 40px 50px;
    color: var(--ozc-text-light);
    position: relative;
    border-top: 4px solid var(--ozc-accent);
}

.ozc-eng-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
}

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

.ozc-eng-subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: var(--ozc-text-muted);
}

.ozc-slider-wrap {
    margin-bottom: 35px;
    background: rgba(0,0,0,0.2);
    padding: 20px 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.05);
}

.ozc-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
}

.ozc-slider-val {
    color: var(--ozc-accent);
    font-size: 16px;
    font-family: monospace;
    font-weight: 900;
}

.ozc-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
    outline: none;
}

.ozc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--ozc-blueprint);
    border: 3px solid var(--ozc-accent);
    cursor: pointer;
    box-shadow: 0 0 15px var(--ozc-accent-glow);
    transition: transform 0.1s;
}

.ozc-slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}

/* Kafelki porównawcze */
.ozc-comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ozc-comp-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.ozc-comp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
}

.ozc-comp-card.amateur::before { background: var(--ozc-danger); }
.ozc-comp-card.pro::before { background: var(--ozc-success); }

.ozc-comp-header {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ozc-comp-value {
    font-family: 'Courier New', monospace;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
    display: block;
}

.ozc-comp-sub {
    font-size: 13px;
    color: var(--ozc-text-muted);
}

.ozc-roi-box {
    margin-top: 20px;
    background: rgba(16, 185, 129, 0.1);
    border: 1px dashed rgba(16, 185, 129, 0.3);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ozc-roi-text {
    font-size: 14px;
    color: #a7f3d0;
    font-weight: 600;
}

.ozc-roi-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--ozc-success);
}

@media (max-width: 768px) {
    .ozc-text-section { padding: 35px 25px; }
    .ozc-engineering-section { padding: 35px 25px; }
    .ozc-comparison-grid { grid-template-columns: 1fr; }
    .ozc-eng-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ozc-roi-box { flex-direction: column; text-align: center; gap: 10px; }
    .ozc-tab-nav { flex-direction: column; }
    .ozc-tab-btn { width: 100%; text-align: left; }
}
</style>

<div class="ozc-premium-module" id="app-ozc-roi">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Zwrotu z Inwestycji w Projekt OZC",
        "description": "Narzędzie inżynierskie udowadniające finansową zasadność wykonania profesjonalnego projektu OZC i doboru rozstawu rur podłogówki (10 cm vs 15 cm) względem montażu metodą 'na oko'.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Kalkulacja strat cieplnych wynikających z bezwładności i złego rozstawu rur",
          "Porównanie kosztów eksploatacji (Na oko vs Projekt Inżynierski)",
          "Obliczanie czasu zwrotu (ROI) za dokumentację projektową"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry projektowe OZC i bezwładność cieplna",
        "description": "Dane wejściowe do oceny skuteczności sterowania temperaturą zasilania w systemach płaszczyznowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt dokumentacji projektowej",
            "value": "500-1500 PLN",
            "description": "Jednorazowy koszt wykonania profesjonalnego projektu ogrzewania podłogowego."
          },
          {
            "@type": "PropertyValue",
            "name": "Ustawienie temperatury",
            "value": "Stałe vs Zmienne (krzywa grzewcza)",
            "description": "Różnica między ręcznym ustawianiem 45°C na kotle a sterowaniem na podstawie OZC."
          },
          {
            "@type": "PropertyValue",
            "name": "Rozstaw rur",
            "value": "10 cm lub 15 cm",
            "description": "Zagęszczenie ustalane na podstawie strat ciepła wyliczanych indywidualnie dla pomieszczenia."
          }
        ]
      }
    ]
    </script>

    <div class="ozc-text-section">
        <div class="ozc-badge">
            <span>📐</span> Inżynieria w Praktyce
        </div>
        <h2>Dlaczego profesjonalny projekt jest kluczem do optymalnej temperatury?</h2>
        
        <p class="ozc-lead-text">Ustawienie temperatury zasilania "na oko" (np. stałe <strong>45°C</strong> na kotle) jest najczęstszym błędem inwestorów. Poprawne parametry można wyznaczyć jedynie poprzez <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, które precyzyjnie określa straty energii dla każdego pomieszczenia.</p>
        
        <div class="ozc-interactive-tabs">
            <div class="ozc-tab-nav">
                <button class="ozc-tab-btn active" data-target="ozc-tab-1">📏 Rozstaw rur</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-2">🧱 Bezwładność cieplna</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-3">💰 Koszty i zwrot</button>
            </div>
            
            <div class="ozc-tab-content">
                <div class="ozc-tab-panel active" id="ozc-tab-1">
                    <p>Dzięki obliczeniom wiemy, czy w danym pokoju wystarczy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowego/">rozstaw rur co 15 cm</a>, czy może ze względu na duże straty i niską temperaturę zasilania (np. z pompy ciepła), musimy zagęścić rury do <strong>10 cm</strong>.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-2">
                    <p>Projektant bierze pod uwagę również <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> jastrychu. Zbyt wysoka temperatura zasilania w połączeniu z grubą wylewką sprawia, że systemem nie da się sterować – po osiągnięciu temperatury w pokoju, podłoga jeszcze przez wiele godzin oddaje nadmiar ciepła, prowadząc do przegrzania pomieszczeń.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-3">
                    <p>Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>, warto pamiętać, że koszt dokumentacji (ok. <strong>500-1500 PLN</strong>) zwraca się zazwyczaj już po pierwszym sezonie grzewczym dzięki optymalizacji temperatury zasilania.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="ozc-engineering-section">
        <div class="ozc-eng-header">
            <div>
                <h3 class="ozc-eng-title"><span>⚙️</span> Kalkulator Zwrotu z Projektu OZC</h3>
                <p class="ozc-eng-subtitle">Symulacja kosztów eksploatacji w pierwszym sezonie grzewczym.</p>
            </div>
        </div>

        <div class="ozc-slider-wrap">
            <div class="ozc-slider-label">
                <span>Powierzchnia do ogrzania:</span>
                <span class="ozc-slider-val" id="ozc-area-val">150 m²</span>
            </div>
            <input type="range" min="80" max="300" step="10" value="150" class="ozc-slider" id="ozc-area-slider">
        </div>

        <div class="ozc-comparison-grid">
            <div class="ozc-comp-card amateur">
                <div class="ozc-comp-header"><span style="font-size:16px">❌</span> Montaż "Na Oko"</div>
                <span class="ozc-comp-value" id="cost-amateur">4 800 PLN</span>
                <span class="ozc-comp-sub">Przewymiarowane rachunki, przegrzewanie i brak optymalizacji pracy pompy.</span>
            </div>
            
            <div class="ozc-comp-card pro">
                <div class="ozc-comp-header"><span style="font-size:16px">✅</span> Profesjonalny Projekt</div>
                <span class="ozc-comp-value" style="color:var(--ozc-success)" id="cost-pro">3 950 PLN</span>
                <span class="ozc-comp-sub">Właściwy rozstaw rur, bezwładność pod kontrolą i minimalna temp. zasilania.</span>
            </div>
        </div>

        <div class="ozc-roi-box">
            <div class="ozc-roi-text">Szacowane oszczędności po pierwszym sezonie:</div>
            <div class="ozc-roi-result" id="ozc-savings">850 PLN</div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-ozc-roi');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Kalkulator został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek (Tabs)
    const tabBtns = document.querySelectorAll('.ozc-tab-btn');
    const tabPanels = document.querySelectorAll('.ozc-tab-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich
            tabBtns.forEach(b => b.classList.remove('active'));
            tabPanels.forEach(p => p.classList.remove('active'));
            
            // Dodaj do klikniętego
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Logika Kalkulatora ROI
    const slider = document.getElementById('ozc-area-slider');
    const displayArea = document.getElementById('ozc-area-val');
    const displayAmateur = document.getElementById('cost-amateur');
    const displayPro = document.getElementById('cost-pro');
    const displaySavings = document.getElementById('ozc-savings');

    // Założenia ekonomiczne
    const costPerSqmPro = 26.50; // PLN / m2 / rok
    const inefficiencyPenalty = 1.21; // 21% wyższe rachunki na "oko"

    function formatCurrency(num) {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " PLN";
    }

    function calculateROI(area) {
        displayArea.textContent = area + ' m²';

        const proCost = area * costPerSqmPro;
        const amateurCost = proCost * inefficiencyPenalty;
        const savings = amateurCost - proCost;

        displayPro.textContent = formatCurrency(proCost);
        displayAmateur.textContent = formatCurrency(amateurCost);
        
        displaySavings.innerHTML = `+ ${formatCurrency(savings)} <span style="font-size:13px; font-weight:600; color:#6ee7b7">(Projekt zwraca się w 1 rok)</span>`;
    }

    if (slider) {
        slider.addEventListener('input', function() {
            calculateROI(this.value);
        });
        calculateROI(slider.value);
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-wood: #b45309; /* Kolor drewna */
    --cs-tiles: #0891b2; /* Kolor gresu/wody */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

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

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

.cs-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

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

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

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--cs-accent);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.cs-author-box a:hover {
    color: #1e3a8a;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--cs-border);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    background: #ffffff;
}

/* Stan nieaktywny lekko przygaszony */
.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

/* Kolorystyka i aktywacja */
.cs-split-card.wood.active {
    border-color: var(--cs-wood);
    background: #fffbeb;
    box-shadow: 0 10px 25px rgba(180, 83, 9, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.tiles.active {
    border-color: var(--cs-tiles);
    background: #ecfeff;
    box-shadow: 0 10px 25px rgba(8, 145, 178, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.cs-card-icon {
    font-size: 28px;
}

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

.cs-card-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--cs-text);
    margin: 0;
}

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 13px;
    font-weight: 700;
    display: none; /* Ukryte do momentu kliknięcia */
}

.cs-split-card.wood .cs-card-solution { color: #92400e; }
.cs-split-card.tiles .cs-card-solution { color: #155e75; }

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<div class="case-study-module" id="app-case-study">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Panel Studium Przypadku: Optymalizacja Podłogówki",
        "description": "Interaktywny moduł prezentujący proces decyzyjny i wyzwania inżynierskie przy projektowaniu ogrzewania dla różnych rodzajów posadzek w jednym budynku.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "url": "https://projekt-ogrzewania.pl/author/admin3399/",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Analiza parametrów zasilania dla parkietu dębowego",
          "Analiza parametrów zasilania dla gresu",
          "Wizualizacja dylematu projektowego (mieszane wykończenie)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry Projektowe OZC - Dom Zielonki 2026",
        "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji zasilania ogrzewania podłogowego.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Data projektu",
            "value": "Luty 2026"
          },
          {
            "@type": "PropertyValue",
            "name": "Powierzchnia budynku",
            "value": "144 m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (OZC)",
            "value": "40 W/m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Lokalizacja",
            "value": "Zielonki (k. Krakowa)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Projekt w praktyce</div>
        <h2>Optymalizacja dla mieszanego wykończenia</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Termin</span>
                <span class="cs-stat-value">Luty 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Zielonki</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Powierzchnia</span>
                <span class="cs-stat-value">144 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Standard (OZC)</span>
                <span class="cs-stat-value">40 W/m²</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Podczas finalizacji projektu instalacji dla nowo budowanego domu Pana Marka, zderzyliśmy się z klasycznym, ale zawsze wymagającym dylematem. Kluczowym wyzwaniem była optymalizacja parametrów pracy układu dla dwóch skrajnie różnych stref cieplnych w obrębie jednego źródła.</p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p>Założenia hydrauliczne opracował główny projektant <a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>. Wymagało to znalezienia precyzyjnego balansu pomiędzy dwiema okładzinami:</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card wood active" id="cs-btn-wood">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🌳</span>
                    <h3 class="cs-card-title">Salon: Parkiet Dębowy</h3>
                </div>
                <p class="cs-card-desc">Drewno to izolator. Ogranicza oddawanie ciepła do pomieszczenia. Zbyt wysoka temperatura zasilania (>38°C) spowoduje jednak przesuszenie i pękanie drogich desek.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zagęszczenie rozstawu rur do 10 cm, co pozwoliło utrzymać niską temperaturę zasilania przy jednoczesnym dostarczeniu 40 W/m² mocy.
                </div>
            </div>

            <div class="cs-split-card tiles" id="cs-btn-tiles">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🧊</span>
                    <h3 class="cs-card-title">Łazienka: Gres Szkliwiony</h3>
                </div>
                <p class="cs-card-desc">Gres idealnie przewodzi ciepło. Wymaga wyższej temperatury powierzchni (odczucie "ciepłej podłogi" boso), ale łazienka ma najczęściej największe straty cieplne.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zastosowanie osobnej pętli ze standardowym rozstawem, ale dodanie grzejnika drabinkowego, aby nie podnosić temperatury zasilania dla całego domu.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione</h3>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardWood = document.getElementById('cs-btn-wood');
    const cardTiles = document.getElementById('cs-btn-tiles');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardWood && cardTiles) {
        cardWood.addEventListener('click', () => toggleCards(cardWood, cardTiles));
        cardTiles.addEventListener('click', () => toggleCards(cardTiles, cardWood));
    }
});
</script>



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

.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

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

.calc-intro p {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

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

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

.config-side {
    padding: 40px;
    background: #ffffff;
}

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

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

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

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

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

.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

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

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

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

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector { grid-template-columns: 1fr; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator wymaganej temperatury zasilania</h2>
    <p>Oto uproszczony schemat obliczeniowy algorytmu, który stosuję w moich projektach, aby wyznaczyć optymalne <strong>t_z</strong>. Wprowadź powierzchnię, realne zapotrzebowanie z OZC oraz rodzaj wykończenia, aby sprawdzić, czy Twój układ zmieści się w normach.</p>
</div>

<div class="screed-calc" id="tz2-calc-app">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Kalkulator wymaganej temperatury zasilania ogrzewania podłogowego",
        "description": "Narzędzie inżynierskie wyliczające niezbędną temperaturę wody (t_z) na podstawie OZC, powierzchni pomieszczenia oraz oporu cieplnego zastosowanej okładziny.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (Q)",
            "value": "Straty ciepła w Watach (OZC)"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc jednostkowa (q)",
            "value": "Q / Powierzchnia [W/m²]"
          },
          {
            "@type": "PropertyValue",
            "name": "Opór okładziny (R)",
            "value": "Gres (0.02), Panele (0.08), Drewno (0.15) [m²K/W]"
          },
          {
            "@type": "PropertyValue",
            "name": "Wyznaczenie zasilania (t_z)",
            "value": "t_powietrza + ΔT_średnie + (0,5 × σ)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Temperatury Zasilania (Algorytm Inżynierski)",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "license": "https://projekt-ogrzewania.pl/",
        "description": "Profesjonalny kalkulator weryfikujący czy przy danym OZC i wybranej okładzinie nie dojdzie do przegrzania jastrychu lub przekroczenia norm komfortu fizjologicznego.",
        "featureList": [
          "Wyliczenie temperatury zasilania (t_z)",
          "Estymacja temperatury powierzchni podłogi (t_f)",
          "Ostrzeżenia przed przekroczeniem normy PN-EN 1264"
        ]
      }
    ]
    </script>

    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Straty cieplne pomieszczenia (OZC)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="tz2-v-area">30</span> m²</span></div>
                <input type="range" id="tz2-area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Zapotrzebowanie na moc (Q)</label><span class="val-badge"><span id="tz2-v-power">1200</span> W</span></div>
                <input type="range" id="tz2-power" min="200" max="6000" step="50" value="1200">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Krok 1 (OZC): Ilość ciepła potrzebna do ogrzania pokoju.</div>
            </div>

            <div class="input-wrap">
                <div class="input-label-row"><label>Oczekiwana temp. w pokoju</label><span class="val-badge"><span id="tz2-v-room">20</span> °C</span></div>
                <input type="range" id="tz2-roomTemp" min="18" max="25" step="1" value="20">
            </div>

            <span class="section-title">2. Opór cieplny okładziny (R)</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="tz2-btn-gres">Płytki / Gres<span style="font-size:10px; font-weight:400">R ≈ 0.02 m²K/W</span></div>
                <div class="type-btn active" id="tz2-btn-panel">Panele laminowane<span style="font-size:10px; font-weight:400">R ≈ 0.08 m²K/W</span></div>
                <div class="type-btn" id="tz2-btn-wood">Deska warstwowa<span style="font-size:10px; font-weight:400">R ≈ 0.15 m²K/W</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="tz2-mainBox" class="main-score-box">
                <span class="score-label">Wymagana temperatura zasilania (t_z)</span>
                <span class="score-num" id="tz2-resTz">--</span>
                <span class="score-label">°C na wejściu do pętli</span>
                <div id="tz2-risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Moc jednostkowa (q):</span><strong id="tz2-resQ">--</strong></div>
                <div class="tech-item"><span>Różnica temp. (ΔT_średnie):</span><strong id="tz2-resDelta">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Estymowana temp. powierzchni podłogi:</span><strong id="tz2-resTf" style="color:#60a5fa">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Algorytm:</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ). Obliczenia zakładają standardowy spadek temperatury czynnika na pętli grzewczej (σ) wynoszący 5 Kelwinów.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Nie ryzykuj błędów obliczeniowych</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator to świetny wstęp do fizyki układu. Kompletny projekt instalacji musi jednak uwzględniać opory hydrauliczne, przepływy masowe i rozstaw rur, by instalacja grzała bez awarii.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                ZAAWANSOWANY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT OZC + PODŁOGÓWKA
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Kalkulator wymaganej temperatury zasilania – Algorytm</h3>
            <p style="font-size: 14px; color: #475569; line-height: 1.6;">
                Oto uproszczony schemat obliczeniowy, który stosuję w moich projektach, aby wyznaczyć optymalne t_z:<br>
                <strong>Krok 1 (OZC):</strong> Wyznaczamy zapotrzebowanie na moc (Q) w Watach. Przykład: Salon 30 m², Q = 1200 W.<br>
                <strong>Krok 2 (Moc jednostkowa q):</strong> Dzielimy moc przez powierzchnię. 1200 W / 30 m² = 40 W/m².<br>
                <strong>Krok 3 (Opór okładziny R):</strong> Przyjmujemy opór dla wybranego materiału (np. gres R = 0,02, panel R = 0,08).<br>
                <strong>Krok 4 (Obliczenie różnicy temperatur ΔT):</strong> Korzystamy z logarytmicznej różnicy temperatur między wodą a powietrzem.<br>
                <strong>Krok 5 (Wyznaczenie zasilania):</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ), gdzie σ to spadek temperatury na pętli (zazwyczaj 5K).<br><br>
                <em>Przykład praktyczny:</em> Dla nowoczesnego domu pasywnego (q = 20 W/m²) przy gresie, temperatura zasilania rzadko przekracza 28-30°C, co czyni system niemal "samoregulującym się".
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('tz2-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    var floorResistance = 0.08; 
    
    function updateCalc() {
        var areaEl = document.getElementById('tz2-area');
        var powerEl = document.getElementById('tz2-power');
        var roomTempEl = document.getElementById('tz2-roomTemp');
        
        if (!areaEl) return;
        if (!powerEl) return;
        if (!roomTempEl) return;

        var area = parseFloat(areaEl.value);
        var power = parseFloat(powerEl.value);
        var t_i = parseFloat(roomTempEl.value);
        
        document.getElementById('tz2-v-area').innerText = area;
        document.getElementById('tz2-v-power').innerText = power;
        document.getElementById('tz2-v-room').innerText = t_i;

        var q = power / area;
        
        var R_total = 0.093 + 0.03 + floorResistance;
        var delta_T_avg = q * R_total;
        
        var t_m = t_i + delta_T_avg;
        var sigma = 5; 
        var t_z = t_m + (0.5 * sigma);

        var t_f = t_i + (q * 0.093);

        document.getElementById('tz2-resQ').innerText = q.toFixed(1) + ' W/m²';
        document.getElementById('tz2-resDelta').innerText = delta_T_avg.toFixed(1) + ' K';
        document.getElementById('tz2-resTz').innerText = t_z.toFixed(1);
        document.getElementById('tz2-resTf').innerText = t_f.toFixed(1) + ' °C';

        var mBox = document.getElementById('tz2-mainBox');
        var rMsg = document.getElementById('tz2-risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (t_z > 55) { 
            warnings.push('❌ <strong>Krytyczny błąd:</strong> Temperatura zasilania przekracza 55°C. System niezgodny z normą PN-EN 1264. Grozi pęknięciem wylewki!'); 
            boxColor = 'var(--danger)'; 
        } else if (floorResistance === 0.15) {
            if (t_z > 38) {
                warnings.push('⚠️ <strong>Zagrożenie dla drewna:</strong> Temperatura rzędu ' + t_z.toFixed(1) + '°C doprowadzi do rozschnięcia się parkietu. Producent odrzuci gwarancję.'); 
                boxColor = 'var(--warning)';
            }
        }

        if (t_f > 29) {
            if (t_i < 24) {
                warnings.push('🔥 <strong>Przegrzana podłoga:</strong> Temperatura powierzchni przekroczy fizjologiczną granicę 29°C. Dyskomfort gwarantowany.');
                if(boxColor !== 'var(--danger)') {
                    boxColor = 'var(--warning)';
                }
            }
        }

        if (q <= 30) {
            if (t_z <= 32) {
                warnings.push('🌿 <strong>System optymalny:</strong> Parametry typowe dla domu energooszczędnego/pasywnego. Pompa ciepła osiągnie tu maksymalne COP.');
            }
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
            
            if(boxColor === 'var(--success)') {
                rMsg.style.background = '#f0fdf4';
                rMsg.style.color = '#15803d';
                rMsg.style.borderColor = '#bbf7d0';
            } else if(boxColor === 'var(--warning)') {
                rMsg.style.background = '#fff7ed';
                rMsg.style.color = '#c2410c';
                rMsg.style.borderColor = '#fed7aa';
            } else {
                rMsg.style.background = '#fee2e2';
                rMsg.style.color = '#b91c1c';
                rMsg.style.borderColor = '#fecaca';
            }
        } else {
            rMsg.style.display = 'none';
        }
        
        mBox.style.borderColor = boxColor;
    }

    var floorOptions = {
        'tz2-btn-gres': 0.02,
        'tz2-btn-panel': 0.08,
        'tz2-btn-wood': 0.15
    };

    var btnKeys = Object.keys(floorOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    floorResistance = floorOptions[btnId];
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    var sliders = ['tz2-area', 'tz2-power', 'tz2-roomTemp'];
    sliders.forEach(function(id) {
        var el = document.getElementById(id);
        if(el) el.addEventListener('input', updateCalc);
    });

    updateCalc();
});
</script>



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

.screed-thickness-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    overflow: hidden;
    color: var(--st-primary);
}

/* 1. SEKCJA HEADER & LEAD */
.st-header-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(135deg, #ffffff 0%, var(--st-bg-light) 100%);
}

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

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

.st-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

.st-lead a:hover {
    color: #0369a1;
}

/* 2. SEKCJA SYMULATORA (Suwak Mierniczy) */
.st-interactive-section {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.st-ruler-container {
    position: relative;
    padding: 40px 20px 20px 20px;
    background: var(--st-bg-light);
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    margin-top: 10px;
}

.st-ruler-title {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.st-slider-val {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 20px;
    font-weight: 900;
    color: var(--st-accent);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

.st-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #fecaca 0%, #fecaca 25%, #bbf7d0 25%, #bbf7d0 60%, #fed7aa 60%, #fed7aa 100%);
    outline: none;
    margin-top: 25px;
}

.st-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #ffffff;
    border: 4px solid var(--st-primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: transform 0.1s;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 2px, #cbd5e1 2px, #cbd5e1 4px);
    background-size: 8px 100%;
    background-position: center;
}

/* 3. KARTY STANU WYLEWKI */
.st-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

.st-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid #e2e8f0;
    background: #ffffff;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0.6; 
    transform: scale(0.98);
}

.st-card.active {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.1);
}

.st-card[data-type="thin"].active { border-color: var(--st-danger); }
.st-card[data-type="standard"].active { border-color: var(--st-success); }
.st-card[data-type="thick"].active { border-color: var(--st-warning); }

.st-card-icon {
    font-size: 32px;
    display: block;
    margin-bottom: 15px;
}

.st-cross-section {
    height: 40px;
    background: #f1f5f9;
    border-radius: 8px;
    margin-bottom: 15px;
    position: relative;
    border: 1px solid #cbd5e1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}

.st-pipe {
    width: 16px;
    height: 16px;
    background: #ef4444;
    border-radius: 50%;
    border: 2px solid #ffffff;
    margin-bottom: 4px;
    z-index: 2;
}

.st-concrete-fill {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 5px, #cbd5e1 5px, #cbd5e1 10px);
    z-index: 1;
}

.st-card[data-type="thin"] .st-concrete-fill { height: 50%; }
.st-card[data-type="standard"] .st-concrete-fill { height: 75%; }
.st-card[data-type="thick"] .st-concrete-fill { height: 100%; }

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

.st-card strong {
    color: var(--st-primary);
}

.st-card[data-type="thin"].active p { color: #7f1d1d; }
.st-card[data-type="thin"].active strong { color: #991b1b; }
.st-card[data-type="standard"].active p { color: #14532d; }
.st-card[data-type="standard"].active strong { color: #166534; }
.st-card[data-type="thick"].active p { color: #7c2d12; }
.st-card[data-type="thick"].active strong { color: #9a3412; }

/* 4. SEKCJA OUTRO */
.st-outro-section {
    padding: 0 50px 40px 50px;
}

.st-pro-tip {
    background: #f0f9ff;
    border-left: 4px solid var(--st-accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
}

.st-pro-tip-icon {
    font-size: 28px;
}

.st-pro-tip p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .st-header-section { padding: 30px 25px 15px 25px; }
    .st-interactive-section { padding: 15px 25px; }
    .st-cards-grid { grid-template-columns: 1fr; padding: 25px; gap: 15px; }
    .st-outro-section { padding: 0 25px 30px 25px; }
    .st-pro-tip { flex-direction: column; text-align: center; }
}
</style>

<div class="screed-thickness-module" id="app-screed-thickness">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Wpływu Grubości Jastrychu na Temperaturę Zasilania",
        "description": "Interaktywne narzędzie inżynierskie wizualizujące zależność między grubością wylewki betonowej a oporem cieplnym i wymaganą temperaturą zasilania w systemach ogrzewania podłogowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Obrazowanie ryzyka pęknięć dla wylewek poniżej 3,5 cm",
          "Wyznaczanie optymalnej grubości betonu nad rurą (4,5 - 5 cm)",
          "Estymacja konieczności podniesienia temperatury zasilania o 2-3°C dla grubych wylewek (8 cm)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Właściwości termiczne i mechaniczne wylewki betonowej",
        "description": "Zestawienie twardych danych inżynierskich określających zachowanie jastrychu w zależności od jego grubości oraz temperatury zasilania do 55°C.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Grubość standardowa",
            "value": "4,5 - 5 cm",
            "description": "Optymalna masa termiczna i bezpieczny rozkład naprężeń dla instalacji."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość ryzykowna (zbyt cienka)",
            "value": "< 3,5 cm",
            "description": "Wysokie ryzyko pękania pod wpływem naprężeń termicznych, nawet przy normatywnych 55°C."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość podwyższona",
            "value": "8 cm",
            "description": "Zwiększony opór cieplny wymuszający podniesienie temperatury zasilania o 2-3°C w celu zachowania tej samej temperatury powierzchni."
          }
        ]
      }
    ]
    </script>

    <div class="st-header-section">
        <div class="st-badge"><span>🏗️</span> Konstrukcja a Termodynamika</div>
        <h2>Czy wysokość wylewki wpływa na temperaturę zasilania?</h2>
        <p class="st-lead">Tak, masa termiczna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej na ogrzewanie podłogowe</a> ma kluczowe znaczenie. Im grubsza warstwa betonu nad rurą, tym wyższy opór cieplny samej płyty grzejnej.</p>
    </div>

    <div class="st-interactive-section">
        <div class="st-ruler-container">
            <span class="st-ruler-title">Grubość jastrychu nad rurą</span>
            <span class="st-slider-val" id="st-val-display">5.0 cm</span>
            <input type="range" min="2.0" max="10.0" step="0.5" value="5.0" class="st-slider" id="st-slider">
        </div>
    </div>

    <div class="st-cards-grid">
        <div class="st-card" data-type="thin" id="st-card-thin">
            <span class="st-card-icon">💥</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> (poniżej <strong>3,5 cm</strong>) grozi pękaniem pod wpływem naprężeń termicznych, nawet jeśli nie przekroczymy maksymalnych <strong>55°C</strong> na zasilaniu.</p>
        </div>

        <div class="st-card active" data-type="standard" id="st-card-standard">
            <span class="st-card-icon">✅</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Standardowo przyjmuje się <strong>4,5 - 5 cm</strong> betonu ponad rurą.</p>
        </div>

        <div class="st-card" data-type="thick" id="st-card-thick">
            <span class="st-card-icon">🌡️</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Zwiększenie tej grubości do <strong>8 cm</strong> wymusza podniesienie temperatury zasilania o około <strong>2-3°C</strong>, aby uzyskać tę samą temperaturę na powierzchni w tym samym czasie.</p>
        </div>
    </div>

    <div class="st-outro-section">
        <div class="st-pro-tip">
            <span class="st-pro-tip-icon">💡</span>
            <p>W systemach renowacyjnych, gdzie brakuje miejsca na gruby beton, stosuje się specjalne jastrychy anhydrytowe o wysokim współczynniku przewodzenia ciepła.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-screed-thickness');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('st-slider');
    const displayVal = document.getElementById('st-val-display');
    
    const cardThin = document.getElementById('st-card-thin');
    const cardStandard = document.getElementById('st-card-standard');
    const cardThick = document.getElementById('st-card-thick');

    function updateScreedSimulator(thickness) {
        displayVal.textContent = parseFloat(thickness).toFixed(1) + ' cm';

        cardThin.classList.remove('active');
        cardStandard.classList.remove('active');
        cardThick.classList.remove('active');

        if (thickness < 4.0) {
            cardThin.classList.add('active');
        } else if (thickness >= 4.0 && thickness <= 6.5) {
            cardStandard.classList.add('active');
        } else {
            cardThick.classList.add('active');
        }
    }

    if (slider) {
        slider.addEventListener('input', function() {
            updateScreedSimulator(this.value);
        });
        
        updateScreedSimulator(slider.value);
    }
});
</script>



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



<style>
:root {
    --hazard-primary: #0f172a;
    --hazard-accent: #dc2626; /* Intensywna czerwień ostrzegawcza */
    --hazard-bg: #fff1f2;
    --hazard-border: #fecaca;
    --hazard-text: #475569;
}

.hazard-report-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    border: 2px solid var(--hazard-border);
    overflow: hidden;
    box-shadow: 0 20px 25px -5px rgba(220, 38, 38, 0.05);
}

/* 1. SEKACJA HEADER */
.hazard-header {
    background: var(--hazard-accent);
    padding: 30px 50px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hazard-header h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
}

.hazard-status-label {
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hazard-pulse {
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
    animation: hazard-blink 1s infinite;
}

@keyframes hazard-blink {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

/* 2. SEKACJA TEKSTU PROWADZĄCEGO */
.hazard-intro {
    padding: 35px 50px 20px 50px;
    background: #ffffff;
}

.hazard-intro p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

.hazard-intro a {
    color: var(--hazard-accent);
    text-decoration: underline;
    font-weight: 700;
}

/* 3. INTERAKTYWNA LISTA ZAGROŻEŃ */
.hazard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 20px 50px 40px 50px;
}

.hazard-item {
    background: var(--hazard-bg);
    border: 1px solid var(--hazard-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hazard-item:hover {
    transform: translateY(-5px);
    background: #ffffff;
    box-shadow: 0 10px 20px rgba(220, 38, 38, 0.1);
    border-color: var(--hazard-accent);
}

.hazard-icon {
    font-size: 32px;
    margin-bottom: 15px;
}

.hazard-item h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--hazard-primary);
    text-transform: uppercase;
}

.hazard-details {
    font-size: 13px;
    line-height: 1.6;
    color: var(--hazard-text);
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    opacity: 0;
}

.hazard-item.active {
    background: #ffffff;
    border-color: var(--hazard-accent);
    box-shadow: 0 10px 25px rgba(220, 38, 38, 0.1);
}

.hazard-item.active .hazard-details {
    height: auto;
    opacity: 1;
    margin-top: 10px;
}

.hazard-temp-badge {
    background: var(--hazard-accent);
    color: #ffffff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .hazard-header { padding: 25px; flex-direction: column; gap: 15px; text-align: center; }
    .hazard-intro { padding: 30px 25px 15px 25px; }
    .hazard-grid { grid-template-columns: 1fr; padding: 15px 25px 30px 25px; }
    .hazard-item { padding: 20px; }
}
</style>

<div class="hazard-report-module" id="app-hazard-report">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Analizator Skutków Przegrzania Podłogówki",
        "description": "Narzędzie eksperckie identyfikujące fizyczne i techniczne zagrożenia wynikające z przekroczenia temperatury 55°C w instalacjach ogrzewania płaszczyznowego.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Weryfikacja wytrzymałości termicznej klejów ceramicznych",
          "Analiza prądów konwekcyjnych i emisji pyłów",
          "Ocena degradacji polimerów rur PERT/PEX"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Krytyczne progi degradacji instalacji podłogowej",
        "description": "Zbiór danych technicznych dotyczących niszczącego wpływu wysokich temperatur na materiały budowlane i instalacyjne.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Wytrzymałość klejów do ceramiki",
            "value": "Max 60-70°C",
            "description": "Powyżej tego progu następuje kruszenie spoiwa i odparzenie płytek."
          },
          {
            "@type": "PropertyValue",
            "name": "Próg emisji pyłów (konwekcja)",
            "value": "> 35°C powierzchni",
            "description": "Gwałtowny ruch powietrza unoszący alergeny."
          },
          {
            "@type": "PropertyValue",
            "name": "Degradacja sieciowania PEX",
            "value": "Stała praca > 60°C",
            "description": "Przyspieszone starzenie materiału i kruszenie rur."
          }
        ]
      }
    ]
    </script>

    <div class="hazard-header">
        <h2>Zagrożenia i błędy: Co się dzieje po przekroczeniu 55°C?</h2>
        <div class="hazard-status-label">
            <div class="hazard-pulse"></div>
            Analiza Krytyczna
        </div>
    </div>

    <div class="hazard-intro">
        <p>W mojej karierze widziałem dziesiątki instalacji zniszczonych przez brak kontroli nad temperaturą zasilania. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego</a> często kumulują się właśnie w tym punkcie. <strong>Kliknij w wybrane zagrożenie, aby poznać szczegóły:</strong></p>
    </div>

    <div class="hazard-grid">
        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🧱</span>
            <h4>Odparzenie płytek</h4>
            <div class="hazard-temp-badge">60-70°C</div>
            <div class="hazard-details">
                Kleje do ceramiki mają swoją wytrzymałość termiczną. Praca w temperaturze <strong>60-70°C</strong> powoduje ich kruszenie i utratę przyczepności do jastrychu.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">💨</span>
            <h4>Emisja pyłów</h4>
            <div class="hazard-temp-badge">Konwekcja</div>
            <div class="hazard-details">
                Przegrzana podłoga generuje silne prądy konwekcyjne. Zjawisko to unosi kurz, co jest szczególnie dotkliwe dla alergików. Poprawna podłogówka powinna oddawać ciepło głównie przez promieniowanie.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🚨</span>
            <h4>Niszczenie rur</h4>
            <div class="hazard-temp-badge">Degradacja PEX</div>
            <div class="hazard-details">
                Rury PERT/PEX przy stałym przegrzewaniu stają się kruche (proces sieciowania ulega degradacji), co po kilku latach może prowadzić do awarii i konieczności kucia posadzek.
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-hazard-report');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Treść raportu zagrożeń została skopiowana nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }
});
</script>



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



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii trwa wiele godzin. Skokowe podniesienie temperatury zasilania wywoła szok termiczny, co grozi pęknięciem wylewki, odspojeniem płytek i uszkodzeniem rur PEX. System powinien pracować stabilnie na niskich parametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Problem najprawdopodobniej leży w hydraulice lub wysokim oporze cieplnym okładziny (np. gruby dywan). Jeśli rury są ciepłe przy rozdzielaczu, a podłoga nie grzeje, należy sprawdzić przepływy na rotametrach (brak przepływu oznacza zapowietrzenie lub zablokowane siłowniki)."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna temperatura dla paneli winylowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele winylowe (LVT) świetnie przewodzą ciepło, ale temperatura na ich powierzchni nie może przekraczać 27°C. Aby zachować bezpieczeństwo materiału i nie doprowadzić do jego odkształceń, temperatura zasilania podłogówki nie powinna przekraczać 35°C."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Asystent Diagnostyczny Instalacji Podłogowych",
    "description": "Moduł typu Helpdesk ułatwiający inwestorom diagnozowanie problemów z instalacją grzewczą (np. zimne posadzki) oraz weryfikację bezpieczeństwa parametrów eksploatacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Rozwiązywanie problemów z przepływem i zapowietrzeniem układu",
      "Weryfikacja maksymalnych parametrów dla winylu (LVT)",
      "Analiza skutków przewymiarowania temperatury zasilania"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy i parametry diagnostyczne ogrzewania płaszczyznowego",
    "description": "Zbiór danych określających krytyczne błędy użytkowe i parametry eksploatacyjne systemów HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Prawidłowy przepływ w rotametrze",
        "value": "1.0 - 2.5 l/min",
        "description": "Wartość niezbędna do pokonania oporów hydraulicznych i równomiernego oddawania ciepła."
      },
      {
        "@type": "PropertyValue",
        "name": "Max temp. zasilania dla winylu LVT",
        "value": "35°C",
        "description": "Graniczna temperatura na zasilaniu zapobiegająca uszkodzeniu zamków i odkształcaniu paneli winylowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
    }
  }
]
</script>

<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0284c7;
    --faq-accent-light: #e0f2fe;
    --faq-bg: #f8fafc;
    --faq-border: #e2e8f0;
    --faq-text: #334155;
    --faq-danger: #dc2626;
}

.premium-faq-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--faq-border);
    overflow: hidden;
}

.faq-header-section {
    padding: 40px 50px 30px 50px;
    background: linear-gradient(180deg, #ffffff 0%, var(--faq-bg) 100%);
    border-bottom: 1px solid var(--faq-border);
    text-align: center;
}

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

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

.faq-header-section p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.faq-accordion-container {
    padding: 30px 50px 40px 50px;
    background: #ffffff;
}

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

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

.faq-item:hover {
    border-color: #bae6fd;
}

.faq-item.active {
    border-color: var(--faq-accent);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.faq-question {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 20px;
    user-select: none;
    background: #ffffff;
}

.faq-q-text {
    display: flex;
    align-items: center;
    gap: 15px;
}

.faq-q-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.faq-q-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

.faq-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--faq-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--faq-primary);
    font-weight: bold;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

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

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

.faq-answer-inner {
    padding: 0 25px 25px 65px; /* Offset for icon alignment */
}

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

.faq-answer p:last-child {
    margin-bottom: 0;
}

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

/* Wyróżnienie "Wskazówka Inżyniera" */
.expert-highlight {
    background: #f0fdf4;
    border-left: 4px solid var(--success);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 15px;
}

.expert-highlight strong {
    display: block;
    color: #14532d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.expert-highlight p {
    color: #166534;
    font-size: 14px;
    margin: 0;
}

@media (max-width: 768px) {
    .faq-header-section { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 25px; }
    .faq-question { padding: 15px 20px; gap: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; } /* Usunięty offset dla mobile */
    .faq-q-icon { font-size: 20px; }
    .faq-q-title { font-size: 15px; }
}
</style>

<div class="premium-faq-module" id="app-faq-module">
    
    <div class="faq-header-section">
        <div class="faq-badge">
            <span>💡</span> Baza Wiedzy Inwestora
        </div>
        <h2>Najczęściej zadawane pytania (FAQ)</h2>
        <p>Zebraliśmy najczęstsze wątpliwości inwestorów dotyczące temperatur zasilania. Rozwiń poniższe zagadnienia, aby uniknąć kosztownych błędów eksploatacyjnych.</p>
    </div>

    <div class="faq-accordion-container">
        
        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🔥</span>
                    <h3 class="faq-q-title">Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p><strong>Absolutnie nie.</strong> Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii i tak potrwa od kilku do kilkunastu godzin. Skokowe podniesienie temperatury zasilania nie przyspieszy odczuwalnie nagrzewania pomieszczenia, ale wywoła potężny szok termiczny dla instalacji.</p>
                    <p>Ryzykujesz rażące przekroczenie normy PN-EN 1264 (limit 55°C), co prowadzi do nieodwracalnego pękania jastrychu, odspojenia płytek oraz drastycznego skrócenia żywotności rur PEX. System podłogowy to układ niskotemperaturowy – powinien pracować stabilnie, ciągle i na niskich parametrach.</p>
                    <div class="expert-highlight">
                        <strong>Wskazówka Inżyniera</strong>
                        <p>Jeśli posiadasz pompę ciepła, takie wymuszenie temperatury włączy grzałki elektryczne, co w ciągu kilku dni potrafi wygenerować rachunki równe miesięcznym kosztom standardowej eksploatacji.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">❄️</span>
                    <h3 class="faq-q-title">Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Wysoka temperatura na kotle nie gwarantuje ciepłej podłogi, jeśli energia nie jest w stanie dotrzeć do posadzki i przebić się do pomieszczenia. Najprawdopodobniej problem leży w <strong>błędach hydraulicznych lub złym wykończeniu podłogi</strong>.</p>
                    <p>W pierwszej kolejności sprawdź przepływy na rotametrach na rozdzielaczu – poprawne wartości to zazwyczaj od 1.0 do 2.5 l/min. Zablokowany przepływ może oznaczać zapowietrzenie pętli lub usterkę siłownika termoelektrycznego. Jeśli przepływy są prawidłowe, winny jest zbyt wysoki opór cieplny (R) – np. gruby dywan, zły podkład lub pustka powietrzna pod deską, która blokuje oddawanie ciepła.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🪵</span>
                    <h3 class="faq-q-title">Jaka jest optymalna temperatura dla paneli winylowych (LVT)?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Panele winylowe (LVT/SPC) są bardzo cienkie i rewelacyjnie przewodzą ciepło, co czyni je doskonałym wyborem na ogrzewanie podłogowe. Mają jednak jedną wadę: <strong>bardzo niską odporność na wysoką temperaturę</strong>.</p>
                    <p>Zgodnie z rygorystycznymi wytycznymi większości producentów, temperatura styku paneli z wylewką absolutnie nie może przekroczyć <strong>27°C - 28°C</strong>. Zazwyczaj oznacza to, że temperatura wody na zasilaniu podłogówki powinna być zablokowana na poziomie maksymalnie <strong>30-35°C</strong>.</p>
                    <div class="expert-highlight" style="border-left-color: var(--faq-danger); background: #fef2f2;">
                        <strong style="color: #991b1b;">Zagrożenie</strong>
                        <p style="color: #7f1d1d;">Przegrzanie winylu natychmiast prowadzi do rozmiękczenia materiału, odkształcenia (wyłamania) zamków, efektu "łódkowania" oraz utraty gwarancji na podłogę.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-faq-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Baza wiedzy FAQ została skopiowana z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

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

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        
        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Opcjonalnie: Zwijanie wszystkich innych zakładek po kliknięciu nowej
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                const otherAnswer = otherItem.querySelector('.faq-answer');
                otherAnswer.style.maxHeight = null;
            });

            // Logika otwierania klikniętego elementu
            if (!isActive) {
                item.classList.add('active');
                const answer = item.querySelector('.faq-answer');
                // Dynamiczne ustawienie max-height pozwala na gładką animację dla zawartości o różnej długości
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz domyślnie pierwsze pytanie, aby użytkownik widział, jak działa element
    if (faqItems.length > 0) {
        faqItems[0].classList.add('active');
        const firstAnswer = faqItems[0].querySelector('.faq-answer');
        firstAnswer.style.maxHeight = firstAnswer.scrollHeight + "px";
    }
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-secondary: #1e293b;
    --dl-accent: #0284c7;
    --dl-pdf: #ef4444; 
    --dl-img: #10b981; 
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
}

.premium-download-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--dl-border);
    overflow: hidden;
    display: flex;
    flex-direction: row;
}

/* LEWA STRONA: Wizualizacja materiału (Podgląd) */
.dl-visual-side {
    flex: 0 0 38%;
    background: linear-gradient(135deg, var(--dl-primary) 0%, var(--dl-secondary) 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    border-right: 1px solid rgba(255,255,255,0.1);
    overflow: hidden;
}

/* Dekoracyjne tło */
.dl-visual-side::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: radial-gradient(circle at top right, rgba(2, 132, 199, 0.4) 0%, transparent 60%);
    pointer-events: none;
}

/* Nowy kontener z podglądem grafiki */
.dl-preview-wrapper {
    width: 170px;
    max-width: 80%;
    margin-bottom: 25px;
    border-radius: 8px;
    box-shadow: -10px 15px 25px rgba(0,0,0,0.4);
    border: 3px solid rgba(255,255,255,0.15);
    transform: rotate(-4deg) translateY(0);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    z-index: 1;
    overflow: hidden;
    background: #fff;
}

.dl-preview-wrapper:hover {
    transform: rotate(0deg) translateY(-5px) scale(1.05);
    box-shadow: 0 20px 35px rgba(0,0,0,0.5);
    border-color: rgba(255,255,255,0.3);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.dl-visual-side p {
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    z-index: 1;
    padding: 0 10px;
}

/* PRAWA STRONA: Treść i przyciski */
.dl-content-side {
    flex: 1;
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-badge {
    align-self: flex-start;
    background: #f0f9ff;
    color: var(--dl-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #bae6fd;
}

.dl-content-side h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--dl-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

.dl-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #475569;
    line-height: 1.5;
}

.dl-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--dl-img);
    font-weight: bold;
}

.dl-features li strong {
    color: var(--dl-primary);
}

/* Przyciski pobierania */
.dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    flex: 1;
    justify-content: center;
    min-width: 180px;
}

.dl-btn-pdf {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.dl-btn-pdf:hover {
    background: var(--dl-pdf);
    color: #ffffff;
    border-color: var(--dl-pdf);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(239, 68, 68, 0.2);
}

.dl-btn-img {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.dl-btn-img:hover {
    background: var(--dl-img);
    color: #ffffff;
    border-color: var(--dl-img);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(16, 185, 129, 0.2);
}

.dl-btn-icon {
    font-size: 18px;
}

@media (max-width: 768px) {
    .premium-download-module {
        flex-direction: column;
    }
    .dl-visual-side {
        padding: 40px 30px;
    }
    .dl-content-side {
        padding: 30px 25px;
    }
    .dl-actions {
        flex-direction: column;
    }
    .dl-btn {
        width: 100%;
    }
}
</style>

<div class="premium-download-module" id="app-download-center">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Centrum Pobierania - Infografiki HVAC",
        "description": "Interaktywny moduł umożliwiający pobranie kompendium wiedzy na temat maksymalnych temperatur zasilania dla ogrzewania podłogowego w formatach PDF i WebP.",
        "applicationCategory": "MultimediaApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Szybkie pobieranie infografiki w bezstratnym formacie PDF do druku",
          "Dostęp do lekkiej wersji graficznej WebP dla urządzeń mobilnych",
          "Zestawienie norm PN-EN 1264 z praktyką inżynierską"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Infografika: Maksymalna temperatura zasilania podłogówki",
        "description": "Wizualne zestawienie parametrów eksploatacyjnych, optymalnych temperatur dla poszczególnych rodzajów posadzek oraz najczęstszych błędów montażowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "distribution": [
          {
            "@type": "DataDownload",
            "encodingFormat": "application/pdf",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf"
          },
          {
            "@type": "DataDownload",
            "encodingFormat": "image/webp",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="dl-visual-side">
        <div class="dl-preview-wrapper">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" alt="Podgląd infografiki - parametry ogrzewania podłogowego" class="dl-preview-img" loading="lazy">
        </div>
        <p>Materiały oparte na twardych danych inżynierskich i normie PN-EN 1264.</p>
    </div>

    <div class="dl-content-side">
        <div class="dl-badge">Darmowe Materiały</div>
        <h2>Pobierz infografikę z parametrami instalacji</h2>
        
        <ul class="dl-features">
            <li><strong>Graficzne podsumowanie wiedzy:</strong> Czytelny schemat pracy układu grzewczego.</li>
            <li><strong>Szybka ściągawka z norm:</strong> Optymalne i graniczne wartości temperatur (25°C - 55°C) zawsze pod ręką.</li>
            <li><strong>Analiza błędów:</strong> Zestawienie 3 najdroższych pomyłek montażowych.</li>
        </ul>

        <div class="dl-actions">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-pdf">
                <span class="dl-btn-icon">📄</span> Pobierz plik PDF
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-img">
                <span class="dl-btn-icon">🖼️</span> Otwórz Obrazek
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-download-center');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; width: 100%;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Moduł pobierania plików został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

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

.summary-header {
    background: var(--primary);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło w nagłówku */
.summary-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.4) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.summary-text {
    padding: 35px 40px 10px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

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

/* Moduł interaktywny - Weryfikator */
.interactive-checklist-module {
    margin: 20px 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.checklist-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 200px;
}

.progress-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
    font-size: 12px;
    font-weight: 900;
    color: var(--primary);
    min-width: 40px;
    text-align: right;
}

.checklist-items {
    padding: 20px 25px;
    display: grid;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #ffffff;
}

.check-item:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.check-item.completed {
    border-color: var(--success);
    background: #f0fdf4;
}

.check-box {
    width: 24px;
    height: 24px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: #fff;
    margin-top: 2px;
}

.check-item.completed .check-box {
    background: var(--success);
    border-color: var(--success);
}

.check-icon {
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transform: scale(0);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.check-item.completed .check-icon {
    opacity: 1;
    transform: scale(1);
}

.check-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

.check-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
}

/* CTA Sukcesu - ROZWIĄZANIE HYBRYDOWE */
.success-cta-box {
    padding: 30px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.4s ease;
}

.success-cta-box.is-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-top-color: #bbf7d0;
}

.success-messages {
    display: none;
    animation: fadeIn 0.5s ease;
}

.success-cta-box.is-success .success-messages {
    display: block;
}

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

.success-messages h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #166534;
    font-weight: 900;
}

.success-messages p {
    font-size: 15px;
    color: #15803d;
    margin: 0 0 20px 0;
}

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534;
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wytyczne zasilania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących maksymalnych limitów temperatury zasilania oraz powierzchni podłogi z uwzględnieniem specyfiki źródła ciepła i okładziny.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura zasilania wg normy",
        "value": "55°C",
        "description": "Graniczna wartość według PN-EN 1264, której przekroczenie grozi uszkodzeniem jastrychu."
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna temperatura zasilania (Pompa ciepła)",
        "value": "30-38°C",
        "description": "Zakres gwarantujący najwyższy współczynnik SCOP i energooszczędność."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura powierzchni podłogi",
        "value": "29°C",
        "description": "Limit dla stref stałego przebywania ludzi (np. salon, sypialnia) ze względów fizjologicznych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Audyt Parametrów Zasilania",
    "description": "Interaktywna aplikacja sprawdzająca, czy założenia projektowe dotyczące temperatur zasilania podłogówki są bezpieczne i zgodne z normami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Weryfikacja parametrów OZC i układu hydraulicznego",
      "Kontrola zabezpieczeń przed przegrzewem dla źródeł wysokotemperaturowych",
      "Ocena spójności między rozstawem rur a planowaną okładziną"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie i rekomendacje eksperta</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Maksymalna temperatura zasilania podłogówki to parametr, którego nie wolno lekceważyć.</p>
    </div>
    
    <div class="summary-text">
        <p>Choć norma dopuszcza graniczną wartość <strong>55°C</strong>, współczesne budownictwo oparte na efektywnych źródłach niskotemperaturowych bezwzględnie dąży do parametrów na poziomie <strong>30-38°C</strong>. Taki zakres to jedyna droga, która gwarantuje najwyższą sprawność pomp ciepła, bezpieczeństwo termiczne dla wszystkich rodzajów okładzin wierzchnich oraz idealny, bezwładnościowy komfort cieplny dla domowników.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🌡️ Audyt Bezpieczeństwa: Weryfikacja parametrów zasilania</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Projekt OZC jako absolutna podstawa</h4>
                    <p>Zawsze wymagam obliczenia projektowego zapotrzebowania na ciepło przed rozpoczęciem instalacji, aby nie dobierać temperatury zasilania "w ciemno".</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Zastosowanie zaworu mieszającego</h4>
                    <p>W przypadku współpracy z kotłem stałopalnym lub gazowym, układ jest zabezpieczony zaworem obniżającym zbyt wysoką temperaturę powrotu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Dopasowanie rozstawu pętli do okładziny</h4>
                    <p>Dobrałem gęstość rur pod rodzaj wykończenia. Zastosuję węższy rozstaw (np. co 10 cm), jeśli nad rurami znajdzie się stawiające opór termiczny drewno.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Monitorowanie temperatury powierzchni</h4>
                    <p>Układ jest tak wyregulowany, by temperatura powierzchni podłogi (np. w salonie i sypialniach) bezwzględnie nie przekraczała normatywnych 29°C.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój układ grzewczy to majstersztyk inżynierski.</h3>
            <p>Inwestycja w poprawnie zaprojektowany i wyregulowany system to nie tylko niższe rachunki za energię, ale przede wszystkim spokój na dziesięciolecia i dom wolny od kosztownych awarii wylewki i posadzek.</p>
        </div>

        <p class="success-cta-promo">Chcesz poznać inne parametry wpływające na efektywność ogrzewania? Sprawdź naszą bazę wiedzy pełną branżowych kalkulatorów i darmowych poradników!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</p>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy trzeba mieć projekt na ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/</link>
					<comments>https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 09 Feb 2025 10:59:16 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[dokumentacja techniczna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2146</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, czy potrzebujesz profesjonalnego projektu? W artykule „Czy trzeba mieć projekt na ogrzewanie podłogowe?” znajdziesz odpowiedzi na wszystkie nurtujące pytania. Dowiesz się, dlaczego dokumentacja techniczna to klucz do efektywnego systemu grzewczego, jakie są koszty braku projektu oraz gdzie zamówić go za darmo. Poznasz również praktyczne przykłady i porady, które pomogą Ci uniknąć błędów. Sprawdź, jak zaoszczędzić energię i zapewnić sobie komfort na lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">Czy trzeba mieć projekt na ogrzewanie podłogowe?</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-primary: #0284c7;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-danger: #ef4444;
    --rk-intro-success: #10b981;
    --rk-intro-gold: #d97706;
}

.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 20px 40px -10px rgba(2, 132, 199, 0.08);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Układ główny */
.rk-intro-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-intro-bg);
}

/* Lewa Kolumna - Hook i Szybka Odpowiedź */
.rk-intro-main {
    padding: 40px 50px;
    background: #ffffff;
    border-right: 1px solid var(--rk-intro-border);
}

.rk-intro-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 2px solid var(--rk-intro-surface);
}

.rk-intro-author-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 3px solid var(--rk-intro-primary);
    object-fit: cover;
    flex-shrink: 0;
}

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

.rk-intro-header-text p {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

.rk-intro-hook strong {
    color: var(--rk-intro-danger);
    font-weight: 800;
}

/* Quick Answer Box */
.rk-quick-answer {
    background: #f0f9ff;
    border-left: 5px solid var(--rk-intro-primary);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
}

.rk-qa-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 900;
    color: var(--rk-intro-primary);
    text-transform: uppercase;
    margin: 0 0 10px 0;
}

.rk-qa-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-intro-dark);
    margin: 0;
    font-weight: 600;
}

/* Prawa Kolumna - Agenda i Długi Ogon */
.rk-intro-agenda {
    background: var(--rk-intro-surface);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
}

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

.rk-agenda-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 30px;
}

.rk-agenda-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    overflow: hidden;
}

.rk-agenda-btn {
    width: 100%;
    text-align: left;
    padding: 16px 20px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    transition: background 0.2s;
}

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

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

.rk-agenda-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-primary);
}

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

.rk-agenda-content {
    display: none;
    padding: 0 20px 20px 52px;
    font-size: 13px;
    line-height: 1.6;
    color: #64748b;
    border-top: 1px solid transparent;
}

.rk-agenda-btn.active + .rk-agenda-content {
    display: block;
    background: var(--rk-intro-primary);
    color: #e0f2fe;
}

/* Kluczowe zagadnienia (Długi Ogon w prawej kolumnie) */
.rk-related-topics {
    margin-top: auto; /* Wypycha na dół prawej kolumny */
    padding-top: 25px;
    border-top: 1px dashed var(--rk-intro-border);
}

.rk-related-title {
    font-size: 13px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.rk-related-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rk-related-tag {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-intro-primary);
    background: #e0f2fe;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #bae6fd;
    transition: all 0.2s ease;
}

.rk-related-tag:hover {
    background: var(--rk-intro-primary);
    color: #ffffff;
    border-color: var(--rk-intro-primary);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-intro-layout { grid-template-columns: 1fr; }
    .rk-intro-main { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-intro-border); }
    .rk-intro-header { flex-direction: column; text-align: center; gap: 15px; }
    .rk-intro-agenda { padding: 30px 20px; }
    .rk-quick-answer { padding: 20px; }
    .rk-agenda-content { padding-left: 20px; }
    .rk-related-topics { margin-top: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czy trzeba mieć projekt na ogrzewanie podłogowe?",
    "description": "Zgodnie z Prawem Budowlanym projekt nie jest wymogiem do pozwolenia, jednak bez obliczeń inżynierskich OZC i spełnienia norm WT 2021 instalacja wygeneruje ogromne koszty.",
    "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://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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-wstep",
    "name": "Zestawienie ryzyk i wymogów instalacyjnych HVAC",
    "description": "Baza danych określająca skutki prawne, finansowe i techniczne montażu instalacji ogrzewania płaszczyznowego bez oparcia o normatywny projekt wykonawczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy trzeba mieć projekt na ogrzewanie podłogowe",
      "weryfikacja projektu instalacji grzewczej",
      "wymagania warunków technicznych wt 2021 ogrzewanie",
      "projektowe obciążenie cieplne ozc",
      "wymogi dotacji czyste powietrze",
      "norma PN-EN 12831 w podłogówce",
      "zrównoważenie hydrauliczne rotametry",
      "maksymalna długość pętli ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja rygorów technicznych w oparciu o normę PN-EN 1264 oraz Prawo Budowlane w aspekcie uzyskania odbioru technicznego i dofinansowań.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Prawo Budowlane: Brak formalnego wymogu do PNB, ale obowiązek dostosowania do WT 2021 (wskaźnik EP).",
        "Odbiór i dotacje: Brak OZC i protokołów zrównoważenia wyklucza odbiór kierownika budowy oraz blokuje wypłatę Czystego Powietrza.",
        "Ryzyko eksploatacyjne: Pozorna oszczędność 300-500 PLN prowadzi do drastycznego spadku sprawności pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-wstep",
    "name": "Interaktywny Nawigator Merytoryczny (Agenda)",
    "description": "Moduł wprowadzający ułatwiający czytelnikowi nawigację po zaawansowanych narzędziach inżynierskich, z uwzględnieniem zagadnień z długiego ogona SEO.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    <div class="rk-intro-layout">
        
        <!-- Lewa Kolumna (Hook i TL;DR) -->
        <div class="rk-intro-main">
            <div class="rk-intro-header">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-intro-author-img">
                <div class="rk-intro-header-text">
                    <h2>Czy trzeba mieć projekt na ogrzewanie podłogowe?</h2>
                    <p>Weryfikacja specjalisty – Robert Kucharski</p>
                </div>
            </div>

            <p class="rk-intro-hook">
                Inwestorzy na etapie stanu surowego zadają sobie jedno kluczowe pytanie: zlecić profesjonalną dokumentację, czy zaufać &#8222;wieloletniemu doświadczeniu&#8221; hydraulika? Pozorna oszczędność rzędu 300–500 PLN na odrzuceniu dokumentacji to <strong>najdroższy błąd, jaki możesz popełnić na swojej budowie</strong>, który będzie drenował Twój portfel przez kolejne 30 lat.
            </p>

            <div class="rk-quick-answer">
                <div class="rk-qa-title">
                    <svg width="20" height="20" 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><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    Szybka Odpowiedź (TL;DR)
                </div>
                <p class="rk-qa-text">
                    Zgodnie z Prawem Budowlanym projekt nie jest wymogiem do uzyskania pozwolenia na budowę. Jednak bez inżynierskiego obliczenia OZC nie spełnisz norm prawnych <strong>WT 2021</strong>, kierownik budowy może odmówić odbioru technicznego, a Ty bezpowrotnie <strong>stracisz prawo do dotacji</strong> (Czyste Powietrze, Moje Ciepło) z powodu braku dowodów na zrównoważenie hydrauliczne instalacji.
                </p>
            </div>
        </div>

        <!-- Prawa Kolumna (Narzędzia / Agenda) -->
        <div class="rk-intro-agenda">
            <h3 class="rk-agenda-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Co sprawdzisz w poradniku?
            </h3>
            
            <div class="rk-agenda-list" id="introAgendaList">
                
                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn active">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                        </div>
                        Kalkulator Inwestycyjny (ROI)
                    </button>
                    <div class="rk-agenda-content">
                        Poniżej znajdziesz interaktywne zestawienie kosztów. Przekonasz się na twardych liczbach, jak szybko zwraca się zakup projektu.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4M12 8h.01"></path></svg>
                        </div>
                        Algorytm Oporów Pętli
                    </button>
                    <div class="rk-agenda-content">
                        Udostępniamy inżynierski suwak. Sprawdzisz samodzielnie, w którym momencie zbyt długa pętla zablokuje przepływ wody.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        Symulator Kosztów Prądu
                    </button>
                    <div class="rk-agenda-content">
                        Narzędzie pokazujące wpływ błędu instalatora na krzywą grzewczą pompy ciepła i drastyczny spadek wskaźnika COP.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                        </div>
                        Case Study inwestora
                    </button>
                    <div class="rk-agenda-content">
                        Na przykładzie budowy Pani Janiny wprost rozprawiamy się z absurdalnymi zaleceniami, z jakimi inwestorzy spotykają się na budowach.
                    </div>
                </div>

            </div>

            <!-- Zagospodarowanie pustej przestrzeni (Długi ogon SEO) -->
            <div class="rk-related-topics">
                <h4 class="rk-related-title">Kluczowe zagadnienia techniczne:</h4>
                <div class="rk-related-tags">
                    <span class="rk-related-tag">Obliczenia OZC</span>
                    <span class="rk-related-tag">Norma PN-EN 1264</span>
                    <span class="rk-related-tag">Zrównoważenie hydrauliczne</span>
                    <span class="rk-related-tag">Efektywność COP</span>
                    <span class="rk-related-tag">Straty ciśnienia</span>
                </div>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const agendaBtns = document.querySelectorAll('.rk-agenda-btn');

    agendaBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            agendaBtns.forEach(b => b.classList.remove('active'));
            
            // Otwórz kliknięty, o ile nie był już aktywny
            if (!isActive) {
                this.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-law-dark: #0f172a;
    --rk-law-primary: #0284c7;
    --rk-law-bg: #ffffff;
    --rk-law-surface: #f8fafc;
    --rk-law-border: #e2e8f0;
    --rk-law-text: #334155;
    --rk-law-danger: #ef4444;
    --rk-law-danger-bg: #fef2f2;
    --rk-law-success: #10b981;
    --rk-law-success-bg: #ecfdf5;
    --rk-law-gold: #d97706;
}

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

/* Nagłówek */
.rk-law-header {
    padding: 35px 40px;
    background: var(--rk-law-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-law-gold);
    position: relative;
    overflow: hidden;
}

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

.rk-law-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-law-header h2 svg {
    color: var(--rk-law-gold);
    flex-shrink: 0;
}

.rk-law-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
    max-width: 700px;
}

/* Układ główny - Jedna kolumna */
.rk-law-interactive {
    padding: 40px;
    background: var(--rk-law-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 1px solid var(--rk-law-border);
}

/* Przełącznik opcji */
.rk-law-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 40px;
    width: 100%;
    max-width: 650px;
    position: relative;
}

.rk-law-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-law-toggle-btn.active[data-audit="fail"] {
    color: var(--rk-law-danger);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-law-toggle-btn.active[data-audit="pass"] {
    color: var(--rk-law-success);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

.rk-law-toggle-icon {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid currentColor;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-law-toggle-btn.active .rk-law-toggle-icon::after {
    content: '';
    width: 8px;
    height: 8px;
    background: currentColor;
    border-radius: 50%;
}

/* Wizualizacja dokumentu i pieczątki */
.rk-law-doc-container {
    position: relative;
    width: 160px;
    height: 180px;
    margin-bottom: 30px;
}

.rk-law-doc-svg {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.08));
    overflow: visible; /* Zapobiega ucinaniu pieczątki */
}

/* Animacja Pieczątek z efektem uderzenia */
.rk-doc-stamp {
    transform-origin: center;
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.state-fail .rk-doc-stamp-fail {
    opacity: 1;
    transform: scale(1) rotate(-15deg);
}
.state-fail .rk-doc-stamp-pass { 
    opacity: 0; 
    transform: scale(3) translateY(-30px); 
}

.state-pass .rk-doc-stamp-pass {
    opacity: 1;
    transform: scale(1) rotate(10deg);
}
.state-pass .rk-doc-stamp-fail { 
    opacity: 0; 
    transform: scale(3) translateY(-30px); 
}

/* Wyniki - Paragrafy prawne */
.rk-law-articles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
    max-width: 750px;
}

.rk-article-item {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border-top: 4px solid var(--rk-law-border);
    transition: all 0.4s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.state-fail .rk-article-item {
    border-top-color: var(--rk-law-danger);
    background: var(--rk-law-danger-bg);
}

.state-pass .rk-article-item {
    border-top-color: var(--rk-law-success);
    background: var(--rk-law-success-bg);
}

.rk-article-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 8px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-article-status {
    font-weight: 900;
    font-size: 14px;
    padding: 2px 8px;
    border-radius: 6px;
    background: #ffffff;
}
.state-fail .rk-article-status { color: var(--rk-law-danger); }
.state-pass .rk-article-status { color: var(--rk-law-success); }

.rk-article-desc {
    font-size: 15px;
    color: var(--rk-law-dark);
    margin: 0;
    font-weight: 600;
    line-height: 1.5;
}

/* Sekcja Tekstowa */
.rk-law-text-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-law-text-section p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-law-text);
    margin: 0 0 20px 0;
}

.rk-law-text-section p:last-child {
    margin-bottom: 0;
}

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

.rk-law-text-section a {
    color: var(--rk-law-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-law-text-section a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-law-header { padding: 30px 20px; }
    .rk-law-header h2 { font-size: 22px; }
    
    .rk-law-interactive { padding: 30px 20px; }
    .rk-law-toggle-wrapper { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-law-toggle-btn { padding: 14px; }
    
    .rk-law-articles { grid-template-columns: 1fr; gap: 15px; }
    .rk-law-text-section { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-prawo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czy projekt ogrzewania podłogowego jest wymagany przez prawo budowlane?",
    "description": "Audyt prawny instalacji HVAC. Sprawdź, dlaczego zgodnie z art. 34 Prawa Budowlanego i § 134 WT projekt techniczny OZC jest niezbędny do odbioru budynku.",
    "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-prawo",
    "name": "Wymogi Prawne i Normatywne dla Instalacji Ogrzewania Podłogowego",
    "description": "Zestawienie regulacji prawnych określających legalność i techniczne parametry odbiorowe instalacji grzewczych w nowo powstających obiektach budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "zgłoszenie zakończenia budowy ogrzewanie",
      "prawo budowlane projekt techniczny instalacji",
      "norma pn-en 12831 w podłogówce",
      "odbiór budynku z pompą ciepła"
    ],
    "measurementTechnique": "Weryfikacja zgodności parametrów projektowych (OZC) z aktami prawnymi (Prawo Budowlane, Warunki Techniczne WT 2021) na etapie odbioru kierownika budowy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Art. 34 ust. 3 pkt 3 lit. b Prawa Budowlanego: Obowiązek posiadania projektu technicznego z rozwiązaniami instalacyjnymi.",
        "Warunki Techniczne § 134 ust. 1: Nakaz instalowania urządzeń dostosowanych do obliczeniowego zapotrzebowania na ciepło.",
        "Norma PN-EN ISO 12831: Metodologia obliczania projektowego obciążenia cieplnego (OZC)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-prawo",
    "name": "Symulator Odbioru Budowlanego Instalacji",
    "description": "Interaktywne narzędzie audytowe demonstrujące konsekwencje braku dokumentacji projektowej w zderzeniu z wymogami Prawa Budowlanego podczas urzędowego odbioru budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-law-container">
    <div class="rk-law-header">
        <h2>
            <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="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
                <path d="M12 8v4"></path>
                <path d="M12 16h.01"></path>
            </svg>
            Czy projekt jest wymagany przez prawo budowlane?
        </h2>
        <p>Wykonanie instalacji &#8222;z pamięci&#8221; to nie tylko błąd techniczny, ale również bezpośrednie złamanie obowiązujących przepisów i Warunków Technicznych.</p>
    </div>

    <div class="rk-law-interactive state-fail" id="uiLawAuditPanel">
        
        <div class="rk-law-toggle-wrapper">
            <button class="rk-law-toggle-btn active" data-audit="fail" id="btnAuditFail">
                <div class="rk-law-toggle-icon"></div>
                Instalacja z pamięci (Brak OZC)
            </button>
            <button class="rk-law-toggle-btn" data-audit="pass" id="btnAuditPass">
                <div class="rk-law-toggle-icon"></div>
                Pełen projekt wykonawczy
            </button>
        </div>

        <div class="rk-law-doc-container">
            <svg class="rk-law-doc-svg" viewBox="0 0 120 150" fill="none" style="overflow: visible;">
                <path d="M15 10 L105 10 C 110 10 115 15 115 20 L115 130 C 115 135 110 140 105 140 L15 140 C 10 140 5 135 5 130 L5 20 C 5 15 10 10 15 10 Z" fill="#ffffff" stroke="var(--rk-law-border)" stroke-width="4"/>
                
                <line x1="25" y1="35" x2="65" y2="35" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                <line x1="25" y1="55" x2="95" y2="55" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="70" x2="80" y2="70" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="85" x2="95" y2="85" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="100" x2="60" y2="100" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                
                <g transform="translate(60, 85)">
                    <g class="rk-doc-stamp rk-doc-stamp-fail">
                        <rect x="-45" y="-18" width="90" height="36" fill="#ffffff" stroke="var(--rk-law-danger)" stroke-width="4" rx="4"/>
                        <text x="0" y="6" font-family="Arial" font-size="13" font-weight="900" fill="var(--rk-law-danger)" text-anchor="middle">ODRZUCONE</text>
                    </g>

                    <g class="rk-doc-stamp rk-doc-stamp-pass">
                        <rect x="-50" y="-18" width="100" height="36" fill="#ffffff" stroke="var(--rk-law-success)" stroke-width="4" rx="4"/>
                        <text x="0" y="6" font-family="Arial" font-size="12" font-weight="900" fill="var(--rk-law-success)" text-anchor="middle">ZGODNOŚĆ WT</text>
                    </g>
                </g>
            </svg>
        </div>

        <div class="rk-law-articles">
            <div class="rk-article-item">
                <div class="rk-article-title">
                    Prawo Budowlane Art. 34
                    <span class="rk-article-status" id="txtStatusPB">NARUSZONY</span>
                </div>
                <p class="rk-article-desc">Wymóg posiadania projektu technicznego z wliczonymi rozwiązaniami instalacyjnymi budynku.</p>
            </div>
            <div class="rk-article-item">
                <div class="rk-article-title">
                    Warunki Techniczne § 134
                    <span class="rk-article-status" id="txtStatusWT">NARUSZONY</span>
                </div>
                <p class="rk-article-desc">Wydajność urządzeń grzewczych musi być ściśle dostosowana do obliczeniowego OZC.</p>
            </div>
        </div>

    </div>

    <div class="rk-law-text-section">
        <p>
            Zgodnie z <strong>art. 34 ust. 3 pkt 3 lit. b ustawy Prawo Budowlane</strong>, obiekt budowlany musi posiadać projekt techniczny zawierający m.in. projektowane rozwiązania instalacyjne. Oznacza to, że charakterystyka energetyczna i obliczeniowe obciążenie cieplne budynku według normy <strong><a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN ISO 12831</a></strong> są integralną częścią dokumentacji niezbędnej do prawidłowego zgłoszenia zakończenia budowy u Powiatowego Inspektora Nadzoru Budowlanego.
        </p>
        <p>
            Instalacja grzewcza wykonana bez precyzyjnych obliczeń inżynierskich bezpośrednio łamie <strong>rozporządzenie Ministra Infrastruktury w sprawie warunków technicznych</strong>, jakim powinny odpowiadać budynki i ich usytuowanie (§ 134 ust. 1). Przepis ten jednoznacznie nakazuje instalowanie urządzeń o wydajności dostosowanej do obliczeniowego zapotrzebowania na ciepło.
        </p>
        <p>
            Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy projekt instalacji ogrzewania podłogowego jest potrzebny</a>, pamiętaj: decydując się na montaż w systemie &#8222;zróbmy to na oko&#8221;, zmuszasz kierownika budowy do poświadczenia nieprawdy w dzienniku budowy, a w przypadku audytu związanego z programami dotacyjnymi – ryzykujesz nakaz zwrotu wypłaconych środków z powodu niespełnienia kryteriów <strong>Warunków Technicznych (WT 2021)</strong>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnFail = document.getElementById('btnAuditFail');
    const btnPass = document.getElementById('btnAuditPass');
    const uiPanel = document.getElementById('uiLawAuditPanel');
    
    const txtStatusPB = document.getElementById('txtStatusPB');
    const txtStatusWT = document.getElementById('txtStatusWT');

    function setAuditState(state) {
        if (state === 'fail') {
            btnFail.classList.add('active');
            btnPass.classList.remove('active');
            
            uiPanel.classList.remove('state-pass');
            uiPanel.classList.add('state-fail');
            
            txtStatusPB.textContent = 'NARUSZONY';
            txtStatusWT.textContent = 'NARUSZONY';
        } else {
            btnPass.classList.add('active');
            btnFail.classList.remove('active');
            
            uiPanel.classList.remove('state-fail');
            uiPanel.classList.add('state-pass');
            
            txtStatusPB.textContent = 'ZGODNY';
            txtStatusWT.textContent = 'ZGODNY';
        }
    }

    btnFail.addEventListener('click', () => setAuditState('fail'));
    btnPass.addEventListener('click', () => setAuditState('pass'));
});
</script>



<style>
:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-primary: #0284c7;
    --rk-roi-bg: #ffffff;
    --rk-roi-surface: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-danger: #ef4444;
    --rk-roi-danger-light: #fef2f2;
    --rk-roi-success: #10b981;
    --rk-roi-success-light: #ecfdf5;
}

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

/* Nagłówek */
.rk-roi-header {
    padding: 40px 50px 30px;
    background: var(--rk-roi-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-roi-success);
}

.rk-roi-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-roi-header h2 svg {
    color: var(--rk-roi-success);
    flex-shrink: 0;
}

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

/* Interaktywny Panel */
.rk-roi-interactive {
    padding: 40px 50px;
    background: var(--rk-roi-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Switcher / Toggle */
.rk-roi-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 40px;
    width: 100%;
    max-width: 600px;
    position: relative;
}

.rk-roi-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-roi-toggle-btn.active[data-state="danger"] {
    color: var(--rk-roi-danger);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-roi-toggle-btn.active[data-state="success"] {
    color: var(--rk-roi-success);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Karty danych */
.rk-roi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    width: 100%;
}

.rk-roi-card {
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-roi-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--rk-roi-border);
    transition: background 0.4s;
}

.rk-roi-card.state-danger {
    border-color: #fca5a5;
    background: var(--rk-roi-danger-light);
}
.rk-roi-card.state-danger::before { background: var(--rk-roi-danger); }

.rk-roi-card.state-success {
    border-color: #6ee7b7;
    background: var(--rk-roi-success-light);
}
.rk-roi-card.state-success::before { background: var(--rk-roi-success); }

.rk-roi-card-title {
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-roi-card-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    margin: 0;
    transition: color 0.3s;
}

.state-danger .rk-roi-card-val { color: var(--rk-roi-danger); }
.state-success .rk-roi-card-val { color: var(--rk-roi-success); }

/* Tekst i Wyjaśnienia */
.rk-roi-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-roi-border);
}

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

.rk-roi-content p:last-child {
    margin-bottom: 0;
}

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

.rk-roi-content a {
    color: var(--rk-roi-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-roi-content a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

.rk-roi-highlight-box {
    background: var(--rk-roi-surface);
    border-radius: 12px;
    padding: 20px;
    margin: 25px 0;
    display: flex;
    align-items: center;
    gap: 20px;
    border: 1px solid var(--rk-roi-border);
}

.rk-roi-highlight-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-roi-success);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-roi-highlight-text {
    margin: 0 !important;
    font-size: 15px !important;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-roi-header, .rk-roi-interactive, .rk-roi-content { padding: 30px 20px; }
    .rk-roi-header h2 { font-size: 24px; }
    
    .rk-roi-toggle-wrapper { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-roi-toggle-btn { padding: 14px; }
    
    .rk-roi-grid { grid-template-columns: 1fr; }
    .rk-roi-highlight-box { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Ile kosztuje projekt ogrzewania podłogowego i dlaczego inwestycja zwraca się w pierwszym sezonie?",
    "description": "Zrozum opłacalność inżynieryjnego projektu OZC. Sprawdź interaktywne porównanie kosztów materiałowych, zużycia rur i temperatury zasilania dla domu 150m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-koszty",
    "name": "Analiza zwrotu z inwestycji (ROI) w projekt ogrzewania płaszczyznowego",
    "description": "Szczegółowa macierz porównawcza parametrów kosztowych i technicznych instalacji wykonanej 'na oko' względem instalacji zoptymalizowanej inżyniersko dla budynku 150 m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "ile kosztuje projekt ogrzewania podłogowego",
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "maksymalna temperatura zasilania podłogówki",
      "rotametr wskaźnik przepływu ogrzewania",
      "koszty materiałów instalacji grzewczej"
    ],
    "measurementTechnique": "Porównanie kosztorysu powykonawczego (zużycie rury PEX w mb) oraz parametrów hydraulicznych na podstawie audytu zrównoważenia przepływów na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt projektu: 350 PLN – 900 PLN, zwraca się w 3 do 6 miesięcy sezonu grzewczego.",
        "Oszczędność materiałowa: Zmniejszenie zużycia rur PEX o 150–250 mb (z 1100 mb na 820-880 mb dla 150 m2).",
        "Zysk efektywności energetycznej: Spadek zużycia energii przez pompę ciepła o 15-22% rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-koszty",
    "name": "Interaktywny Kalkulator Zysków Inwestycyjnych",
    "description": "Narzędzie typu 'Toggle' (przełącznik) demonstrujące kolosalne straty ukryte w montażu bezdokumentacyjnym w opozycji do twardych danych z optymalizacji.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-roi-container" id="roi-kalkulator-app">
    <div class="rk-roi-header">
        <h2>
            <svg width="28" height="28" 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>
            Dlaczego projekt ogrzewania to nie wydatek, a inwestycja?
        </h2>
        <p>Zobacz różnicę w materiałach i kosztach eksploatacji dla przykładowego domu o powierzchni 150 m².</p>
    </div>

    <div class="rk-roi-interactive">
        
        <div class="rk-roi-toggle-wrapper" id="roiToggle">
            <button class="rk-roi-toggle-btn" data-state="danger" id="btnDanger">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><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 projektu)
            </button>
            <button class="rk-roi-toggle-btn active" data-state="success" id="btnSuccess">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Projekt Inżynierski OZC
            </button>
        </div>

        <div class="rk-roi-grid">
            
            <div class="rk-roi-card state-success" id="cardSpacing">
                <p class="rk-roi-card-title">Średni rozstaw rur</p>
                <p class="rk-roi-card-val" id="valSpacing">Zmienny: 10, 15, 20 cm</p>
            </div>

            <div class="rk-roi-card state-success" id="cardPipe">
                <p class="rk-roi-card-title">Zużycie rury na 150 m²</p>
                <p class="rk-roi-card-val" id="valPipe">820 &#8211; 880 m.b.</p>
            </div>

            <div class="rk-roi-card state-success" id="cardTemp">
                <p class="rk-roi-card-title">Wymagana Temp. Zasilania (Tz)</p>
                <p class="rk-roi-card-val" id="valTemp">32°C &#8211; 35°C</p>
            </div>

            <div class="rk-roi-card state-success" id="cardCost">
                <p class="rk-roi-card-title">Startowe zużycie materiałów</p>
                <p class="rk-roi-card-val" id="valCost">Optymalne, wg normy</p>
            </div>

        </div>

    </div>

    <div class="rk-roi-content">
        <p>
            Profesjonalny, rzetelny projekt instalacji bazujący na pełnym OZC (Obliczeniowym Zapotrzebowaniu na Ciepło) <strong>kosztuje średnio od 350 PLN do 900 PLN</strong> dla standardowego domu jednorodzinnego. Zastanawiając się, <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje projekt ogrzewania podłogowego</a>, musisz spojrzeć na to przez pryzmat natychmiastowego zwrotu.
        </p>

        <div class="rk-roi-highlight-box">
            <div class="rk-roi-highlight-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>
            <p class="rk-roi-highlight-text">
                <strong>Szybki zwrot (ROI):</strong> Inwestycja ta zwraca się całkowicie w ciągu pierwszych 3 do 6 miesięcy sezonu grzewczego. Wynika to z drastycznej redukcji kosztów zakupu nadmiarowych rur (często o 150–250 metrów) oraz spadku zużycia energii przez sprężarkę pompy ciepła o 15% do 22% w skali roku.
            </p>
        </div>

        <p>
            Układanie rur &#8222;z głowy&#8221; zawsze kończy się przewymiarowaniem. Instalator dla bezpieczeństwa zagęszcza <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a> wszędzie co 10 cm. Generuje to kolosalne straty na zakupie materiałów (często wyższe o 1200–1800 PLN).
        </p>
        <p>
            Dodatkowo, bez obliczeń dławień hydraulicznych, brakuje wytycznych nastaw dla belek. Skutkuje to losowymi przepływami na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a>, powodując, że by dogrzać chłodniejsze pętle, zmuszeni jesteśmy podnieść <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperaturę zasilania podłogówki</a> z optymalnych 35°C do rujnujących portfel 45°C.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnDanger = document.getElementById('btnDanger');
    const btnSuccess = document.getElementById('btnSuccess');
    
    // Karty
    const cards = [
        document.getElementById('cardSpacing'),
        document.getElementById('cardPipe'),
        document.getElementById('cardTemp'),
        document.getElementById('cardCost')
    ];

    // Wartości w kartach
    const valSpacing = document.getElementById('valSpacing');
    const valPipe = document.getElementById('valPipe');
    const valTemp = document.getElementById('valTemp');
    const valCost = document.getElementById('valCost');

    // Baza danych dla stanów
    const data = {
        danger: {
            spacing: "Stały (10 cm lub 15 cm)",
            pipe: "Ponad 1100 m.b.",
            temp: "Wysoka: 42°C - 45°C",
            cost: "+ 1200 do 1800 PLN"
        },
        success: {
            spacing: "Zmienny: 10, 15, 20 cm",
            pipe: "820 - 880 m.b.",
            temp: "Niska (optymalna): 32°C - 35°C",
            cost: "Optymalne, wg normy"
        }
    };

    function switchState(state) {
        // Zmiana przycisków
        if (state === 'danger') {
            btnDanger.classList.add('active');
            btnSuccess.classList.remove('active');
        } else {
            btnSuccess.classList.add('active');
            btnDanger.classList.remove('active');
        }

        // Zmiana klas kart (kolory)
        cards.forEach(card => {
            card.classList.remove('state-danger', 'state-success');
            card.classList.add('state-' + state);
        });

        // Wstrzykiwanie danych
        valSpacing.textContent = data[state].spacing;
        valPipe.textContent = data[state].pipe;
        valTemp.textContent = data[state].temp;
        valCost.textContent = data[state].cost;
    }

    btnDanger.addEventListener('click', () => switchState('danger'));
    btnSuccess.addEventListener('click', () => switchState('success'));
});
</script>



<style>
:root {
    --rk-cop-dark: #0f172a;
    --rk-cop-primary: #0284c7;
    --rk-cop-bg: #ffffff;
    --rk-cop-surface: #f8fafc;
    --rk-cop-border: #e2e8f0;
    --rk-cop-text: #334155;
    --rk-cop-success: #10b981;
    --rk-cop-warning: #f59e0b;
    --rk-cop-danger: #ef4444;
}

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

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

.rk-cop-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Układ główny - Jedna kolumna */
.rk-cop-layout {
    display: flex;
    flex-direction: column;
    background: var(--rk-cop-bg);
}

/* Sekcja Symulatora (Góra) */
.rk-cop-sim-panel {
    padding: 40px 50px 30px 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--rk-cop-surface);
}

/* Suwak */
.rk-slider-wrapper {
    width: 100%;
    max-width: 700px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-cop-border);
    margin-bottom: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.rk-slider-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cop-dark);
    margin: 0;
}

.rk-slider-badge {
    background: var(--rk-cop-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
}

input[type=range].rk-cop-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-cop-slider:focus { outline: none; }
input[type=range].rk-cop-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    background: linear-gradient(90deg, var(--rk-cop-success) 0%, var(--rk-cop-warning) 50%, var(--rk-cop-danger) 100%);
    border-radius: 5px;
}
input[type=range].rk-cop-slider::-webkit-slider-thumb {
    height: 30px;
    width: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-cop-dark);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -10px;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
input[type=range].rk-cop-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Wyniki finansowe na żywo */
.rk-cop-results {
    width: 100%;
    max-width: 700px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

.rk-cop-stat-title {
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin: 0 0 8px 0;
}

.rk-cop-stat-val {
    font-size: 36px;
    font-weight: 900;
    margin: 0;
    transition: color 0.3s;
}

/* Sekcja Wyjaśnień (Dół) */
.rk-cop-text-panel {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-cop-border);
}

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

.rk-cop-text-panel p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-cop-text);
    margin: 0 0 20px 0;
}

.rk-cop-text-panel p strong {
    color: var(--rk-cop-dark);
}

.rk-cop-text-panel a {
    color: var(--rk-cop-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-cop-text-panel a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

.rk-alert-card {
    background: #fff5f5;
    border-left: 4px solid var(--rk-cop-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-alert-card p {
    margin: 0;
    font-size: 15px;
    color: var(--rk-cop-dark);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-cop-header { padding: 30px 20px; }
    .rk-cop-header h2 { font-size: 22px; }
    .rk-cop-sim-panel { padding: 30px 20px; }
    .rk-cop-text-panel { padding: 30px 20px; }
    .rk-cop-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-cop-stat-val { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-pompa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak brak projektu ogrzewania podłogowego niszczy efektywność pompy ciepła?",
    "description": "Zobacz, jak przewymiarowany rozstaw rur i błędna hydraulika zmuszają pompę ciepła do pracy na wysokich parametrach, drastycznie obniżając jej wskaźnik COP i podnosząc rachunki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-pompa",
    "name": "Spadek współczynnika COP pompy ciepła w funkcji temperatury zasilania",
    "description": "Zestawienie analityczne obrazujące spadek efektywności grzewczej i wzrost kosztów eksploatacyjnych na skutek braku zrównoważenia instalacji ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "niska temperatura zasilania pompy ciepła",
      "sprawność pompy ciepła podłogówka",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "koszty prądu pompy ciepła kalkulator",
      "pompa obiegowa podłogówka"
    ],
    "measurementTechnique": "Algorytm wyliczający degradację wskaźnika COP o 12.5% na każde 5°C wzrostu temperatury zasilania instalacji płaszczyznowej, sprzężony z estymacją rocznych kosztów prądu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Punkt optymalny: Temperatura zasilania 35°C (COP referencyjne, minimalne koszty).",
        "Degradacja COP: Spadek efektywności grzewczej urządzenia o 12,5% co każde dodatkowe 5°C.",
        "Wzrost oporów: Zbyt długie pętle zwiększają obciążenie pompy obiegowej i zużycie mechaniczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-pompa",
    "name": "Symulator Efektywności Pompy Ciepła (COP)",
    "description": "Narzędzie interaktywne ilustrujące wizualnie i finansowo konsekwencje nieprawidłowego wymiarowania rozstawu rur podłogówki dla sprężarki pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cop-container">
    <div class="rk-cop-header">
        <h2>
            <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 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
            </svg>
            Jak brak projektu niszczy efektywność pompy ciepła?
        </h2>
        <p>Błędny montaż wymusza drastyczne podniesienie temperatury zasilania. Zobacz na żywo, jak spadek wskaźnika COP wysysa pieniądze z Twojego portfela.</p>
    </div>

    <div class="rk-cop-layout">
        
        <div class="rk-cop-sim-panel">
            
            <div class="rk-slider-wrapper">
                <div class="rk-slider-header">
                    <p class="rk-slider-label">Wymuszone zasilanie (T<sub>z</sub>):</p>
                    <div class="rk-slider-badge" id="rkCopTempBadge">35°C</div>
                </div>
                <input type="range" class="rk-cop-slider" id="rkCopTempSlider" min="35" max="55" step="1" value="35">
            </div>

            <div class="rk-cop-results">
                <div class="rk-cop-stat-box">
                    <p class="rk-cop-stat-title">Wskaźnik COP</p>
                    <p class="rk-cop-stat-val" id="rkCopValCop" style="color: var(--rk-cop-success);">4.80</p>
                </div>
                <div class="rk-cop-stat-box">
                    <p class="rk-cop-stat-title">Roczne rachunki</p>
                    <p class="rk-cop-stat-val" id="rkCopValCost" style="color: var(--rk-cop-dark);">3000 zł</p>
                </div>
            </div>

        </div>

        <div class="rk-cop-text-panel">
            <h3>Spadek COP to ukryte koszty</h3>
            <p>
                Wykonanie instalacji bez precyzyjnych obliczeń zmusza instalatora do kompensacji błędów poprzez podniesienie krzywej grzewczej. Każde dodatkowe <strong>5°C</strong> powyżej wartości projektowej obniża współczynnik efektywności grzewczej (COP) urządzenia aż o <strong>12,5%</strong>.
            </p>
            <p>
                Zgodnie z inżynieryjną sztuką, <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania pompy ciepła</a> powinna wynosić <strong>35°C</strong> przy powrocie 30°C (różnica temperatur ΔT = 5K). Tylko to pozwala nowoczesnym sprężarkom na bezstresową pracę w optymalnym punkcie modulacji.
            </p>
            
            <div class="rk-alert-card">
                <p><strong>Zabójcze opory hydrauliczne:</strong> Gdy instalator układa rury bez znajomości strat ciepła, zagęszcza rozstaw lub rozciąga pętle poza bezpieczny limit. Skutkuje to drastycznym oporem wody, zmuszając <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> do pracy na najwyższym biegu, co podnosi pobór prądu i niszczy jej podzespoły.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Używamy unikalnych ID dla tego kontenera
    const slider = document.getElementById('rkCopTempSlider');
    const badge = document.getElementById('rkCopTempBadge');
    const valCop = document.getElementById('rkCopValCop');
    const valCost = document.getElementById('rkCopValCost');

    // Parametry referencyjne
    const baseTemp = 35;
    const baseCOP = 4.80;
    const baseCost = 3000;

    function updateCOP() {
        if (!slider || !badge || !valCop || !valCost) return; // Zabezpieczenie przed brakiem elementu

        const currentTemp = parseInt(slider.value);
        badge.textContent = currentTemp + '°C';

        // Algorytm spadku COP: -12.5% co każde 5 stopni
        const steps = (currentTemp - baseTemp) / 5;
        const currentCOP = baseCOP * Math.pow(0.875, steps);
        
        // Wyliczenie rachunku
        const currentCost = baseCost * (baseCOP / currentCOP);

        // Aktualizacja UI
        valCop.textContent = currentCOP.toFixed(2);
        valCost.textContent = Math.round(currentCost) + ' zł';

        // Zmiana kolorystyki w zależności od obciążenia
        if (currentTemp <= 38) {
            valCop.style.color = 'var(--rk-cop-success)';
            valCost.style.color = 'var(--rk-cop-dark)';
        } else if (currentTemp > 38 && currentTemp <= 45) {
            valCop.style.color = 'var(--rk-cop-warning)';
            valCost.style.color = 'var(--rk-cop-warning)';
        } else {
            valCop.style.color = 'var(--rk-cop-danger)';
            valCost.style.color = 'var(--rk-cop-danger)';
        }
    }

    if (slider) {
        slider.addEventListener('input', updateCOP);
        // Inicjalizacja przy załadowaniu
        updateCOP();
    }
});
</script>



<style>
:root {
    --rk-opory-dark: #0f172a;
    --rk-opory-primary: #0284c7;
    --rk-opory-bg: #ffffff;
    --rk-opory-border: #e2e8f0;
    --rk-opory-text: #334155;
    --rk-opory-danger: #ef4444;
    --rk-opory-danger-bg: #fef2f2;
    --rk-opory-warning: #f59e0b;
    --rk-opory-success: #10b981;
}

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

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

.rk-opory-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-opory-header h2 svg {
    color: var(--rk-opory-primary);
}

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

/* Główny układ - Jedna Kolumna */
.rk-opory-layout {
    display: flex;
    flex-direction: column;
    background: var(--rk-opory-bg);
}

/* Sekcja Symulatora (Góra) */
.rk-opory-sim-panel {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Animowany Wskaźnik (Gauge) */
.rk-gauge-wrapper {
    position: relative;
    width: 240px;
    height: 130px;
    margin-bottom: 30px;
}

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

.rk-gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 12;
    stroke-linecap: round;
}

.rk-gauge-val {
    fill: none;
    stroke: var(--rk-opory-success);
    stroke-width: 12;
    stroke-linecap: round;
    stroke-dasharray: 283;
    stroke-dashoffset: 283;
    transition: stroke-dashoffset 0.4s ease, stroke 0.4s ease;
}

.rk-gauge-text {
    position: absolute;
    bottom: -15px;
    left: 0;
    width: 100%;
    text-align: center;
}

.rk-gauge-kpa {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    line-height: 1;
    margin: 0;
}

.rk-gauge-label {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin: 6px 0 0 0;
}

/* Stan przepływu rury */
.rk-pipe-status {
    width: 100%;
    max-width: 600px;
    height: 14px;
    background: #e2e8f0;
    border-radius: 7px;
    margin-bottom: 40px;
    position: relative;
    overflow: hidden;
}

.rk-pipe-water {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: repeating-linear-gradient(
        45deg,
        var(--rk-opory-primary),
        var(--rk-opory-primary) 12px,
        #38bdf8 12px,
        #38bdf8 24px
    );
    background-size: 34px 100%;
    animation: flowPipe 1s linear infinite;
    transition: opacity 0.3s;
}

@keyframes flowPipe {
    0% { background-position: 0 0; }
    100% { background-position: 34px 0; }
}

/* Sekcja Suwaka */
.rk-slider-box {
    width: 100%;
    max-width: 600px;
    background: #f8fafc;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-opory-border);
}

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

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

.rk-slider-val-badge {
    background: var(--rk-opory-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
}

input[type=range].rk-custom-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-custom-slider:focus { outline: none; }

input[type=range].rk-custom-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    background: #cbd5e1;
    border-radius: 5px;
}

input[type=range].rk-custom-slider::-webkit-slider-thumb {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-opory-primary);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

input[type=range].rk-custom-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-alert-msg {
    margin-top: 20px;
    padding: 12px;
    background: var(--rk-opory-danger-bg);
    border: 1px solid #fecaca;
    border-radius: 8px;
    color: var(--rk-opory-danger);
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    display: none;
}

/* Sekcja Wyliczeń (Dół) */
.rk-opory-math-panel {
    padding: 0 40px 40px 40px;
}

.rk-opory-math-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    margin: 0 0 20px 0;
    border-top: 1px solid var(--rk-opory-border);
    padding-top: 40px;
}

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

.rk-math-formula-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-opory-primary);
    padding: 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
}

.rk-math-main-eq {
    font-family: 'Courier New', Courier, monospace;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    margin: 0 0 20px 0;
    text-align: center;
    background: #ffffff;
    padding: 12px;
    border: 1px solid var(--rk-opory-border);
    border-radius: 8px;
}

.rk-math-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-math-list li {
    font-size: 15px;
    padding-left: 20px;
    position: relative;
    color: var(--rk-opory-text);
}

.rk-math-list li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--rk-opory-primary);
    font-weight: 900;
}

.rk-math-highlight {
    font-weight: 800;
    color: var(--rk-opory-dark);
}

.rk-math-danger {
    color: var(--rk-opory-danger);
    font-weight: 900;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-opory-header { padding: 30px 20px; }
    .rk-opory-header h2 { font-size: 24px; }
    .rk-opory-sim-panel, .rk-opory-math-panel { padding: 25px 20px; }
    .rk-opory-math-panel h3 { padding-top: 30px; }
    .rk-math-list { grid-template-columns: 1fr; }
    .rk-gauge-wrapper { width: 200px; height: 110px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-opory",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak za długa pętla podłogówki blokuje przepływ wody i jak tego uniknąć?",
    "description": "Zrozum fizykę instalacji. Sprawdź inżynieryjne wyliczenia oporów hydraulicznych i przetestuj interaktywny symulator blokady przepływu wody w rurach PEX.",
    "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-opory",
    "name": "Parametry oporów hydraulicznych rury grzewczej 16 mm",
    "description": "Zestawienie obliczeniowe obrazujące przyrost strat ciśnienia w funkcji długości pętli ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "za długa pętla podłogówki",
      "opory hydrauliczne podłogówki",
      "obliczenia przepływu i strat ciśnienia",
      "zrównoważenie hydrauliczne rotametry"
    ],
    "measurementTechnique": "Algorytmiczne wyznaczanie strat ciśnienia z zastosowaniem fizycznego wzoru na ciepło właściwe wody i przepływ masowy w korelacji z oporem jednostkowym 180 Pa/m.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit normatywny: 120 metrów bieżących dla przewodu PEX 16mm (wraz z dobiegiem).",
        "Przepływ graniczny: Opór jednostkowy na poziomie ok. 180 Pa/m przy przepływie 3,4 l/min.",
        "Blokada hydrauliczna: Przekroczenie 120m generuje opory liniowe przekraczające 25-30 kPa, zatrzymując przepływ na rotametrach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-opory",
    "name": "Symulator Oporów Hydraulicznych Pętli",
    "description": "Interaktywny panel wizualizujący na wirtualnym manometrze moment blokady przepływu wody w przypadku błędnego wytyczenia zbyt długiej pętli grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opory-container">
    <div class="rk-opory-header">
        <h2>
            <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="M22 12h-4l-3 9L9 3l-3 9H2"></path>
            </svg>
            Jak za długa pętla blokuje instalację?
        </h2>
        <p>Maksymalna dopuszczalna długość pojedynczej pętli dla rury 16 mm wynosi dokładnie 120 mb. Zobacz, co się stanie na manometrze, gdy przekroczysz tę wartość.</p>
    </div>

    <div class="rk-opory-layout">
        
        <div class="rk-opory-sim-panel">
            
            <div class="rk-gauge-wrapper">
                <svg class="rk-gauge-svg" viewBox="0 0 200 100">
                    <path class="rk-gauge-bg" d="M 10 90 A 90 90 0 0 1 190 90"></path>
                    <path class="rk-gauge-val" id="svgGaugeVal" d="M 10 90 A 90 90 0 0 1 190 90"></path>
                </svg>
                <div class="rk-gauge-text">
                    <p class="rk-gauge-kpa" id="uiPressureVal">10.8</p>
                    <p class="rk-gauge-label">Strata (kPa)</p>
                </div>
            </div>

            <div class="rk-pipe-status" id="uiPipeFlow">
                <div class="rk-pipe-water" id="uiPipeWater"></div>
            </div>

            <div class="rk-slider-box">
                <div class="rk-slider-header">
                    <p class="rk-slider-title">Zaprojektowana długość pętli:</p>
                    <div class="rk-slider-val-badge" id="uiLengthBadge">60 mb</div>
                </div>
                <input type="range" class="rk-custom-slider" id="sliderLength" min="60" max="160" step="1" value="60">
                <div class="rk-alert-msg" id="uiAlertMsg">
                    UWAGA! Przepływ całkowicie zablokowany. Opory przekraczają wydolność standardowej pompy obiegowej.
                </div>
            </div>

        </div>

        <div class="rk-opory-math-panel">
            <h3>Inżynieryjne wyliczenie strat ciśnienia</h3>
            <p class="rk-math-text">
                W profesjonalnym projekcie dąży się do tego, aby długości poszczególnych pętli w obrębie jednego rozdzielacza były zbliżone do siebie z tolerancją do 10-15%. Przekroczenie limitu generuje potężne opory, co uniemożliwia hydrauliczne zrównoważenie instalacji na rotametrach.
            </p>
            
            <div class="rk-math-formula-box">
                <div class="rk-math-main-eq">Q = m &times; c<sub>w</sub> &times; &Delta;T</div>
                <ul class="rk-math-list">
                    <li>Zapotrzebowanie pokoju: <span class="rk-math-highlight">Q = 1200 W</span></li>
                    <li>Zakładana różnica temp.: <span class="rk-math-highlight">&Delta;T = 5 K</span></li>
                    <li>Ciepło właściwe wody: <span class="rk-math-highlight">c<sub>w</sub> = 4186 J/(kg&middot;K)</span></li>
                    <li>Wymagany przepływ masowy (m): <span class="rk-math-highlight">206 kg/h</span> (ok. 3,4 l/min)</li>
                </ul>
            </div>

            <p class="rk-math-text">
                Dla standardowej rury 16x2 mm przy takim przepływie, opór jednostkowy wynosi około <strong>180 Pa/m</strong>.
            </p>
            
            <p class="rk-math-text">
                Dla granicznej pętli 120 m łączna strata ciśnienia to:<br>
                <span class="rk-math-highlight" style="font-size: 18px;">120 &times; 180 = 21600 Pa = <span class="rk-math-danger">21,6 kPa</span></span>
            </p>
            <p class="rk-math-text">
                Otrzymana wartość to fizyczna granica tłoczenia dla standardowych pomp obiegowych wbudowanych w domowe urządzenia grzewcze. Ułożenie pętli o długości 150-160 mb generuje opory liniowe przekraczające 25-30 kPa, co całkowicie blokuje swobodny przepływ wody.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('sliderLength');
    const badge = document.getElementById('uiLengthBadge');
    const pressureVal = document.getElementById('uiPressureVal');
    const gaugePath = document.getElementById('svgGaugeVal');
    const pipeWater = document.getElementById('uiPipeWater');
    const alertMsg = document.getElementById('uiAlertMsg');

    // Całkowity obwód ścieżki (dla promienia 90) to ok 283
    const maxDash = 283; 

    function updateSimulator() {
        const length = parseFloat(slider.value);
        badge.textContent = length + ' mb';

        // Wyliczenie: Długość * 180 Pa / 1000 = kPa
        const kpa = (length * 180) / 1000;
        pressureVal.textContent = kpa.toFixed(1);

        // Skalowanie manometru (zakres od 60m do 160m)
        const percentage = (length - 60) / (160 - 60); 
        const offset = maxDash - (percentage * maxDash);
        gaugePath.style.strokeDashoffset = offset;

        // Logika ostrzegawcza
        if (length > 120) {
            gaugePath.style.stroke = 'var(--rk-opory-danger)';
            pipeWater.style.opacity = '0.1'; // Brak przepływu
            alertMsg.style.display = 'block';
            pipeWater.style.animation = 'none';
        } else {
            const safePercentage = length / 120;
            
            // Kolorystyka wskaźnika
            if (length > 100) {
                gaugePath.style.stroke = 'var(--rk-opory-warning)';
            } else {
                gaugePath.style.stroke = 'var(--rk-opory-success)';
            }
            
            pipeWater.style.opacity = '1';
            alertMsg.style.display = 'none';
            
            // Szybkość animacji zwalnia w miarę wzrostu oporów
            const animDuration = 0.5 + (safePercentage * 1.5);
            pipeWater.style.animation = `flowPipe ${animDuration}s linear infinite`;
        }
    }

    slider.addEventListener('input', updateSimulator);
    
    // Inicjalizacja przy pierwszym załadowaniu
    updateSimulator();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-primary: #0284c7;
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-danger: #ef4444;
    --rk-calc-success: #10b981;
    --rk-calc-warning: #f59e0b;
}

.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(2, 132, 199, 0.1);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

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

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

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

/* UI Kalkulatora */
.rk-calc-ui {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-calc-bg);
}

/* Sekcja Inputów */
.rk-calc-inputs {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-calc-border);
}

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

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

.rk-calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    margin-bottom: 10px;
}

.rk-calc-value-badge {
    color: var(--rk-calc-primary);
    background: #f0f9ff;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 14px;
}

input[type=range].rk-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-slider:focus {
    outline: none;
}

input[type=range].rk-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #e2e8f0;
    border-radius: 4px;
    border: 1px solid #cbd5e1;
}

input[type=range].rk-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--rk-calc-primary);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

input[type=range].rk-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Sekcja Wyników */
.rk-calc-outputs {
    padding: 40px;
    background: var(--rk-calc-surface);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 15px;
}

.rk-out-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-out-title {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin: 0;
}

.rk-out-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 5px 0 0 0;
}

/* Główny wynik - Długość pętli */
.rk-out-primary {
    background: var(--rk-calc-primary);
    color: #ffffff;
    border: none;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-out-primary .rk-out-title {
    color: #bae6fd;
}

.rk-out-primary .rk-out-val {
    color: #ffffff;
    font-size: 38px;
    margin-bottom: 5px;
}

.rk-out-primary::after {
    content: 'm.b.';
    position: absolute;
    right: 20px;
    top: 20px;
    font-size: 24px;
    font-weight: 800;
    opacity: 0.3;
}

/* Stan Zmiany - Wymagany podział */
.rk-out-primary.is-warning {
    background: var(--rk-calc-danger);
}

.rk-out-primary.is-warning .rk-out-title {
    color: #fca5a5;
}

.rk-division-info {
    display: none;
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.2);
}

.rk-out-primary.is-warning .rk-division-info {
    display: block;
}

.rk-division-text {
    font-size: 15px;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-division-text span {
    background: #ffffff;
    color: var(--rk-calc-danger);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 16px;
}

/* Sekcja Algorytmu (Tekst) */
.rk-calc-text-section {
    padding: 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-calc-border);
}

.rk-calc-text-section h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
}

.rk-step {
    margin-bottom: 20px;
    padding-left: 20px;
    border-left: 3px solid var(--rk-calc-primary);
}

.rk-step h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 8px 0;
}

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

.rk-formula {
    display: inline-block;
    background: #f1f5f9;
    padding: 4px 10px;
    border-radius: 6px;
    font-family: monospace;
    font-weight: 700;
    color: var(--rk-calc-primary);
    border: 1px solid #e2e8f0;
    margin-top: 8px;
}

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

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

.rk-calc-cta p {
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-calc-primary);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none !important;
    transition: all 0.3s;
}

.rk-btn-action:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-calc-header { padding: 25px 20px; }
    .rk-calc-header h2 { font-size: 22px; }
    
    .rk-calc-ui { grid-template-columns: 1fr; }
    .rk-calc-inputs, .rk-calc-outputs, .rk-calc-text-section, .rk-calc-cta { padding: 25px 20px; }
    
    .rk-calc-inputs { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    
    .rk-out-primary .rk-out-val { font-size: 32px; }
    .rk-out-primary::after { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Algorytm kalkulatora doboru pętli i rozstawu rur ogrzewania podłogowego",
    "description": "Zweryfikuj poprawność instalacji. Inżynierski kalkulator obliczający optymalny rozstaw rur, długość pętli i konieczność jej podziału ze względów hydraulicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-kalkulator",
    "name": "Parametry brzegowe pętli ogrzewania podłogowego według PN-EN 1264",
    "description": "Zbiór reguł matematycznych określających gęstość strumienia cieplnego, bezpieczną długość przewodu PEX 16mm oraz wymogi dotyczące podziału pętli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "jak gęsto układać rury podłogówki",
      "kalkulator długości rur ogrzewania",
      "obliczenia OZC dla podłogówki",
      "podział pętli ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kalkulacja inżynierska korelująca OZC z powierzchnią grzewczą. Powyżej limitu hydraulicznego (120m) następuje matematyczny podział na wymaganą liczbę mniejszych pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dobór rozstawu: Zależny od gęstości q (W/m2). Powyżej 80 W/m2 - 10 cm, 50-80 W/m2 - 15 cm, poniżej 50 W/m2 - 20 cm.",
        "Limit hydrauliczny: Ostrzeżenie i rekomendacja podziału przy przekroczeniu długości pętli 120 mb.",
        "Optymalizacja ilości obwodów: Kalkulacja wymaganej liczby sekcji rozdzielacza do obsługi konkretnego pomieszczenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-kalkulator",
    "name": "Inżynierski Kalkulator Podziału Pętli Grzewczych",
    "description": "Dynamiczne narzędzie symulacyjne do wyliczania długości rur ogrzewania płaszczyznowego wraz ze zautomatyzowanym modułem sugerującym wymaganą ilość pętli.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-calc-container">
    <div class="rk-calc-header">
        <h2>Algorytm i kalkulator doboru pętli ogrzewania podłogowego</h2>
        <p>Zweryfikuj poprawność założeń instalacyjnych na podstawie inżynieryjnych wzorów fizyki budowli.</p>
    </div>

    <div class="rk-calc-ui">
        <div class="rk-calc-inputs">
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Powierzchnia grzejna pokoju</span>
                    <span class="rk-calc-value-badge" id="valArea">15 m&sup2;</span>
                </div>
                <input type="range" class="rk-slider" id="inArea" min="5" max="50" step="1" value="15">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Projektowe OZC pokoju</span>
                    <span class="rk-calc-value-badge" id="valOzc">1000 W</span>
                </div>
                <input type="range" class="rk-slider" id="inOzc" min="200" max="4500" step="50" value="1000">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Długość dobiegu do rozdzielacza</span>
                    <span class="rk-calc-value-badge" id="valDobieg">5 m</span>
                </div>
                <input type="range" class="rk-slider" id="inDobieg" min="1" max="25" step="1" value="5">
            </div>
        </div>

        <div class="rk-calc-outputs">
            <div class="rk-out-box">
                <div>
                    <p class="rk-out-title">Gęstość strumienia (q)</p>
                    <p class="rk-out-val" id="outFlux">76.7 W/m&sup2;</p>
                </div>
            </div>

            <div class="rk-out-box">
                <div>
                    <p class="rk-out-title">Zalecany rozstaw rur (b)</p>
                    <p class="rk-out-val" id="outSpacing">15 cm</p>
                </div>
            </div>

            <div class="rk-out-box rk-out-primary" id="boxLength">
                <p class="rk-out-title">Całkowita długość instalacji w pokoju</p>
                <p class="rk-out-val" id="outLength">110.5 m</p>
                
                <div class="rk-division-info" id="alertDivision">
                    <p class="rk-division-text">
                        Podział na: <span id="outLoopsCount">2 pętle</span> (śr. <span id="outSingleLoopLen">65</span> m/pętlę)
                    </p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-calc-text-section">
        <h3>Procedura obliczeniowa krok po kroku:</h3>
        
        <div class="rk-step">
            <h4>Krok 1: Skorygowane obciążenie cieplne (Q<sub>obl</sub>)</h4>
            <p>Wyznaczamy realne zapotrzebowanie na moc grzewczą, uwzględniając sprawność systemu i straty w dół do gruntu. Współczynnik 1.15 to inżynierski zapas bezpieczeństwa.<br>
            <span class="rk-formula">Q<sub>obl</sub> = Q<sub>OZC</sub> &times; 1,15</span></p>
        </div>

        <div class="rk-step">
            <h4>Krok 2: Wymagana gęstość strumienia cieplnego (q)</h4>
            <p>Dzielimy moc przez powierzchnię. Według normy PN-EN 1264 maksymalna bezpieczna gęstość strumienia dla strefy stałego przebywania ludzi wynosi 100 W/m&sup2; (temperatura posadzki 29&deg;C).<br>
            <span class="rk-formula">q = Q<sub>obl</sub> / Powierzchnia [W/m&sup2;]</span></p>
        </div>

        <div class="rk-step">
            <h4>Krok 3: Wybór rozstawu rur (b)</h4>
            <p>Na podstawie gęstości strumienia dobieramy gęstość ułożenia rury:<br>
            &bull; <strong>q &gt; 80 W/m&sup2;</strong> &rarr; rozstaw <strong>10 cm</strong> (zapotrzebowanie: 10 m.b./m&sup2;)<br>
            &bull; <strong>q = 50 - 80 W/m&sup2;</strong> &rarr; rozstaw <strong>15 cm</strong> (zapotrzebowanie: 6,7 m.b./m&sup2;)<br>
            &bull; <strong>q &lt; 50 W/m&sup2;</strong> &rarr; rozstaw <strong>20 cm</strong> (zapotrzebowanie: 5 m.b./m&sup2;)</p>
        </div>

        <div class="rk-step">
            <h4>Krok 4: Całkowita długość rur i podział na pętle</h4>
            <p>Obliczamy całkowitą długość rury, uwzględniając dobiegi do rozdzielacza. Zgodnie z inżynierską sztuką, jeśli wynik przekracza bezpieczną granicę 100-120 mb, algorytm wymusza podział pomieszczenia na adekwatną liczbę mniejszych obwodów, aby zachować poprawne parametry hydrauliczne.<br>
            <span class="rk-formula">L = (Powierzchnia &times; Zapotrzebowanie/m&sup2;) + (Dobieg &times; 2)</span></p>
        </div>
    </div>

    <div class="rk-calc-cta">
        <h3>Nie zostawiaj hydrauliki przypadkowi</h3>
        <p>Błędnie dobrany rozstaw zablokuje przepływ i drastycznie podniesie rachunki za ogrzewanie. Zamów precyzyjne opracowanie inżynierskie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-action">
            ZAMÓW PROJEKT PODŁOGÓWKI
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje do suwaków i etykiet
    const inArea = document.getElementById('inArea');
    const valArea = document.getElementById('valArea');
    
    const inOzc = document.getElementById('inOzc');
    const valOzc = document.getElementById('valOzc');
    
    const inDobieg = document.getElementById('inDobieg');
    const valDobieg = document.getElementById('valDobieg');

    // Referencje do wyników
    const outFlux = document.getElementById('outFlux');
    const outSpacing = document.getElementById('outSpacing');
    const outLength = document.getElementById('outLength');
    
    const boxLength = document.getElementById('boxLength');
    const outLoopsCount = document.getElementById('outLoopsCount');
    const outSingleLoopLen = document.getElementById('outSingleLoopLen');

    // Główna funkcja licząca
    function calculate() {
        const area = parseFloat(inArea.value);
        const ozc = parseFloat(inOzc.value);
        const dobieg = parseFloat(inDobieg.value);

        // Krok 1 & 2
        const q_obl = ozc * 1.15;
        const q = q_obl / area;

        // Krok 3
        let spacing = 0;
        let factor = 0; // ile metrów rury na 1 m2

        if (q > 80) {
            spacing = 10;
            factor = 10;
        } else if (q >= 50 && q <= 80) {
            spacing = 15;
            factor = 6.7;
        } else {
            spacing = 20;
            factor = 5.0;
        }

        // Krok 4: Całkowita długość z dobiegami
        const totalLength = (area * factor) + (dobieg * 2);
        
        // Logika podziału na pętle (Limit 110m na jedną pętlę roboczą jako bezpieczny bufor)
        const safeLimit = 110; 
        const loopsNeeded = Math.ceil(totalLength / safeLimit);

        // Aktualizacja DOM
        outFlux.innerHTML = q.toFixed(1) + ' W/m&sup2;';
        outSpacing.innerHTML = spacing + ' cm';
        outLength.innerHTML = totalLength.toFixed(1);

        // Obsługa stanu z podziałem (wymagane > 1 pętli)
        if (loopsNeeded > 1) {
            boxLength.classList.add('is-warning');
            outLoopsCount.innerHTML = loopsNeeded + ' pętle';
            
            // Średnia długość pojedynczej pętli po podziale
            const singleLoopLen = totalLength / loopsNeeded;
            outSingleLoopLen.innerHTML = singleLoopLen.toFixed(1);
        } else {
            boxLength.classList.remove('is-warning');
        }
    }

    // Nasłuchiwacze na eventy 'input'
    inArea.addEventListener('input', function() {
        valArea.innerHTML = this.value + ' m&sup2;';
        calculate();
    });

    inOzc.addEventListener('input', function() {
        valOzc.innerHTML = this.value + ' W';
        calculate();
    });

    inDobieg.addEventListener('input', function() {
        valDobieg.innerHTML = this.value + ' m';
        calculate();
    });

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



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-primary: #dc2626; /* Czerwony jako główny akcent dla sekcji błędów */
    --rk-err-primary-hover: #b91c1c;
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-blue: #0284c7;
}

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

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

.rk-err-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-header h2 svg {
    color: var(--rk-err-primary);
    flex-shrink: 0;
}

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

/* Układ główny */
.rk-err-layout {
    display: flex;
    background: var(--rk-err-bg);
}

/* Pasek boczny (Desktop) */
.rk-err-sidebar {
    width: 360px;
    background: var(--rk-err-surface);
    border-right: 1px solid var(--rk-err-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-tab-btn {
    width: 100%;
    text-align: left;
    padding: 16px 20px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-tab-btn:hover {
    background: #f1f5f9;
    color: var(--rk-err-primary);
}

.rk-err-tab-btn.active {
    background: #ffffff;
    border-color: #fecaca;
    color: var(--rk-err-primary);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.05);
}

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

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

/* Obszar treści */
.rk-err-content-area {
    flex: 1;
    padding: 40px;
    position: relative;
    min-height: 250px;
}

.rk-err-panel {
    display: none;
    animation: errFadeIn 0.4s ease forwards;
}

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

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

/* Triggery mobilne */
.rk-err-mobile-trigger {
    display: none;
    width: 100%;
    text-align: left;
    padding: 20px;
    background: var(--rk-err-surface);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin-bottom: 10px;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
}

.rk-err-mobile-trigger.active {
    border-color: var(--rk-err-primary);
    color: var(--rk-err-primary);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0;
    border-bottom: none;
    background: #fff5f5;
}

.rk-err-toggle-icon {
    transition: transform 0.3s;
}

.rk-err-mobile-trigger.active .rk-err-toggle-icon {
    transform: rotate(180deg);
}

/* Wnętrze paneli */
.rk-err-panel-inner {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

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

.rk-err-panel p strong {
    color: var(--rk-err-primary);
}

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

.rk-err-panel a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-err-header, .rk-err-content-area { padding: 30px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    
    .rk-err-layout { flex-direction: column; }
    .rk-err-sidebar { display: none; }
    
    .rk-err-content-area { padding: 20px; }
    
    .rk-err-panel {
        display: block;
        margin-bottom: 10px;
    }
    
    .rk-err-mobile-trigger {
        display: flex;
    }
    
    .rk-err-panel-inner {
        padding: 20px;
        background: #ffffff;
        border: 1px solid var(--rk-err-primary);
        border-top: none;
        border-bottom-left-radius: 12px;
        border-bottom-right-radius: 12px;
        display: none;
    }
    
    .rk-err-panel.active .rk-err-panel-inner {
        display: flex;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy instalatorów przy montażu podłogówki bez projektu",
    "description": "Zestawienie krytycznych błędów instalacyjnych: brak dylatacji, błędne średnice rur, ignorowanie oporu okładzin i montaż pod stałą zabudową.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Rejestr Krytycznych Błędów Wykonawczych Ogrzewania Płaszczyznowego",
    "description": "Baza danych powiązanych błędów fizycznych instalacji z ich mierzalnymi skutkami eksploatacyjnymi, wykraczającymi poza normy ujęte w PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "jak rodzaj okładziny podłogowej wpływa na ogrzewanie",
      "strefa brzegowa obwodowa w ogrzewaniu podłogowym",
      "izolacja brzegowa i dylatacje w instalacji",
      "jaka średnica rury zasilającej rozdzielacz",
      "wodne ogrzewanie podłogowe a meble"
    ],
    "measurementTechnique": "Analiza inżynierska skutków odchyleń od normatywnych projektów technicznych, diagnozująca spadek sprawności systemu oraz uszkodzenia mechaniczne jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór okładziny: Parkiet blokuje emisję cieplną, obniżając temp. o 4°C w stosunku do założeń.",
        "Brak dylatacji: Ryzyko pękania posadzek powyżej 40 m2 lub 8 mb długości.",
        "Zła średnica: Rura 20 mm dla 10 pętli tworzy wąskie gardło hydrauliczne.",
        "Strefy brzegowe: Ignorowanie przeszkleń prowadzi do strumieni zimna."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-bledy",
    "name": "Baza Błędów Instalacyjnych (Interaktywny Komponent)",
    "description": "Moduł edukacyjny pozwalający inwestorowi na identyfikację krytycznych punktów awarii w systemie ogrzewania płaszczyznowego wynikających z braku dokumentacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-err-container" id="skaner-bledow-app">
    <div class="rk-err-header">
        <h2>
            <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>
            Skaner Krytycznych Błędów Instalatorskich
        </h2>
        <p>Montaż "na pamięć" niemal zawsze kończy się uszkodzeniem posadzki lub brakiem komfortu. Sprawdź 5 najczęstszych punktów zapalnych w instalacjach bez projektu.</p>
    </div>

    <div class="rk-err-layout">
        <div class="rk-err-sidebar">
            <button class="rk-err-tab-btn active" data-target="okladziny">
                <div class="rk-err-tab-num">1</div>
                Ignorowanie oporu okładzin
            </button>
            <button class="rk-err-tab-btn" data-target="strefy">
                <div class="rk-err-tab-num">2</div>
                Brak stref brzegowych
            </button>
            <button class="rk-err-tab-btn" data-target="dylatacje">
                <div class="rk-err-tab-num">3</div>
                Brak dylatacji (Pękanie)
            </button>
            <button class="rk-err-tab-btn" data-target="srednice">
                <div class="rk-err-tab-num">4</div>
                Złe średnice rury zasilającej
            </button>
            <button class="rk-err-tab-btn" data-target="meble">
                <div class="rk-err-tab-num">5</div>
                Montaż pod stałą zabudową
            </button>
        </div>

        <div class="rk-err-content-area" id="rkErrContentArea">
            
            <div class="rk-err-panel active" id="err-okladziny">
                <button class="rk-err-mobile-trigger active">
                    1. Ignorowanie oporu okładzin
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Blokada strumienia cieplnego</h3>
                        <p>Najgroźniejszym błędem jest całkowite ignorowanie zjawiska oporu termicznego materiałów. Zastosowanie grubego parkietu drewnianego zamiast płytek ceramicznych tworzy izolator, który <strong>obniża temperaturę w pomieszczeniu nawet o 4°C</strong> w stosunku do początkowych założeń i wymusza wyższe koszty pracy pompy ciepła.</p>
                        <p>Dowiedz się więcej, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> systemu.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-strefy">
                <button class="rk-err-mobile-trigger">
                    2. Brak stref brzegowych
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Kondensacja i strumienie zimna</h3>
                        <p>Instalatorzy rutynowo ignorują zwiększone zapotrzebowanie na moc przy oknach tarasowych typu HS. Prowadzi to do powstawania wychłodzonych mas powietrza ("strumieni zimna" spływających po szybie) oraz <strong>niebezpiecznej kondensacji pary wodnej</strong> na profilach okiennych.</p>
                        <p>Prawidłowo zaprojektowana <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefa brzegowa (obwodowa)</a> w 100% rozwiązuje ten problem.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-dylatacje">
                <button class="rk-err-mobile-trigger">
                    3. Brak dylatacji (Pękanie)
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Destrukcja jastrychu i płytek</h3>
                        <p>Brak wykonania szczelin dylatacyjnych na progach drzwiowych oraz przy powierzchniach jastrychu <strong>powyżej 40 m² (lub przy długości boku pow. 8 m)</strong> to pewna katastrofa. Praca termiczna posadzki niechybnie spowoduje pękanie płytek ceramicznych, a w skrajnych przypadkach zerwanie rur PEX pod wylewką.</p>
                        <p>Zobacz pełne normy na temat <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacji</a>.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-srednice">
                <button class="rk-err-mobile-trigger">
                    4. Złe średnice rury zasilającej
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Wąskie gardło hydrauliczne</h3>
                        <p>Nagminną praktyką jest podłączanie dużego rozdzielacza (obsługującego np. 10 lub 12 pętli grzewczych) zbyt cienką rurą. Użycie rury o średnicy <strong>20 mm zamiast wymaganej 26 mm lub 32 mm</strong> drastycznie ucina przepływ masowy czynnika do belek rozdzielacza, co dławi wydajność instalacji.</p>
                        <p>Zawsze weryfikuj projekt, sprawdzając, <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">jaka średnica rury zasilającej rozdzielacz</a> jest wymagana fizycznie.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-meble">
                <button class="rk-err-mobile-trigger">
                    5. Montaż pod stałą zabudową
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Zniszczenie wyposażenia wnętrz</h3>
                        <p>Układanie obwodów grzewczych bezpośrednio pod szafkami kuchennymi, wannami z obudową czy kuchennymi wyspami prowadzi do <strong>ekstremalnego przegrzewania mebli</strong>. Odcięty obieg powietrza marnuje wyprodukowaną energię i drastycznie przyspiesza rozsuszanie się i pękanie konstrukcji meblowych.</p>
                        <p>Prawidłowy projekt przewiduje tzw. strefy wyłączone, integrując <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">wodne ogrzewanie podłogowe a meble</a> w sposób bezpieczny dla obu stron.</p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const isMobile = window.innerWidth <= 768;
    
    // Obsługa dla Desktop (Tabs)
    const tabBtns = document.querySelectorAll('.rk-err-tab-btn');
    const panels = document.querySelectorAll('.rk-err-panel');
    
    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (window.innerWidth <= 768) return; 
            
            // Reset
            tabBtns.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Activate
            this.classList.add('active');
            const targetId = 'err-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Obsługa dla Mobile (Akordeon)
    const mobileTriggers = document.querySelectorAll('.rk-err-mobile-trigger');
    
    mobileTriggers.forEach(trigger => {
        trigger.addEventListener('click', function() {
            if (window.innerWidth > 768) return; 
            
            const parentPanel = this.parentElement;
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            document.querySelectorAll('.rk-err-panel').forEach(p => {
                p.classList.remove('active');
                p.querySelector('.rk-err-mobile-trigger').classList.remove('active');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                parentPanel.classList.add('active');
                this.classList.add('active');
            }
        });
    });

    window.addEventListener('resize', function() {
        if (window.innerWidth > 768) {
            let hasActive = false;
            panels.forEach(p => { if(p.classList.contains('active')) hasActive = true; });
            
            if(!hasActive) {
                tabBtns[0].classList.add('active');
                panels[0].classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-primary: #0284c7;
    --rk-mat-primary-hover: #0369a1;
    --rk-mat-bg: #ffffff;
    --rk-mat-surface: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
    --rk-mat-accent: #38bdf8;
    --rk-mat-success: #10b981;
    --rk-mat-warning: #f59e0b;
}

.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 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-mat-border);
    overflow: hidden;
}

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

.rk-mat-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-mat-header h2 svg {
    color: var(--rk-mat-accent);
    flex-shrink: 0;
}

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

/* Układ główny - Desktop Tabs, Mobile Accordion */
.rk-mat-layout {
    display: flex;
    background: var(--rk-mat-bg);
}

/* Pasek boczny (Desktop) */
.rk-mat-sidebar {
    width: 320px;
    background: var(--rk-mat-surface);
    border-right: 1px solid var(--rk-mat-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-mat-tab-btn {
    width: 100%;
    text-align: left;
    padding: 18px 20px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-mat-tab-btn:hover {
    background: #f1f5f9;
    color: var(--rk-mat-primary);
}

.rk-mat-tab-btn.active {
    background: #ffffff;
    border-color: var(--rk-mat-border);
    color: var(--rk-mat-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-mat-tab-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    transition: all 0.3s;
}

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

/* Obszar treści */
.rk-mat-content-area {
    flex: 1;
    padding: 40px;
    position: relative;
    min-height: 250px;
}

.rk-mat-panel {
    display: none;
    animation: matFadeIn 0.4s ease forwards;
}

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

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

/* Triggery mobilne (ukryte na desktopie) */
.rk-mat-mobile-trigger {
    display: none;
    width: 100%;
    text-align: left;
    padding: 20px;
    background: var(--rk-mat-surface);
    border: 1px solid var(--rk-mat-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin-bottom: 10px;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
}

.rk-mat-mobile-trigger.active {
    border-color: var(--rk-mat-primary);
    color: var(--rk-mat-primary);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.rk-mat-toggle-icon {
    transition: transform 0.3s;
}

.rk-mat-mobile-trigger.active .rk-mat-toggle-icon {
    transform: rotate(180deg);
}

/* Wnętrze paneli */
.rk-mat-panel-inner {
    display: grid;
    gap: 15px;
}

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

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

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

.rk-mat-panel a {
    color: var(--rk-mat-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-mat-panel a:hover {
    color: var(--rk-mat-primary-hover);
    border-bottom-color: var(--rk-mat-primary);
}

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

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

.rk-mat-cta-section p {
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-product {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-mat-primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none !important;
    border: 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-product:hover {
    transform: translateY(-5px);
    background: var(--rk-mat-primary-hover);
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
}

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

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

/* RWD - Mobile (Układ Pionowy / Akordeon) */
@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-content-area, .rk-mat-cta-section { padding: 30px 20px; }
    .rk-mat-header h2 { font-size: 24px; }
    
    .rk-mat-layout { flex-direction: column; }
    .rk-mat-sidebar { display: none; }
    
    .rk-mat-content-area { padding: 20px; }
    
    .rk-mat-panel {
        display: block;
        margin-bottom: 10px;
    }
    
    .rk-mat-mobile-trigger {
        display: flex;
    }
    
    .rk-mat-panel-inner {
        padding: 20px;
        background: #ffffff;
        border: 1px solid var(--rk-mat-primary);
        border-top: none;
        border-bottom-left-radius: 12px;
        border-bottom-right-radius: 12px;
        display: none;
    }
    
    .rk-mat-panel.active .rk-mat-panel-inner {
        display: grid;
    }
    
    .rk-btn-product { 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/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak profesjonalne obliczenia wpływają na projekt ogrzewania podłogowego?",
    "description": "Poznaj 4 filary poprawnej instalacji płaszczyznowej. Interaktywna matryca wpływu obliczeń OZC na dobór rur, izolacji i pompę obiegową.",
    "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-obliczenia",
    "name": "Matryca Parametrów Projektowych Ogrzewania Podłogowego",
    "description": "Zestawienie technicznych współzależności pomiędzy zapotrzebowaniem na energię cieplną a fizycznymi elementami instalacji (rury, styropian, pompa).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła budynku",
      "rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym",
      "grubość styropianu pod ogrzewanie podłogowe",
      "dobór pompy obiegowej w ogrzewaniu podłogowym",
      "obliczeniowe zapotrzebowanie na ciepło OZC"
    ],
    "measurementTechnique": "Algorytmiczne mapowanie wyników OZC na parametry instalacji: opór cieplny izolacji, gęstość strumienia ciepła (rozstaw rur) oraz opory hydrauliczne (dobór pompy).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Integracja OZC: Precyzyjne zdefiniowanie mocy od 40 W/m2 do 90 W/m2 w zależności od przegród.",
        "Parametry izolacji: Minimum 15–20 cm EPS 100 dla podłóg na gruncie.",
        "Wysokość podnoszenia: Wyliczenie sumarycznego oporu dla doboru pompy na 4m lub 6m słupa wody."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-obliczenia",
    "name": "Symulator Wpływu Obliczeń na Instalację (Matryca HVAC)",
    "description": "Interaktywny panel ilustrujący powiązania między danymi wejściowymi (OZC) a wymiarowaniem poszczególnych komponentów systemu podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="matryca-obliczen-app">
    <div class="rk-mat-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <rect x="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>
            Fundament Instalacji
        </h2>
        <p>Każdy aspekt fizyczny działania ogrzewania płaszczyznowego jest powiązany z dokumentacją techniczną, która spaja parametry źródła ciepła z właściwościami budynku.</p>
    </div>

    <div class="rk-mat-layout">
        <div class="rk-mat-sidebar">
            <button class="rk-mat-tab-btn active" data-target="ozc">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" 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>
                Integracja z OZC
            </button>
            <button class="rk-mat-tab-btn" data-target="rozstaw">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" 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><path d="M3 9h18M9 21V9"></path></svg></div>
                Rozstaw rur (Geometria)
            </button>
            <button class="rk-mat-tab-btn" data-target="wylewka">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" 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></div>
                Styropian i Wylewka
            </button>
            <button class="rk-mat-tab-btn" data-target="pompa">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4M12 8h.01"></path></svg></div>
                Parametry Pompy
            </button>
        </div>

        <div class="rk-mat-content-area" id="rkMatContentArea">
            
            <div class="rk-mat-panel active" id="panel-ozc">
                <button class="rk-mat-mobile-trigger active">
                    1. Integracja z OZC
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Obliczeniowe Zapotrzebowanie na Ciepło</h3>
                        <p>OZC determinuje dokładnie, ile watów energii ucieka przez każdą przegrodę w Twoim domu (ścianę, okno, podłogę na gruncie). Bez tego bilansu projektant nie wie, czy w danym pokoju potrzebuje dostarczyć <strong>40 W/m²</strong> czy może aż <strong>90 W/m²</strong>.</p>
                        <p>Działanie "w ciemno" skutkuje przewymiarowaniem źródła ciepła. Dowiedz się, jak wykorzystać <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła budynku</a> do oceny inwestycji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-rozstaw">
                <button class="rk-mat-mobile-trigger">
                    2. Rozstaw rur (Geometria)
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Precyzyjny dobór rozstawu rur</h3>
                        <p>Projekt jednoznacznie określa, gdzie zagęścić rury (np. <strong>co 10 cm</strong> w łazience i strefie podokiennej), a gdzie można je rozrzedzić (<strong>co 20 cm</strong> w sypialni). Takie podejście zapobiega efektowi „zimnych stref” lub nieznośnego przegrzania pomieszczeń.</p>
                        <p>Sprawdź, jak optymalnie <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">zaplanować rozmieszczenie pętli grzewczych</a>, aby uniknąć strat ciśnienia.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-wylewka">
                <button class="rk-mat-mobile-trigger">
                    3. Styropian i Wylewka
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Wpływ na grubość styropianu i jastrychu</h3>
                        <p>Obliczenia inżynieryjne definiują minimalny opór cieplny izolacji pionowej. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> na gruncie? Zazwyczaj wymaga się minimum <strong>15–20 cm EPS 100</strong>, aby ciepło nie uciekało do ziemi.</p>
                        <p>Ponadto, grubość wylewki (standardowo 4,5–5 cm powyżej korony rury dla wylewki anhydrytowej lub 6 cm dla cementowej) określa całkowitą bezwładność cieplną układu.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-pompa">
                <button class="rk-mat-mobile-trigger">
                    4. Parametry Pompy
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Parametry hydrauliczne pompy obiegowej</h3>
                        <p>Projektant wylicza sumaryczny opór hydrauliczny najdłuższej pętli wraz z oporami miejscowymi na rozdzielaczu i sprzęgle hydraulicznym. Na tej podstawie dobiera się wysokość podnoszenia pompy (np. <strong>4m lub 6m słupa wody</strong>).</p>
                        <p>Dzięki zastosowaniu <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a> oraz średnicy rury zasilającej, eliminuje się ryzyko niedostatecznego zasilenia skrajnych pętli grzewczych.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mat-cta-section">
        <h3>Przestań zgadywać. Zacznij inwestować w pewność.</h3>
        <p>Brak projektu to gwarancja wyższych kosztów materiałowych i eksploatacyjnych. Zamów profesjonalną dokumentację wykonawczą i zyskaj 100% kontroli nad swoim budżetem i komfortem.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-product">
            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"><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 isMobile = window.innerWidth <= 768;
    
    // Obsługa dla Desktop (Tabs)
    const tabBtns = document.querySelectorAll('.rk-mat-tab-btn');
    const panels = document.querySelectorAll('.rk-mat-panel');
    
    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (window.innerWidth <= 768) return; 
            
            // Reset
            tabBtns.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Activate
            this.classList.add('active');
            const targetId = 'panel-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Obsługa dla Mobile (Akordeon)
    const mobileTriggers = document.querySelectorAll('.rk-mat-mobile-trigger');
    
    mobileTriggers.forEach(trigger => {
        trigger.addEventListener('click', function() {
            if (window.innerWidth > 768) return; 
            
            const parentPanel = this.parentElement;
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            document.querySelectorAll('.rk-mat-panel').forEach(p => {
                p.classList.remove('active');
                p.querySelector('.rk-mat-mobile-trigger').classList.remove('active');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                parentPanel.classList.add('active');
                this.classList.add('active');
            }
        });
    });

    window.addEventListener('resize', function() {
        if (window.innerWidth > 768) {
            let hasActive = false;
            panels.forEach(p => { if(p.classList.contains('active')) hasActive = true; });
            
            if(!hasActive) {
                tabBtns[0].classList.add('active');
                panels[0].classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-primary: #0284c7;
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-danger: #ef4444;
    --rk-case-danger-bg: #fef2f2;
    --rk-case-success: #10b981;
    --rk-case-success-bg: #ecfdf5;
    --rk-case-accent: #8b5cf6; /* Fioletowy akcent dla Case Study */
}

.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 25px 50px -12px rgba(139, 92, 246, 0.1);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

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

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

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

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

/* Układ główny */
.rk-case-layout {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-case-bg);
}

/* Sekcja Historii (Lewa) */
.rk-case-story {
    padding: 40px 30px;
    background: var(--rk-case-surface);
    border-right: 1px solid var(--rk-case-border);
}

.rk-case-investor {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 2px dashed var(--rk-case-border);
}

.rk-case-avatar {
    width: 50px;
    height: 50px;
    background: var(--rk-case-accent);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
}

.rk-case-investor-info h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-case-dark);
}

.rk-case-investor-info p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

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

.rk-case-quote {
    background: #ffffff;
    padding: 15px;
    border-left: 3px solid var(--rk-case-danger);
    border-radius: 0 8px 8px 0;
    font-style: italic;
    font-weight: 600;
    color: var(--rk-case-dark);
    margin: 20px 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* Interaktywny Audyt (Prawa) */
.rk-case-audit {
    padding: 40px;
}

.rk-case-audit-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Zakładki / Toggles */
.rk-case-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    background: var(--rk-case-surface);
    padding: 6px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
}

.rk-case-tab-btn {
    flex: 1;
    padding: 12px 15px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
}

.rk-case-tab-btn:hover {
    color: var(--rk-case-dark);
}

.rk-case-tab-btn.active {
    background: #ffffff;
    color: var(--rk-case-accent);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* Karty Audytu */
.rk-case-panel {
    display: none;
    animation: caseFadeIn 0.4s ease forwards;
}

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

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

.rk-case-myth, .rk-case-fact {
    padding: 25px;
    border-radius: 16px;
    margin-bottom: 20px;
    position: relative;
}

.rk-case-myth {
    background: var(--rk-case-danger-bg);
    border: 1px solid #fecaca;
}

.rk-case-fact {
    background: var(--rk-case-success-bg);
    border: 1px solid #a7f3d0;
}

.rk-case-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.rk-case-card-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 900;
}

.rk-case-myth .rk-case-card-icon { background: var(--rk-case-danger); }
.rk-case-fact .rk-case-card-icon { background: var(--rk-case-success); }

.rk-case-card-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
}

.rk-case-myth h4 { color: var(--rk-case-danger); }
.rk-case-fact h4 { color: var(--rk-case-success); }

.rk-case-card-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-case-dark);
    margin: 0;
    font-weight: 500;
}

.rk-case-card-text a {
    color: var(--rk-case-primary);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    
    .rk-case-layout { grid-template-columns: 1fr; }
    
    .rk-case-story { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-case-border); }
    .rk-case-audit { padding: 30px 20px; }
    
    .rk-case-tabs { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-case-tab-btn { padding: 14px; }
    
    .rk-case-myth, .rk-case-fact { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Zderzenie inwestora z mitami instalatorów",
    "description": "Analiza przypadku Pani Janiny z Suwałk. Weryfikacja popularnych mitów instalacyjnych: układania rur 'co 10 cm', losowych długości pętli oraz braku zapotrzebowania energetycznego OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Zestawienie: Praktyka potoczna vs Standard inżynierski HVAC",
    "description": "Porównanie błędnych, uogólnionych zaleceń monterskich z precyzyjnymi normami doboru parametrów ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "maksymalna długość pętli ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "weryfikacja instalatora podłogówki"
    ],
    "measurementTechnique": "Jakościowa ocena poprawności parametrów brzegowych (długość obwodu, rozstaw przewodów, moc cieplna) względem rygorów technicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja rozstawu: Obalenie mitu 'zawsze 10 cm' na rzecz rozstawu zmiennego opartego na gęstości strumienia cieplnego.",
        "Weryfikacja długości: Parametryzacja długości pętli (80m vs 120m) na podstawie oporów hydraulicznych i wydajności pompy.",
        "Weryfikacja OZC: Konieczność wykonania bilansu jako jedynej podstawy legalnego i sprawnego doboru komponentów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Interaktywny Audyt Inwestorski",
    "description": "Narzędzie edukacyjne pozwalające na interaktywną weryfikację potocznych stwierdzeń wykonawców grzewczych z inżynieryjnym stanem faktycznym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-case-container">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study #402</div>
        <h2>Pani Janina z Suwałk i mit "Zawsze tak robimy"</h2>
        <p>Zobacz, jak inżynieryjne fakty demaskują zgubne rzemieślnicze nawyki na realnym przykładzie z budowy.</p>
    </div>

    <div class="rk-case-layout">
        
        <div class="rk-case-story">
            <div class="rk-case-investor">
                <div class="rk-case-avatar">J</div>
                <div class="rk-case-investor-info">
                    <h4>Pani Janina</h4>
                    <p>Budowa: Dom parterowy, 120 m² (Suwałki)</p>
                </div>
            </div>

            <p class="rk-case-story-text">
                Pani Janina zwróciła się do naszego zespołu kompletnie zdezorientowana. Była po wstępnych rozmowach z trzema różnymi ekipami hydraulicznymi i każda mówiła co innego. 
            </p>
            <p class="rk-case-story-text">
                Jeden z instalatorów zarzekał się, że pętle mogą mieć maksymalnie 80 metrów, inny twierdził, że spokojnie ułoży 120 metrów. Co ciekawe, <strong>wszyscy trzej byli całkowicie zgodni w jednym aspekcie:</strong>
            </p>

            <div class="rk-case-quote">
                "Pani Janino, rurkę kładziemy wszędzie gęsto, co 10 centymetrów. Będzie ciepło i na pewno będzie Pani zadowolona!"
            </div>

            <p class="rk-case-story-text">
                Gdy świadoma inwestorka dopytała, na jakiej podstawie dobrali ten rozstaw i czy wykonali wcześniej bilans energetyczny (OZC) budynku, usłyszała klasykę polskiej budowlanki: <em>"A po co te papiery? Zawsze tak robimy i nikt jeszcze nie narzekał"</em>.
            </p>
        </div>

        <div class="rk-case-audit">
            <h3 class="rk-case-audit-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-accent)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="margin-top:-2px;"><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>
                Audyt Ekspercki
            </h3>

            <div class="rk-case-tabs">
                <button class="rk-case-tab-btn active" data-myth="ozc">Brak OZC</button>
                <button class="rk-case-tab-btn" data-myth="rozstaw">Rozstaw "co 10 cm"</button>
                <button class="rk-case-tab-btn" data-myth="dlugosc">Długość pętli</button>
            </div>

            <div class="rk-case-panel active" id="myth-ozc">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">"Po co te papiery i OZC? Przecież dom to dom, wrzuci się podłogówkę i będzie działać."</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <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>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Brak wyliczeń to absolutny fundament <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu</a>. Bez precyzyjnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> nikt – nawet najlepszy fachowiec – nie wie, ile energii ucieka przez przegrody. To prowadzi do drastycznego przewymiarowania lub niedogrzania systemu.
                    </p>
                </div>
            </div>

            <div class="rk-case-panel" id="myth-rozstaw">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">"Dajemy wszędzie gęsto, równo co 10 centymetrów na całej powierzchni podłogi."</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <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>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Rozstaw rur to zmienna. W łazience możemy dać rurki co 10 cm, ale w dobrze wyizolowanej sypialni układanie co 10 cm to marnotrawstwo rury i gwarancja przegrzania (dyskomfortu do spania). Prawidłowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w wodnym ogrzewaniu podłogowym</a> wylicza się na podstawie gęstości strumienia cieplnego.
                    </p>
                </div>
            </div>

            <div class="rk-case-panel" id="myth-dlugosc">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">Jeden chciał robić pętle po 80 metrów, drugi twierdził, że "spokojnie pociągnie" do 120 metrów rury na jednym obwodzie.</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <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>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Prawda leży w hydraulice. <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli</a> dla rury 16x2.0 nie powinna przekraczać 120m, ale dąży się do wyrównania długości pętli na jednym rozdzielaczu. Mieszanie pętli 40-metrowych ze 120-metrowymi uniemożliwi zrównoważenie układu na rotametrach. Woda poleci po linii najmniejszego oporu (najkrótszą pętlą).
                    </p>
                </div>
            </div>

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

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Usunięcie klasy active ze wszystkich tabów i paneli
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Dodanie klasy active do klikniętego
            this.classList.add('active');
            const targetId = 'myth-' + this.getAttribute('data-myth');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-primary: #0284c7;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-gold: #d97706;
    --rk-auth-gold-light: #fef3c7;
}

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

/* Układ główny */
.rk-auth-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Lewa Kolumna - Zdjęcie i Social Media */
.rk-auth-profile {
    background: var(--rk-auth-dark);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 4px solid var(--rk-auth-gold);
}

.rk-auth-image-box {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-gold);
    overflow: hidden;
    margin-bottom: 20px;
    background: #1e293b;
}

.rk-auth-image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

.rk-auth-role {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
}

.rk-auth-social {
    display: flex;
    gap: 15px;
    width: 100%;
    justify-content: center;
}

.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.1);
    color: #ffffff;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.rk-auth-social-link:hover {
    background: var(--rk-auth-primary);
    color: #ffffff;
}

/* Prawa Kolumna - Treść i Cytat */
.rk-auth-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

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

/* Sekcja Cytatu */
.rk-auth-quote-box {
    background: var(--rk-auth-gold-light);
    border-left: 5px solid var(--rk-auth-gold);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
    position: relative;
}

.rk-auth-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: var(--rk-auth-gold);
    color: #ffffff;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.rk-auth-quote-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-auth-dark);
    font-weight: 600;
    font-style: italic;
    margin: 0;
}

/* Zakładki (Tabs) statyczne */
.rk-auth-tabs-nav {
    display: flex;
    gap: 10px;
    border-bottom: 2px solid var(--rk-auth-border);
    margin-bottom: 25px;
}

.rk-auth-tab-btn {
    padding: 12px 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    margin-bottom: -2px;
}

.rk-auth-tab-btn:hover {
    color: var(--rk-auth-primary);
}

.rk-auth-tab-btn.active {
    color: var(--rk-auth-primary);
    border-bottom-color: var(--rk-auth-primary);
}

.rk-auth-tab-content {
    display: none;
}

.rk-auth-tab-content.active {
    display: block;
}

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

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-auth-layout { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 4px solid var(--rk-auth-gold); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-header h2 { font-size: 22px; }
    .rk-auth-quote-box { padding: 25px 20px; }
    .rk-auth-tabs-nav { flex-direction: column; border-bottom: none; gap: 5px; }
    .rk-auth-tab-btn { border: 1px solid var(--rk-auth-border); border-radius: 8px; margin-bottom: 0; text-align: left; }
    .rk-auth-tab-btn.active { border-color: var(--rk-auth-primary); border-bottom-color: var(--rk-auth-primary); background: var(--rk-auth-surface); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Projekt ogrzewania podłogowego okiem eksperta – Robert Kucharski",
    "description": "Zrozum inżynierskie podejście do instalacji HVAC. Autorska perspektywa Roberta Kucharskiego na temat bezpieczeństwa i opłacalności projektów ogrzewania płaszczyznowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-ekspert",
    "name": "Standardy Inżynierskie i Wytyczne Wykonawcze HVAC",
    "description": "Zestawienie autorskich standardów projektowych Roberta Kucharskiego zderzających amatorskie praktyki monterskie z normami fizyki budowli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    },
    "keywords": [
      "robert kucharski ogrzewanie",
      "ekspert hvac projektowanie",
      "budowa bez ściemy instalacje",
      "weryfikacja projektu podłogówki",
      "standardy wykonawcze ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja jakości wykonawstwa na podstawie autorskich kryteriów bezpieczeństwa hydraulicznego i energetycznego (1000+ zweryfikowanych instalacji).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada Bezpieczeństwa: Instalacja to fizyka, a nie intuicja. Brak obliczeń OZC to gwarancja awarii.",
        "Weryfikacja Inżynierska: Opieranie parametrów zasilania wyłącznie na twardych danych z bilansu cieplnego.",
        "Ochrona inwestora: Projekt wykonawczy jako jedyna polisa ubezpieczeniowa przed błędami instalatora."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-ekspert",
    "name": "Baza Wiedzy i Standardów Inżynierskich",
    "description": "Moduł przełącznikowy prezentujący autorskie podejście do projektowania, różnice między rzemiosłem a inżynierią oraz gwarancje bezpieczeństwa inwestycji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container">
    <div class="rk-auth-layout">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-image-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>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <p class="rk-auth-role">Główny Specjalista HVAC & CEO</p>
            
            <div class="rk-auth-social">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="22" height="22" 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 nofollow" class="rk-auth-social-link" aria-label="LinkedIn Robert Kucharski">
                    <svg width="22" height="22" 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>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-header">
                <h2>Projekt ogrzewania podłogowego okiem eksperta – Robert Kucharski</h2>
            </div>

            <div class="rk-auth-quote-box">
                <div class="rk-auth-quote-icon">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1.5.5 1.5 1.5 0 1.5-1.5 2.5-2.5 2.5-1.25 0-2 .75-2 2s.75 2 2 2z"></path><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1.5.5 1.5 1.5 0 1.5-1.5 2.5-2.5 2.5-1.25 0-2 .75-2 2s.75 2 2 2z"></path></svg>
                </div>
                <p class="rk-auth-quote-text">
                    Zdaniem Roberta Kucharskiego: Instalacja ogrzewania podłogowego to nie układanie rurek na styropianie, to precyzyjna inżynieria fizyki budowli. Błędy zignorowane na etapie braku obliczeń OZC mszczą się bezlitośnie przez kolejne dekady w postaci wyższych rachunków i pękających posadzek.
                </p>
            </div>

            <div class="rk-auth-tabs-nav" id="authTabsNav">
                <button class="rk-auth-tab-btn active" data-tab="filozofia">Filozofia Inżynierska</button>
                <button class="rk-auth-tab-btn" data-tab="bezpieczenstwo">Ochrona Inwestora</button>
            </div>

            <div class="rk-auth-tab-content active" id="tab-filozofia">
                <p class="rk-auth-tab-text">
                    W branży instalacyjnej panuje mit "doświadczonego montera", który rzekomo potrafi ułożyć optymalny rozstaw pętli wyłącznie na podstawie wieloletniej praktyki. <strong>Fizyka nie akceptuje kompromisów.</strong> Nawet najlepszy instalator nie jest w stanie bez obliczeń przewidzieć dokładnych strat ciepła przez przegrody, oporu wybranej okładziny czy parametrów hydraulicznych źródła ciepła dla konkretnego rzutu budynku.
                </p>
            </div>

            <div class="rk-auth-tab-content" id="tab-bezpieczenstwo">
                <p class="rk-auth-tab-text">
                    Dokumentacja techniczna to Twoja jedyna tarcza ochronna na budowie. Jeśli wykonawca popełni błąd – przegrzeje strefy, zablokuje przepływy zbyt długą pętlą lub zignoruje dylatacje – to <strong>brak projektu odbiera Ci wszelkie argumenty do reklamacji</strong>. Inżynieryjne podejście do instalacji to gwarancja, że system pracuje dla Ciebie, a nie Ty na poprawki systemu.
                </p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-auth-tab-btn');
    const tabContents = document.querySelectorAll('.rk-auth-tab-content');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Czyszczenie klas active
            tabBtns.forEach(t => t.classList.remove('active'));
            tabContents.forEach(c => c.classList.remove('active'));

            // Dodawanie klasy active do klikniętego
            this.classList.add('active');
            const targetId = 'tab-' + this.getAttribute('data-tab');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq2-dark: #1e293b;
    --rk-faq2-primary: #0369a1; /* Ciemniejszy niebieski dla odróżnienia, buduje autorytet */
    --rk-faq2-primary-hover: #0284c7;
    --rk-faq2-bg: #ffffff;
    --rk-faq2-surface: #f1f5f9;
    --rk-faq2-border: #cbd5e1;
    --rk-faq2-text: #334155;
    --rk-faq2-accent: #f59e0b; /* Bursztynowy akcent dla ożywienia */
    --rk-faq2-danger: #ef4444;
}

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

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

.rk-faq2-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    letter-spacing: -0.5px;
}

.rk-faq2-header h2 svg {
    color: var(--rk-faq2-accent);
}

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

/* Zawartość Akordeonu */
.rk-faq2-body {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-faq2-item {
    background: var(--rk-faq2-surface);
    border: 1px solid transparent;
    border-radius: 14px;
    margin-bottom: 12px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item:hover {
    background: #e2e8f0;
}

.rk-faq2-item.active {
    background: var(--rk-faq2-bg);
    border-color: var(--rk-faq2-primary);
    box-shadow: 0 10px 20px -5px rgba(3, 105, 161, 0.15);
}

/* Przycisk pytania */
.rk-faq2-question {
    width: 100%;
    text-align: left;
    padding: 22px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-faq2-question h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq2-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

.rk-faq2-item.active .rk-faq2-question h3 {
    color: var(--rk-faq2-primary);
}

/* Ikona Toggle (+/-) */
.rk-faq2-toggle {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid var(--rk-faq2-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq2-primary);
    transition: all 0.3s;
    position: relative;
}

.rk-faq2-toggle::before, .rk-faq2-toggle::after {
    content: '';
    position: absolute;
    background: currentColor;
    border-radius: 2px;
    transition: transform 0.3s;
}

.rk-faq2-toggle::before { width: 14px; height: 2px; }
.rk-faq2-toggle::after { width: 2px; height: 14px; }

.rk-faq2-item.active .rk-faq2-toggle {
    background: var(--rk-faq2-primary);
    color: #ffffff;
    border-color: var(--rk-faq2-primary);
}

.rk-faq2-item.active .rk-faq2-toggle::after {
    transform: rotate(90deg) scale(0);
}

/* Odpowiedź */
.rk-faq2-answer-wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-answer-inner {
    padding: 0 30px 25px;
    display: flex;
    gap: 20px;
}

.rk-faq2-answer-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    color: var(--rk-faq2-accent);
    margin-top: 2px;
}

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

.rk-faq2-answer-text a {
    color: var(--rk-faq2-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(3, 105, 161, 0.3);
    transition: all 0.2s;
}

.rk-faq2-answer-text a:hover {
    border-bottom-color: var(--rk-faq2-primary);
    color: var(--rk-faq2-primary-hover);
}

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-faq2-header { padding: 30px 20px; }
    .rk-faq2-header h2 { font-size: 24px; }
    .rk-faq2-body { padding: 25px 20px; }
    .rk-faq2-question { padding: 20px; }
    .rk-faq2-question h3 { font-size: 16px; }
    .rk-faq2-answer-inner { padding: 0 20px 20px; gap: 15px; }
    .rk-faq2-answer-icon { display: none; } /* Ukrywamy ikonę odpowiedzi na telefonach by zaoszczędzić miejsce */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#faq-section",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy bez projektu ogrzewania podłogowego otrzymam dotację z programu Czyste Powietrze?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, ponieważ nowoczesne procedury audytowe i odbiorcze wymagają przedstawienia dokumentacji potwierdzającej prawidłowe zrównoważenie hydrauliczne instalacji oraz dopasowanie źródła ciepła do parametrów technicznych budynku. Brak projektu uniemożliwi poprawne rozliczenie wniosku finansowego w urzędzie."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, jeśli wykonawca ułoży za długą pętlę ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Za długa pętla (powyżej 120 m dla rury 16 mm) wygeneruje tak duże opory hydrauliczne, że woda grzewcza nie będzie w stanie przez nią swobodnie przepływać. W efekcie podłoga w tym pomieszczeniu pozostanie zimna, pomimo prawidłowej pracy pompy ciepła i maksymalnego otwarcia rotametrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czy układ meandrowy można stosować zamiennie z układem ślimakowym bez obliczeń?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, ponieważ układ ślimakowy zapewnia idealnie równomierny rozkład temperatur na powierzchni posadzki dzięki naprzemiennemu układaniu rury zasilającej i powrotnej. Układ meandrowy generuje duże straty temperatury wzdłuż pętli, dlatego projektuje się go wyłącznie w strefach brzegowych o wysokim zapotrzebowaniu na moc."
        }
      },
      {
        "@type": "Question",
        "name": "Jak grubość wylewki betonowej wpływa na parametry projektowe ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zbyt gruba wylewka (powyżej 7-8 cm nad rurami) drastycznie zwiększa bezwładność cieplną układu, wydłużając czas reakcji automatyki na zmiany temperatury zewnętrznej. Z kolei zbyt cienka wylewka (poniżej 4 cm) grozi pękaniem jastrychu pod wpływem naprężeń termicznych i powoduje nierównomierny rozkład temperatury (efekt pasmowy)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zalać instalację podłogówki zwykłą wodą z kranu bez projektu i badań?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Napełnienie instalacji surową wodą wodociągową prowadzi do szybkiego odkładania się kamienia kotłowego oraz przyspieszonej korozji metalowych elementów rozdzielacza. Zgodnie z normami technicznymi, instalację należy napełnić wodą demineralizowaną z dodatkiem odpowiednich inhibitorów korozji, gwarantujących stabilność fizykochemiczną zładu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Często zadawane pytania (FAQ) - Parametry Projektowe Ogrzewania",
    "description": "Najważniejsze pytania techniczne dotyczące wymogów prawnych, długości pętli, rodzajów wylewek i wody kotłowej w 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 – Budowa bez ściemy",
      "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Limity i Wymogi Techniczne Instalacji Płaszczyznowych (FAQ Data)",
    "description": "Zbiór kluczowych wartości brzegowych wymienianych w pytaniach FAQ, takich jak dopuszczalna długość rur, minimalna i maksymalna grubość jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "wymogi dofinansowania Czyste Powietrze 2026",
      "maksymalna długość pętli ogrzewania",
      "grubość jastrychu podłogowego",
      "parametry wody kotłowej instalacyjnej",
      "układ ślimakowy i meandrowy"
    ],
    "measurementTechnique": "Określanie parametrów granicznych instalacji w oparciu o wytyczne producentów systemów i ogólne zasady fizyki budowli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit hydrauliczny pętli: Maksymalnie 120 mb dla rury o średnicy 16x2.0.",
        "Grubość wylewki: Minimum 4 cm nad rurę w celu uniknięcia pęknięć, optymalnie do 7-8 cm w celu zachowania sterowalności.",
        "Chemia zładu: Obowiązkowe napełnianie wodą demineralizowaną w celu zatrzymania korozji elementów metalowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Akordeon Edukacyjny HVAC",
    "description": "Komponent interfejsu użytkownika (UI) obsługujący ukrywanie i rozwijanie zaawansowanych odpowiedzi inżynieryjnych na pytania czytelników portalu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-faq2-container" id="faq-sekcja-podlogowka">
    <div class="rk-faq2-header">
        <h2>
            <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="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>
                <circle cx="12" cy="13" r="2"></circle>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
            Często zadawane pytania (FAQ)
        </h2>
        <p>Inżynieryjne odpowiedzi na najczęstsze obiekcje inwestorów. Zobacz, jak błędy w podejściu do wylewki czy dotacji wpływają na odbiór całego budynku.</p>
    </div>

    <div class="rk-faq2-body" id="rkFaq2Accordion">
        
        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy bez projektu ogrzewania podłogowego otrzymam dotację z programu Czyste Powietrze?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" 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>
                    <p class="rk-faq2-answer-text">
                        <strong>Nie</strong>, ponieważ nowoczesne procedury audytowe i odbiorcze wymagają przedstawienia dokumentacji potwierdzającej prawidłowe zrównoważenie hydrauliczne instalacji oraz dopasowanie źródła ciepła do parametrów technicznych budynku. Zobacz, jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">projekt techniczny wpływa na dotacje</a> – brak rzetelnego opracowania uniemożliwi poprawne rozliczenie wniosku finansowego w urzędzie.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Co się stanie, jeśli wykonawca ułoży za długą pętlę ogrzewania podłogowego?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" 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>
                    <p class="rk-faq2-answer-text">
                        <strong>Za długa pętla</strong> (powyżej 120 m dla rury 16 mm) wygeneruje tak duże opory hydrauliczne, że woda grzewcza nie będzie w stanie przez nią swobodnie przepływać. Zjawisko to dokładnie opisuję w artykule o <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">konsekwencjach za długich pętli podłogówki</a>. W efekcie podłoga w tym pomieszczeniu pozostanie zimna, pomimo prawidłowej pracy pompy ciepła i maksymalnego otwarcia rotametrów na rozdzielaczu.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy układ meandrowy można stosować zamiennie z układem ślimakowym bez obliczeń?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" 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="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                    <p class="rk-faq2-answer-text">
                        <strong>Nie.</strong> Układ ślimakowy zapewnia idealnie równomierny rozkład temperatur na powierzchni posadzki dzięki naprzemiennemu układaniu rury zasilającej i powrotnej. <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Układ meandrowy</a> generuje potężne straty temperatury wzdłuż pętli, dlatego projektuje się go wyłącznie i świadomie w strefach brzegowych o wysokim zapotrzebowaniu na moc (np. przy oknach tarasowych HS).
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Jak grubość wylewki betonowej wpływa na parametry projektowe ogrzewania podłogowego?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" 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>
                    <p class="rk-faq2-answer-text">
                        Zbyt gruba wylewka (powyżej 7-8 cm nad rurami) drastycznie zwiększa bezwładność cieplną układu, wydłużając czas reakcji automatyki na zmiany temperatury zewnętrznej. Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">wylewka betonowa</a> (poniżej 4 cm) grozi pękaniem jastrychu pod wpływem naprężeń termicznych i powoduje nierównomierny rozkład temperatury, odczuwalny jako tzw. efekt pasmowy.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy można zalać instalację podłogówki zwykłą wodą z kranu bez projektu i badań?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    <p class="rk-faq2-answer-text">
                        Napełnienie instalacji surową wodą wodociągową prowadzi do szybkiego odkładania się kamienia kotłowego oraz przyspieszonej korozji metalowych elementów rozdzielacza. Zgodnie z normami technicznymi i gwarancjami producentów, instalację należy napełnić <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wodą demineralizowaną z dodatkiem odpowiednich inhibitorów korozji</a>, gwarantujących pełną stabilność fizykochemiczną zładu.
                    </p>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq2-question');
        const wrapper = item.querySelector('.rk-faq2-answer-wrapper');
        const inner = item.querySelector('.rk-faq2-answer-inner');

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

            // Zamykamy inne otwarte elementy
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq2-question').setAttribute('aria-expanded', 'false');
                otherItem.querySelector('.rk-faq2-answer-wrapper').style.maxHeight = null;
            });

            // Jeśli kliknięto w zamknięty element - otwórz go
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
                wrapper.style.maxHeight = inner.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-primary: #0284c7;
    --rk-fin-bg: #ffffff;
    --rk-fin-surface: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-text: #334155;
    --rk-fin-danger: #ef4444;
    --rk-fin-danger-bg: #fef2f2;
    --rk-fin-success: #10b981;
    --rk-fin-success-bg: #ecfdf5;
}

.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(2, 132, 199, 0.1);
    border: 1px solid var(--rk-fin-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-fin-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-fin-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-fin-header h2 svg {
    color: #38bdf8;
    flex-shrink: 0;
}

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

.rk-fin-header p strong {
    color: #ffffff;
}

.rk-fin-header a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
    transition: color 0.2s;
}

.rk-fin-header a:hover {
    color: #ffffff;
}

/* Panel Nawigacyjny (Tabs) */
.rk-fin-interactive {
    padding: 40px 50px;
    background: var(--rk-fin-bg);
}

.rk-fin-tabs-wrapper {
    display: flex;
    gap: 10px;
    background: var(--rk-fin-surface);
    padding: 8px;
    border-radius: 14px;
    border: 1px solid var(--rk-fin-border);
    margin-bottom: 35px;
}

.rk-fin-tab-btn {
    flex: 1;
    padding: 14px 20px;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-fin-tab-btn:hover {
    color: var(--rk-fin-primary);
    background: rgba(2, 132, 199, 0.05);
}

.rk-fin-tab-btn.active {
    background: #ffffff;
    color: var(--rk-fin-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-fin-step-num {
    background: #cbd5e1;
    color: #ffffff;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 12px;
    transition: background 0.2s;
}

.rk-fin-tab-btn.active .rk-fin-step-num {
    background: var(--rk-fin-primary);
}

/* Zawartość Paneli */
.rk-fin-panel {
    display: none;
    animation: finFadeIn 0.3s ease forwards;
}

.rk-fin-panel.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

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

.rk-fin-card {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 12px;
    padding: 30px;
    position: relative;
}

.rk-fin-card.card-success { 
    border-top: 5px solid var(--rk-fin-success); 
    background: var(--rk-fin-success-bg);
}

.rk-fin-card.card-danger { 
    border-top: 5px solid var(--rk-fin-danger); 
    background: var(--rk-fin-danger-bg);
}

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

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

/* Subtelne ikony inline obok tytułu zamiast wielkich grafik */
.rk-fin-inline-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #ffffff;
    flex-shrink: 0;
}

.card-success .rk-fin-inline-icon { background: var(--rk-fin-success); }
.card-danger .rk-fin-inline-icon { background: var(--rk-fin-danger); }

.rk-fin-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-fin-dark);
    margin: 0;
    font-weight: 500;
}

/* Tagi Długiego Ogona (Bez hashtagów) */
.rk-fin-tags-section {
    padding: 0 50px 35px 50px;
    background: var(--rk-fin-bg);
}

.rk-fin-tags-title {
    font-size: 12px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    margin-bottom: 15px;
    display: block;
    text-align: center;
    letter-spacing: 0.5px;
}

.rk-fin-tag-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.rk-clean-tag {
    display: inline-flex;
    align-items: center;
    background: #f1f5f9;
    color: #475569;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-fin-border);
    transition: all 0.2s;
    cursor: default;
}

.rk-clean-tag:hover {
    background: #e2e8f0;
    color: var(--rk-fin-dark);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-fin-header { padding: 30px 20px; }
    .rk-fin-interactive { padding: 30px 20px; }
    .rk-fin-tags-section { padding: 0 20px 30px 20px; }
    
    .rk-fin-tabs-wrapper {
        flex-direction: column;
        gap: 5px;
        background: transparent;
        border: none;
        padding: 0;
    }
    
    .rk-fin-tab-btn {
        background: var(--rk-fin-surface);
        border: 1px solid var(--rk-fin-border);
        justify-content: flex-start;
        padding: 16px;
    }
    
    .rk-fin-panel.active {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .rk-fin-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie: Instalacja Grzewcza jako System Naczyń Połączonych",
    "description": "Dlaczego rezygnacja z projektu podłogówki to pozorna oszczędność? Sprawdź inżynieryjne zestawienie zależności między OZC, geometrią pętli i hydrauliką.",
    "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-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-podsumowanie",
    "name": "Analiza Cyklu Życia Instalacji (LCC) – Projekt Inżynierski vs Brak Projektu",
    "description": "Zestawienie technologicznych współzależności wykazujące, jak błąd na etapie braku obliczeń OZC propaguje się na opory hydrauliczne i koszty eksploatacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pękanie posadzki na podłogówce",
      "obliczenia OZC a hydraulika",
      "koszty eksploatacji bez projektu",
      "pozorna oszczędność na podłogówce",
      "system naczyń połączonych HVAC"
    ],
    "measurementTechnique": "Modelowanie kaskadowe błędów wykonawczych: analiza wpływu braku danych cieplnych na przewymiarowanie pętli i zaburzenie przepływów na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC: Brak obliczeń skutkuje błędnym rozstawem, co prowadzi do niedogrzania lub przegrzania.",
        "Wpływ Geometrii: Zbyt długie pętle blokują przepływ masowy czynnika.",
        "Wpływ Hydrauliki: Niezrównoważony układ drastycznie obniża sprawność pompy ciepła i podnosi rachunki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-podsumowanie",
    "name": "Symulator Zależności Instalacyjnych HVAC",
    "description": "Interaktywny panel edukacyjny (tabbed UI) pozbawiony rozpraszaczy graficznych, ilustrujący jak etapy projektowania wpływają na komfort cieplny.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="podsumowanie-techniczne">
    <div class="rk-fin-header">
        <h2>
            <svg width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
                <line x1="3" y1="9" x2="21" y2="9"></line>
                <line x1="9" y1="21" x2="9" y2="9"></line>
            </svg>
            Podsumowanie: System naczyń połączonych
        </h2>
        <p>
            Decyzja o rezygnacji z projektu ogrzewania podłogowego to klasyczny przykład <strong>pozornej oszczędności finansowej</strong>, która generuje lawinę <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">problemów technicznych na etapie eksploatacji budynku</a>. Prawidłowo zaprojektowana instalacja grzewcza to system naczyń połączonych – od dokładności obliczeń OZC, przez geometrię ułożenia pętli, aż po <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">precyzyjną hydraulikę</a> dedykowaną dla niskotemperaturowych źródeł ciepła.
        </p>
        <br>
        <p>
            Zamiast ryzykować <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">pękaniem posadzek</a>, niedogrzaniem pomieszczeń i drastycznym zawyżeniem rachunków, należy bezwzględnie oprzeć inwestycję na profesjonalnej dokumentacji technicznej. Tylko precyzyjny projekt inżynierski gwarantuje, że instalacja osiągnie pełną sprawność.
        </p>
    </div>

    <div class="rk-fin-interactive">
        
        <!-- Nawigacja Tabs -->
        <div class="rk-fin-tabs-wrapper" id="rkFinTabs">
            <button class="rk-fin-tab-btn active" data-target="ozc">
                <span class="rk-fin-step-num">1</span> Obliczenia OZC
            </button>
            <button class="rk-fin-tab-btn" data-target="geometry">
                <span class="rk-fin-step-num">2</span> Geometria Pętli
            </button>
            <button class="rk-fin-tab-btn" data-target="hydraulics">
                <span class="rk-fin-step-num">3</span> Hydraulika
            </button>
        </div>

        <!-- Panel 1: OZC -->
        <div class="rk-fin-panel active" id="panel-ozc">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" 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>
                    </div>
                    Z projektem: Precyzyjny dobór
                </h4>
                <p>Dokładne wyliczenie strat ciepła dla każdego pomieszczenia (OZC) pozwala idealnie dobrać moc źródła i zagęścić rury tylko tam, gdzie to fizycznie potrzebne (np. strefy brzegowe przy przeszkleniach).</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Gra w ruletkę
                </h4>
                <p>Układanie rur na ślepo "wszędzie co 10 cm" to marnowanie tysięcy złotych na zbędny materiał. Ignorowanie zysków pasywnych z okien gwarantuje nieznośne przegrzewanie salonu.</p>
            </div>
        </div>

        <!-- Panel 2: Geometria -->
        <div class="rk-fin-panel" id="panel-geometry">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" 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>
                    </div>
                    Z projektem: Optymalne pętle
                </h4>
                <p>Długość żadnej pętli nie przekracza normatywnych 120 metrów dla rury 16mm. Układ ślimakowy gwarantuje równomierny rozkład temperatury na całej powierzchni jastrychu.</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Krytyczne opory
                </h4>
                <p>Zbyt długie pętle (np. 150m) drastycznie zwiększają opory liniowe. Woda krąży wolniej, oddaje ciepło na początku pętli, pozostawiając resztę pokoju całkowicie wyziębioną.</p>
            </div>
        </div>

        <!-- Panel 3: Hydraulika -->
        <div class="rk-fin-panel" id="panel-hydraulics">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" 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>
                    </div>
                    Z projektem: Stabilny przepływ
                </h4>
                <p>Otrzymujesz dokładne nastawy dla rotametrów (np. 1.5 l/min). Pompa obiegowa i sprężarka pompy ciepła pracują w optymalnym punkcie krzywej, maksymalizując wskaźnik COP.</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Chaos sprzętowy
                </h4>
                <p>Krótkie pętle kradną cały przepływ, długie pętle stoją w miejscu. Próba ratowania sytuacji mocniejszą pompą podnosi rachunki za prąd i generuje uciążliwe szumy w rozdzielaczu.</p>
            </div>
        </div>

    </div>

    <!-- Pigułki wiedzy (Zamiast hashtagów) -->
    <div class="rk-fin-tags-section">
        <span class="rk-fin-tags-title">Kluczowe zagadnienia techniczne poruszane w artykule:</span>
        <div class="rk-fin-tag-wrapper">
            <span class="rk-clean-tag">Pękanie posadzki na podłogówce</span>
            <span class="rk-clean-tag">Wysokie rachunki za ogrzewanie</span>
            <span class="rk-clean-tag">Precyzyjna hydraulika pompy ciepła</span>
            <span class="rk-clean-tag">Obliczenia OZC a hydraulika</span>
            <span class="rk-clean-tag">Kompleksowy projekt inżynierski</span>
        </div>
    </div>
</div>

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Czyszczenie
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Aktywacja
            this.classList.add('active');
            const targetId = 'panel-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-primary: #0284c7;
    --rk-dl-primary-hover: #0369a1;
    --rk-dl-bg: #ffffff;
    --rk-dl-surface: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-success: #10b981;
    --rk-dl-accent: #38bdf8;
}

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

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

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-dl-header h2 svg {
    color: var(--rk-dl-accent);
    flex-shrink: 0;
}

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

/* Układ 2-kolumnowy */
.rk-dl-layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    background: var(--rk-dl-bg);
}

/* Sekcja Podglądu Grafiki */
.rk-dl-preview {
    padding: 40px;
    background: var(--rk-dl-surface);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-dl-image-box {
    width: 100%;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    cursor: zoom-in;
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.rk-dl-image-box:hover {
    transform: translateY(-5px);
    border-color: var(--rk-dl-primary);
}

.rk-dl-image-box img {
    width: 100%;
    height: auto;
    display: block;
}

.rk-dl-zoom-overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rk-dl-image-box:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    background: var(--rk-dl-primary);
    color: #ffffff;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* Sekcja Informacji i Pobierania */
.rk-dl-info {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-dl-list li {
    font-size: 15px;
    color: var(--rk-dl-text);
    margin-bottom: 12px;
    padding-left: 32px;
    position: relative;
    line-height: 1.6;
    font-weight: 500;
}

.rk-dl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310b981' 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: contain;
    background-repeat: no-repeat;
}

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

.rk-btn-download:hover {
    background: var(--rk-dl-primary-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.4);
}

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

.rk-btn-download:hover svg {
    transform: translateY(3px);
}

/* Stopka: Copyright i Tagi */
.rk-dl-footer {
    padding: 25px 40px;
    background: var(--rk-dl-surface);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-dl-copyright {
    font-size: 13px;
    color: #64748b;
    margin: 0;
    line-height: 1.6;
    text-align: center;
}

.rk-dl-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rk-dl-tag {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-dl-primary);
    background: #e0f2fe;
    padding: 6px 14px;
    border-radius: 6px;
    border: 1px solid #bae6fd;
}

/* --- LIGHTBOX (Modal) --- */
.rk-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.rk-lightbox.active {
    opacity: 1;
    pointer-events: auto;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    transform: scale(0.95);
    transition: transform 0.3s ease;
}

.rk-lightbox.active .rk-lightbox-content {
    transform: scale(1);
}

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    display: block;
}

.rk-lightbox-close {
    position: absolute;
    top: -20px;
    right: -20px;
    background: #ffffff;
    color: var(--rk-dl-dark);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    border: none;
    transition: background 0.2s;
}

.rk-lightbox-close:hover {
    background: #f1f5f9;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-layout { grid-template-columns: 1fr; }
    .rk-dl-preview { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-info { padding: 30px 20px; }
    .rk-dl-footer { padding: 25px 20px; }
    .rk-btn-download { width: 100%; font-size: 15px; }
    .rk-lightbox-close { top: 10px; right: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Materiały dodatkowe: Infografika wymogów prawa budowlanego",
    "description": "Pobierz darmową infografikę w formacie PDF. Eksperckie zestawienie norm prawnych, wymogów odbioru i parametrów montażowych instalacji grzewczej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-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-15",
    "dateModified": "2026-06-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Infografika techniczna: Prawo budowlane a projekt podłogówki",
    "description": "Graficzne zestawienie norm prawnych i parametrów montażowych, gotowe do wydruku dla inwestora.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "darmowy projekt ogrzewania podłogowego pdf",
      "schemat instalacji ogrzewania podłogowego",
      "odbiór instalacji ogrzewania podłogowego",
      "jak czytać projekt ogrzewania podłogowego",
      "warunki techniczne odbioru instalacji hvac"
    ],
    "measurementTechnique": "Zestawienie wizualne opierające się na wytycznych normy PN-EN 1264 oraz uwarunkowaniach Prawa Budowlanego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format danych: Dokument PDF przystosowany do weryfikacji na budowie.",
        "Status prawny: Materiał autorski z możliwością redystrybucji z zachowaniem oryginalnego logotypu.",
        "Zawartość merytoryczna: Algorytmy doboru, wytyczne do odbioru technicznego i wymogi programu Czyste Powietrze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Interaktywna Przeglądarka Dokumentacji",
    "description": "Wbudowany moduł Lightbox pozwalający na podgląd infografiki inżynierskiej w wysokiej rozdzielczości oraz bezpośrednie pobranie certyfikowanego dokumentu PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container">
    <div class="rk-dl-header">
        <h2>
            <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="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>
            Baza Wiedzy: Podsumowanie w pigułce
        </h2>
        <p>Pobierz autorską infografikę. Zabierz twarde dane na budowę i miej pewność, że wykonawca przestrzega standardów inżynierskich.</p>
    </div>

    <div class="rk-dl-layout">
        
        <div class="rk-dl-preview">
            <div class="rk-dl-image-box" id="rkOpenLightbox" role="button" aria-label="Powiększ infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.webp" alt="Podgląd infografiki: Czy trzeba mieć projekt na ogrzewanie podłogowe">
                <div class="rk-dl-zoom-overlay">
                    <div class="rk-dl-zoom-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-dl-info">
            <h3>Co znajdziesz w materiale?</h3>
            <ul class="rk-dl-list">
                <li>Zestawienie twardych norm PN-EN dotyczących instalacji.</li>
                <li>Wizualny algorytm prawidłowego rozstawu pętli.</li>
                <li>Skrócony wykaz wymogów prawnych do odbioru budynku.</li>
                <li>Porównanie kosztów (instalacja z głowy vs dokumentacja).</li>
            </ul>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.pdf" download="" class="rk-btn-download">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                Pobierz materiał PDF
            </a>
        </div>
    </div>

    <div class="rk-dl-footer">
        <div class="rk-dl-tags">
            <span class="rk-dl-tag">schemat instalacji ogrzewania podłogowego</span>
            <span class="rk-dl-tag">darmowy projekt ogrzewania podłogowego pdf</span>
            <span class="rk-dl-tag">odbiór instalacji ogrzewania podłogowego</span>
            <span class="rk-dl-tag">jak czytać projekt ogrzewania podłogowego</span>
        </div>
        <p class="rk-dl-copyright">
            © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
        </p>
    </div>
</div>

<div class="rk-lightbox" id="rkLightboxOverlay">
    <div class="rk-lightbox-content">
        <button class="rk-lightbox-close" id="rkCloseLightbox" aria-label="Zamknij podgląd">
            <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="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.webp" alt="Pełny podgląd infografiki" class="rk-lightbox-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const openBtn = document.getElementById('rkOpenLightbox');
    const closeBtn = document.getElementById('rkCloseLightbox');
    const overlay = document.getElementById('rkLightboxOverlay');

    // Otwórz Lightbox
    openBtn.addEventListener('click', function() {
        overlay.classList.add('active');
        document.body.style.overflow = 'hidden'; // Zablokowanie scrollowania strony
    });

    // Zamknij Lightbox (X button)
    closeBtn.addEventListener('click', function() {
        overlay.classList.remove('active');
        document.body.style.overflow = '';
    });

    // Zamknij Lightbox klikając w tło
    overlay.addEventListener('click', function(e) {
        if (e.target === overlay) {
            overlay.classList.remove('active');
            document.body.style.overflow = '';
        }
    });

    // Zamknij Lightbox klawiszem ESC
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && overlay.classList.contains('active')) {
            overlay.classList.remove('active');
            document.body.style.overflow = '';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">Czy trzeba mieć projekt na ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe w remontowanym budynku – czy warto?</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 24 Nov 2024 10:54:53 +0000</pubDate>
				<category><![CDATA[Domy energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Modernizacja budynków]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady remontowe]]></category>
		<category><![CDATA[Remonty budynków]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacja ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[modernizacja domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie w starym domu]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[remont budynku]]></category>
		<category><![CDATA[technologie grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1603</guid>

					<description><![CDATA[<p>Czy warto inwestować w ogrzewanie podłogowe w remontowanym budynku? To pytanie nurtuje wielu właścicieli starszych nieruchomości. Ogrzewanie podłogowe zapewnia komfort cieplny, estetykę wnętrza oraz niższe rachunki za ogrzewanie. Jednak instalacja takiego systemu w starszym budynku wiąże się z pewnymi wyzwaniami i kosztami. W artykule omawiamy zalety, wyzwania oraz sposoby optymalizacji kosztów, które mogą sprawić, że inwestycja będzie bardziej opłacalna.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku – czy warto?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light-blue: #f0f9ff;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    /* ZERO ANIMACJI - ZGODNIE Z WYTYCZNYMI */
}

/* Sekcja Główna - Hook */
.rk-intro-hook-area {
    padding: 40px 45px;
    background: linear-gradient(to right, var(--rk-intro-dark), #1e293b);
    color: #ffffff;
}

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

.rk-intro-lead {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    font-weight: 400;
    margin: 0 0 30px 0;
}

.rk-intro-lead strong {
    color: #ffffff;
    font-weight: 700;
}

/* Szybka Odpowiedź (Quick Answer Box) */
.rk-qa-box {
    background: #ffffff;
    border-radius: 12px;
    padding: 25px 30px;
    border-left: 6px solid var(--rk-intro-green);
    color: var(--rk-intro-dark);
}

.rk-qa-title {
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-intro-green);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-qa-content {
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    font-weight: 500;
}

.rk-qa-content a {
    color: var(--rk-intro-blue);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Sekcja Spisu Narzędzi */
.rk-intro-tools-area {
    padding: 35px 45px;
    background: var(--rk-intro-gray);
}

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

/* Zakładki bez animacji */
.rk-intro-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 15px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

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

.rk-intro-panels {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 25px;
}

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

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

.rk-intro-panel h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

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

.rk-intro-panel a {
    color: var(--rk-intro-blue);
    font-weight: 700;
    text-decoration: none;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-intro-hook-area { padding: 30px 20px; }
    .rk-intro-hook-area h2 { font-size: 26px; }
    .rk-qa-box { padding: 20px; }
    .rk-intro-tools-area { padding: 30px 20px; }
    .rk-intro-tabs { flex-direction: column; }
    .rk-intro-tab-btn { justify-content: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Ogrzewanie podłogowe w remontowanym budynku – czy warto?",
    "description": "Zastanawiasz się, czy instalować podłogówkę w starym domu? Poznaj twarde liczby, warunki opłacalności i skorzystaj z naszych inżynierskich kalkulatorów inwestycji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-07-01",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-wstep",
    "name": "Wskaźniki bazowe opłacalności instalacji grzewczej w renowacji",
    "description": "Podstawowe dane wejściowe warunkujące techniczną i ekonomiczną sensowność wymiany systemu grzewczego w starym budownictwie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w remontowanym budynku czy warto",
      "zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników",
      "czy ogrzewanie podłogowe jest energooszczędne",
      "koszt ogrzewania domu 2026",
      "najczęstsze błędy przy montażu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Redukcja zużycia energii w ujęciu procentowym (COP) po przejściu na źródło niskotemperaturowe (np. pompa ciepła) przy zadanym wskaźniku EU.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Potencjał oszczędności eksploatacyjnych: do 35% redukcji kosztów.",
        "Warunek graniczny efektywności: Wskaźnik EU budynku poniżej lub równy 70 kWh/(m2·rok).",
        "Kluczowe problemy modernizacji: Nośność starych stropów (system mokry vs suchy) oraz dopuszczalna wysokość progów drzwiowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-wstep",
    "name": "Przewodnik po Interaktywnych Narzędziach Modernizacyjnych",
    "description": "Moduł nawigacyjny wprowadzający użytkownika do zbioru inżynierskich kalkulatorów kosztów, wysokości i symulacji obciążeń stropowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-article-intro">
    
    <div class="rk-intro-hook-area">
        <h2>Ogrzewanie podłogowe w remontowanym budynku – czy warto?</h2>
        
        <p class="rk-intro-lead">
            Remontujesz stary dom, patrzysz na żeliwne grzejniki i zastanawiasz się, czy zrywać posadzki dla &#8222;podłogówki&#8221;? Prawda inżynierska jest brutalna: montaż systemu &#8222;na siłę&#8221; i bez audytu <strong>zrujnuje Twój budżet</strong>. Z drugiej strony, dobrze zaprojektowana płaszczyznowa instalacja niskotemperaturowa potrafi <strong>obniżyć koszty eksploatacji nawet o 35%</strong>.
        </p>

        <div class="rk-qa-box">
            <div class="rk-qa-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Szybka odpowiedź eksperta (TL;DR)
            </div>
            <p class="rk-qa-content">
                <strong>Tak, zdecydowanie warto.</strong> Decyzja ta musi jednak opierać się na chłodnej kalkulacji fizycznej. Opłacalność instalacji w starym budynku pojawia się wtedy, gdy połączysz ją z termomodernizacją, by zredukować zapotrzebowanie energetyczne budynku. Wodne <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">ogrzewanie podłogowe</a> drastycznie podnosi efektywność <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pomp ciepła</a> i kotłów kondensacyjnych, eliminując zimne strefy w pomieszczeniach. Główne wyzwanie to nośność stropu oraz grubość izolacji.
            </p>
        </div>
    </div>

    <div class="rk-intro-tools-area">
        <h3 class="rk-tools-heading">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-blue)" 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>
            Co znajdziesz w dalszej części tego kompendium?
        </h3>
        
        <p style="color: var(--rk-intro-text); font-size: 15px; margin-bottom: 20px;">
            Ten artykuł to nie jest kolejny teoretyczny blog. Przygotowaliśmy dla Ciebie zestaw narzędzi, z którymi wyliczysz twarde koszty i sprawdzisz swoją posadzkę przed wejściem ekipy budowlanej.
        </p>

        <div class="rk-intro-tabs">
            <button class="rk-intro-tab-btn active-tab" id="btnT1" onclick="switchIntroPanel('t1')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                Kalkulatory Kosztów
            </button>
            <button class="rk-intro-tab-btn" id="btnT2" onclick="switchIntroPanel('t2')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="2" y1="12" x2="22" y2="12"></line><line x1="6" y1="12" x2="6" y2="8"></line><line x1="18" y1="12" x2="18" y2="8"></line></svg>
                Symulatory Grubośći
            </button>
            <button class="rk-intro-tab-btn" id="btnT3" onclick="switchIntroPanel('t3')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                Stres-Test Stropu
            </button>
        </div>

        <div class="rk-intro-panels">
            <div class="rk-intro-panel active-panel" id="panT1">
                <h3>Interaktywny kosztorys inwestycyjny</h3>
                <p>Omiń ryczałtowe zgadywanki. Udostępniamy narzędzie, które wylicza koszty robocizny, rur PEX oraz wielkości rozdzielaczy na żywo, na podstawie zadanego rozstawu rur. Dokładnie wiesz, za co płacisz instalatorowi.</p>
            </div>
            
            <div class="rk-intro-panel" id="panT2">
                <h3>Problem drzwi i nadproży</h3>
                <p>Skorzystaj z wbudowanej miarki cyfrowej, która demonstruje fizyczne różnice w grubości całkowitej posadzki między <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">systemem mokrym</a> a renowacyjnym układem na płytach gipsowo-włóknistych.</p>
            </div>
            
            <div class="rk-intro-panel" id="panT3">
                <h3>Bezpieczeństwo nośności starych domów</h3>
                <p>Wizualizator naprężeń uświadomi Ci, dlaczego wlanie 6 cm betonu na stary strop drewniany grozi katastrofą, oraz wyjaśni, jak <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy w wodnym ogrzewaniu</a> całkowicie eliminuje to ryzyko (redukując wagę posadzki do 30 kg/m²).</p>
            </div>
        </div>

    </div>
</div>

<script>
// Funkcja sterująca panelem (brak animacji - natychmiastowe przejście)
function switchIntroPanel(id) {
    var btn1 = document.getElementById('btnT1');
    var btn2 = document.getElementById('btnT2');
    var btn3 = document.getElementById('btnT3');
    var pan1 = document.getElementById('panT1');
    var pan2 = document.getElementById('panT2');
    var pan3 = document.getElementById('panT3');

    // Usuwanie klas aktywnych
    btn1.classList.remove('active-tab');
    btn2.classList.remove('active-tab');
    btn3.classList.remove('active-tab');
    pan1.classList.remove('active-panel');
    pan2.classList.remove('active-panel');
    pan3.classList.remove('active-panel');

    // Bezpieczne sprawdzanie warunków (bez &&/||)
    if (id === 't1') {
        btn1.classList.add('active-tab');
        pan1.classList.add('active-panel');
    }
    if (id === 't2') {
        btn2.classList.add('active-tab');
        pan2.classList.add('active-panel');
    }
    if (id === 't3') {
        btn3.classList.add('active-tab');
        pan3.classList.add('active-panel');
    }
}
</script>



<style>
:root {
    --rk-feas-dark: #0f172a;
    --rk-feas-blue: #0284c7;
    --rk-feas-light: #f0f9ff;
    --rk-feas-green: #10b981;
    --rk-feas-red: #ef4444;
    --rk-feas-gray: #f8fafc;
    --rk-feas-border: #e2e8f0;
    --rk-feas-text: #475569;
}

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

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

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

.rk-feas-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
    max-width: 800px;
    margin: 0 auto;
}

.rk-feas-intro a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(56, 189, 248, 0.3);
    transition: border-color 0.3s;
}

.rk-feas-intro a:hover {
    border-bottom-color: #38bdf8;
}

/* Aplikacja */
.rk-feas-app {
    display: flex;
    flex-direction: column;
}

/* Sterowanie - Kafelki decyzyjne */
.rk-feas-controls {
    padding: 35px 45px;
    background: var(--rk-feas-gray);
    border-bottom: 1px solid var(--rk-feas-border);
}

.rk-feas-controls h3 {
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-feas-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-feas-grid-btn {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-feas-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-feas-border);
    border-radius: 14px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-feas-btn-sub {
    font-size: 13px;
    color: #64748b;
    line-height: 1.4;
}

/* Aktywne stany przycisków */
.rk-feas-btn.active[data-state="good"] {
    border-color: var(--rk-feas-green);
    background: #f0fdf4;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.15);
    transform: translateY(-3px);
}
.rk-feas-btn.active[data-state="good"] .rk-feas-btn-icon {
    background: var(--rk-feas-green);
    color: #ffffff;
}
.rk-feas-btn.active[data-state="good"] .rk-feas-btn-title { color: #065f46; }

.rk-feas-btn.active[data-state="bad"] {
    border-color: var(--rk-feas-red);
    background: #fef2f2;
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.15);
    transform: translateY(-3px);
}
.rk-feas-btn.active[data-state="bad"] .rk-feas-btn-icon {
    background: var(--rk-feas-red);
    color: #ffffff;
}
.rk-feas-btn.active[data-state="bad"] .rk-feas-btn-title { color: #991b1b; }

/* Panel Wyników */
.rk-feas-display {
    padding: 40px 45px;
    background: #ffffff;
}

.rk-feas-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-metric-card {
    background: var(--rk-feas-gray);
    border: 1px solid var(--rk-feas-border);
    border-radius: 12px;
    padding: 20px 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: all 0.4s ease;
}

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

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-feas-dark);
}

.rk-metric-unit {
    font-size: 13px;
    font-weight: 600;
    color: #94a3b8;
    margin-top: 5px;
}

/* Kolorowanie metryk */
.val-safe { color: var(--rk-feas-green); }
.val-danger { color: var(--rk-feas-red); }
.card-danger { border-color: #fca5a5; background: #fef2f2; }

/* Okno wniosków */
.rk-feas-conclusion {
    padding: 25px;
    border-radius: 16px;
    font-size: 15px;
    line-height: 1.7;
    font-weight: 500;
    transition: all 0.4s ease;
}

.conc-safe {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.conc-danger {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.conc-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 10px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-feas-grid-btn { grid-template-columns: 1fr; }
    .rk-feas-metrics { grid-template-columns: 1fr 1fr; gap: 10px; }
    .rk-feas-header { padding: 35px 20px; }
    .rk-feas-controls, .rk-feas-display { padding: 30px 20px; }
    .rk-feas-btn { flex-direction: row; text-align: left; padding: 15px; }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-oplacalnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Czy montaż ogrzewania podłogowego w starym domu jest technicznie możliwy i opłacalny?",
    "description": "Sprawdź opłacalność inwestycji w ogrzewanie podłogowe. Poznaj wskaźniki EU oraz normę PN-EN 1264-3 limitującą temperaturę posadzki do 29°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.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-07-01",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-oplacalnosc",
    "name": "Wskaźniki zapotrzebowania na energię i parametry graniczne podłogówki (PN-EN 1264-3)",
    "description": "Zestawienie inżynieryjne obrazujące spadek efektywności COP i ryzyko uszkodzeń podłogi przy braku wcześniejszej termomodernizacji budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż ogrzewania podłogowego w starym domu",
      "pn-en 1264 norma która definiuje ogrzewanie podłogowe",
      "projektowe obciążenie cieplne ozc",
      "maksymalna temperatura zasilania podłogówki",
      "zwrot z inwestycji w ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Określenie progu opłacalności przy wskaźniku EU <= 70 kWh/(m2·rok) oraz limitacji temperatury posadzki do 29°C zgodnie z europejską normą ogrzewania płaszczyznowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opłacalność: Zwrot z inwestycji 5-7 lat przy połączonej termomodernizacji.",
        "Parametr graniczny temperatury powierzchni: Maksymalnie 29°C w strefie przebywania ludzi.",
        "Maksymalne zapotrzebowanie cieplne dla podłogówki: Poniżej 50 W/m2.",
        "Błąd braku izolacji: Wymusza zasilanie do 50°C, powodując przegrzewanie betonu, pękanie płytek i drastyczny spadek wskaźnika COP pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-oplacalnosc",
    "name": "Symulator Opłacalności Podłogówki w Starym Domu",
    "description": "Interaktywny symulator diagnostyczny pozwalający oszacować opłacalność oraz parametry hydrauliczne wariantu z ociepleniem ścian wobec braku termomodernizacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-feas-container" id="rk-feasibility-sim">
    <div class="rk-feas-header">
        <h2>Czy montaż ogrzewania podłogowego w starym domu jest technicznie możliwy i opłacalny?</h2>
        <div class="rk-feas-intro">
            Tak, montaż wodnego ogrzewania w starym budynku jest technicznie wykonalny w 92% przypadków. Jego opłacalność jest jednak uwarunkowana osiągnięciem granicznego wskaźnika zapotrzebowania na energię użytkową EU ≤ 70 kWh/(m²·rok). Zgodnie z wytycznymi zawartymi w <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normie PN-EN 1264-3</a>, maksymalna temperatura powierzchni podłogi w strefie stałego przebywania ludzi wynosi 29°C, co przy tradycyjnym układzie wymaga budynku o stratach ciepła nieprzekraczających 50 W/m².
        </div>
    </div>

    <div class="rk-feas-app">
        <div class="rk-feas-controls">
            <h3>Określ status budynku przed remontem:</h3>
            <div class="rk-feas-grid-btn">
                <button class="rk-feas-btn active" data-state="good" id="btnStateGood" onclick="updateFeasState('good')">
                    <div class="rk-feas-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                    </div>
                    <div>
                        <span class="rk-feas-btn-title">Wykonano termomodernizację</span>
                        <span class="rk-feas-btn-sub">Docieplone ściany i dach, nowe okna</span>
                    </div>
                </button>

                <button class="rk-feas-btn" data-state="bad" id="btnStateBad" onclick="updateFeasState('bad')">
                    <div class="rk-feas-btn-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 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    </div>
                    <div>
                        <span class="rk-feas-btn-title">Brak termomodernizacji</span>
                        <span class="rk-feas-btn-sub">Goła cegła, stara stolarka, duże straty</span>
                    </div>
                </button>
            </div>
        </div>

        <div class="rk-feas-display">
            <div class="rk-feas-metrics">
                <div class="rk-metric-card" id="cardEU">
                    <span class="rk-metric-label">Wskaźnik (EU)</span>
                    <span class="rk-metric-val val-safe" id="valEU">≤ 70</span>
                    <span class="rk-metric-unit">kWh/(m²·rok)</span>
                </div>
                <div class="rk-metric-card" id="cardLoss">
                    <span class="rk-metric-label">Straty Ciepła</span>
                    <span class="rk-metric-val val-safe" id="valLoss">45</span>
                    <span class="rk-metric-unit">W/m²</span>
                </div>
                <div class="rk-metric-card" id="cardFlow">
                    <span class="rk-metric-label">Temp. Zasilania</span>
                    <span class="rk-metric-val val-safe" id="valFlow">35°C</span>
                    <span class="rk-metric-unit">Wlot na pętle</span>
                </div>
                <div class="rk-metric-card" id="cardFloor">
                    <span class="rk-metric-label">Temp. Posadzki</span>
                    <span class="rk-metric-val val-safe" id="valFloor">26°C</span>
                    <span class="rk-metric-unit">Zgodne z normą</span>
                </div>
            </div>

            <div class="rk-feas-conclusion conc-safe" id="concBox">
                <div class="conc-title" id="concTitle">
                    <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>
                    Opłacalność: Zwrot w 5–7 lat
                </div>
                <div id="concText">
                    Inwestycja jest wysoce opłacalna. Niska <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color:inherit; text-decoration:underline;">temperatura zasilania</a> gwarantuje maksymalną sprawność (COP) nowoczesnej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:inherit; text-decoration:underline;">pompy ciepła</a>. System pracuje stabilnie, zapewniając komfort i idealny pionowy rozkład temperatury bez ryzyka uszkodzenia okładzin.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function updateFeasState(state) {
    var btnGood = document.getElementById('btnStateGood');
    var btnBad = document.getElementById('btnStateBad');
    
    var valEU = document.getElementById('valEU');
    var valLoss = document.getElementById('valLoss');
    var valFlow = document.getElementById('valFlow');
    var valFloor = document.getElementById('valFloor');
    
    var cardEU = document.getElementById('cardEU');
    var cardLoss = document.getElementById('cardLoss');
    var cardFlow = document.getElementById('cardFlow');
    var cardFloor = document.getElementById('cardFloor');
    
    var concBox = document.getElementById('concBox');
    var concTitle = document.getElementById('concTitle');
    var concText = document.getElementById('concText');

    btnGood.classList.remove('active');
    btnBad.classList.remove('active');

    if (state === 'good') {
        btnGood.classList.add('active');
        
        // Aktualizacja Wartości
        valEU.innerText = '≤ 70'; valEU.className = 'rk-metric-val val-safe';
        valLoss.innerText = '45'; valLoss.className = 'rk-metric-val val-safe';
        valFlow.innerText = '35°C'; valFlow.className = 'rk-metric-val val-safe';
        valFloor.innerText = '26°C'; valFloor.className = 'rk-metric-val val-safe';

        // Aktualizacja Kart
        cardEU.className = 'rk-metric-card';
        cardLoss.className = 'rk-metric-card';
        cardFlow.className = 'rk-metric-card';
        cardFloor.className = 'rk-metric-card';

        // Aktualizacja Komunikatu
        concBox.className = 'rk-feas-conclusion conc-safe';
        concTitle.innerHTML = '<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> Opłacalność: Zwrot w 5–7 lat';
        concText.innerHTML = 'Inwestycja jest wysoce opłacalna. Niska <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color:inherit; text-decoration:underline;">temperatura zasilania</a> gwarantuje maksymalną sprawność (COP) nowoczesnej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:inherit; text-decoration:underline;">pompy ciepła</a>. System pracuje stabilnie, zapewniając komfort i szybki <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" style="color:inherit; text-decoration:underline;">zwrot z inwestycji</a>.';
    }

    if (state === 'bad') {
        btnBad.classList.add('active');
        
        // Aktualizacja Wartości
        valEU.innerText = '> 150'; valEU.className = 'rk-metric-val val-danger';
        valLoss.innerText = '120+'; valLoss.className = 'rk-metric-val val-danger';
        valFlow.innerText = '50°C'; valFlow.className = 'rk-metric-val val-danger';
        valFloor.innerText = '32°C'; valFloor.className = 'rk-metric-val val-danger';

        // Aktualizacja Kart
        cardEU.className = 'rk-metric-card card-danger';
        cardLoss.className = 'rk-metric-card card-danger';
        cardFlow.className = 'rk-metric-card card-danger';
        cardFloor.className = 'rk-metric-card card-danger';

        // Aktualizacja Komunikatu
        concBox.className = 'rk-feas-conclusion conc-danger';
        concTitle.innerHTML = '<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="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> Brak opłacalności (Ryzyko usterek)';
        concText.innerHTML = 'Głównym problemem jest tu ryzyko bezwładności finansowej. Wysoki opór cieplny gołych ścian zmusza system do pracy na parametrach zasilania rzędu 50°C. Powoduje to przegrzewanie jastrychu (powyżej normy 29°C), pękanie okładzin oraz drastyczny spadek sprawności źródła ciepła. Wykonanie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:inherit; text-decoration:underline;">obliczeń OZC</a> obnaży gigantyczne straty.';
    }
}
</script>



<style>
:root {
    --rk-hgt-dark: #0f172a;
    --rk-hgt-blue: #0284c7;
    --rk-hgt-light: #f0f9ff;
    --rk-hgt-green: #10b981;
    --rk-hgt-red: #ef4444;
    --rk-hgt-gray: #f8fafc;
    --rk-hgt-border: #e2e8f0;
    --rk-hgt-text: #475569;
}

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

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

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

.rk-hgt-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    max-width: 800px;
    margin: 0 auto;
}

.rk-hgt-intro a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(56, 189, 248, 0.3);
    transition: border-color 0.3s;
}

.rk-hgt-intro a:hover {
    border-bottom-color: #38bdf8;
}

/* Sekcja Sterowania (Przyciski Górne) */
.rk-hgt-controls {
    padding: 35px 45px;
    background: var(--rk-hgt-gray);
    border-bottom: 1px solid var(--rk-hgt-border);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-hgt-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-hgt-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

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

.rk-hgt-btn-sub {
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-hgt-btn.active[data-mode="wet"] {
    border-color: var(--rk-hgt-blue);
    background: var(--rk-hgt-light);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    transform: translateY(-3px);
}

.rk-hgt-btn.active[data-mode="dry"] {
    border-color: var(--rk-hgt-green);
    background: #f0fdf4;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.15);
    transform: translateY(-3px);
}

.rk-hgt-btn.active[data-mode="error"] {
    border-color: var(--rk-hgt-red);
    background: #fef2f2;
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.15);
    transform: translateY(-3px);
}

/* Horyzontalna Wizualizacja Warstw */
.rk-hgt-display {
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-hgt-scene {
    width: 100%;
    max-width: 600px;
    display: flex;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 35px;
}

/* Lewa miarka */
.rk-scene-ruler {
    width: 80px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    position: relative;
}

.rk-ruler-brace {
    border-top: 3px solid var(--rk-hgt-blue);
    border-bottom: 3px solid var(--rk-hgt-blue);
    border-left: 3px solid var(--rk-hgt-blue);
    border-radius: 6px 0 0 6px;
    width: 20px;
    position: relative;
    transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.rk-ruler-val {
    position: absolute;
    right: 35px;
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-hgt-blue);
    transition: color 0.3s;
}

/* Warstwy */
.rk-scene-stack {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.06);
    border: 1px solid var(--rk-hgt-border);
    border-bottom: none;
}

.rk-stack-item {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s, color 0.3s;
    overflow: hidden;
}

.rk-scene-ground {
    width: 100%;
    max-width: 600px;
    height: 40px;
    background: repeating-linear-gradient(45deg, #f1f5f9, #f1f5f9 10px, #e2e8f0 10px, #e2e8f0 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    margin-left: 110px; /* Offset to align with stack */
    border-radius: 0 0 6px 6px;
}

/* Tabela Specyfikacji */
.rk-hgt-specs {
    width: 100%;
    background: var(--rk-hgt-gray);
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-hgt-border);
}

.rk-specs-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-hgt-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-hgt-border);
}

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

.rk-spec-card {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    border: 1px solid var(--rk-hgt-border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-spec-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-hgt-text);
}

.rk-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-hgt-dark);
}

.rk-spec-val.accent { color: var(--rk-hgt-blue); }

.rk-hgt-msg {
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-hgt-controls { grid-template-columns: 1fr; padding: 25px 20px; }
    .rk-hgt-btn { flex-direction: row; justify-content: space-between; text-align: left; padding: 15px 20px; }
    .rk-hgt-btn-sub { display: none; }
    .rk-hgt-display { padding: 30px 20px; }
    .rk-hgt-scene { gap: 15px; }
    .rk-scene-ruler { width: 50px; }
    .rk-ruler-val { right: 25px; font-size: 26px; }
    .rk-scene-ground { margin-left: 65px; }
    .rk-specs-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-wysokosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Ile centymetrów podłogi zabiera ogrzewanie podłogowe w systemie mokrym i suchym?",
    "description": "Zrozum różnice w wysokości zabudowy instalacji podłogowej. System tradycyjny (116 mm) kontra system suchy renowacyjny (45 mm). Konsekwencje błędów wykonawczych.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-wysokosc",
    "name": "Grubości warstw konstrukcyjnych ogrzewania podłogowego",
    "description": "Inżynierskie rozbicie grubości materiałów (EPS, jastrych, okładziny) dla instalacji mokrych i renowacyjnych systemów suchych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym który wybrać",
      "system suchy w wodnym ogrzewaniu podłogowym",
      "wylewka betonowa na ogrzewanie podłogowe",
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "ogrzewanie podłogowe wodne bez wylewki"
    ],
    "measurementTechnique": "Określenie całkowitej wysokości zabudowy na podstawie normy PN-EN 1264-4, sumującej warstwy izolacji, rur grzewczych, posadzki i okładziny wykończeniowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System mokry (tradycyjny): Izolacja EPS (50 mm) + rura z klipsami (16 mm) + wylewka anhydrytowa (35 mm nad rurą) + płytki (15 mm). Całkowita grubość: 116 mm.",
        "System suchy (renowacyjny): Płyta EPS z folią (25 mm) + rura (16 mm wewnątrz) + płyta gipsowo-włóknista (10 mm) + okładzina (10 mm). Całkowita grubość: 45 mm.",
        "Błąd wykonawczy: Redukcja izolacji do 2 cm na stropie piwnicy w systemie mokrym (całość 86 mm) prowadzi do 25% strat wyprodukowanego ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-wysokosc",
    "name": "Kalkulator Wysokości Zabudowy Podłogi",
    "description": "Interaktywna wizualizacja przekroju podłogi, obrazująca wpływ doboru technologii na konieczność ingerencji w stolarkę drzwiową i nadproża.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hgt-container" id="rk-height-simulator">
    <div class="rk-hgt-header">
        <h2>Ile centymetrów podłogi zabiera ogrzewanie podłogowe w systemie mokrym i suchym?</h2>
        <div class="rk-hgt-intro">
            Klasyczne <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">ogrzewanie podłogowe w systemie mokrym</a> wymaga minimalnej wysokości konstrukcyjnej wynoszącej 11 cm, podczas gdy system suchy (renowacyjny) z płytami gipsowo-włóknistymi potrzebuje zaledwie 4,5 cm. Zgodnie z normą PN-EN 1264-4, minimalna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość jastrychu</a> nad rurą grzewczą to 45 mm.
        </div>
    </div>

    <div class="rk-hgt-app">
        <div class="rk-hgt-controls">
            <button class="rk-hgt-btn active" data-mode="wet" id="btnHgtWet" onclick="setHeightMode('wet')">
                <span class="rk-hgt-btn-title">System Mokry</span>
                <span class="rk-hgt-btn-sub">Tradycyjna wylewka</span>
            </button>
            <button class="rk-hgt-btn" data-mode="dry" id="btnHgtDry" onclick="setHeightMode('dry')">
                <span class="rk-hgt-btn-title">System Suchy</span>
                <span class="rk-hgt-btn-sub">Płyty renowacyjne</span>
            </button>
            <button class="rk-hgt-btn" data-mode="error" id="btnHgtErr" onclick="setHeightMode('error')">
                <span class="rk-hgt-btn-title">Błąd Montażowy</span>
                <span class="rk-hgt-btn-sub">Zbyt cienki styropian</span>
            </button>
        </div>

        <div class="rk-hgt-display">
            
            <div class="rk-hgt-scene">
                <div class="rk-scene-ruler">
                    <div class="rk-ruler-brace" id="rulerBrace" style="height: 116px;">
                        <span class="rk-ruler-val" id="rulerVal">116</span>
                    </div>
                </div>
                
                <div class="rk-scene-stack">
                    <div class="rk-stack-item" id="visLayer1" style="height: 15px; background: #e2e8f0; color: #475569; border-bottom: 2px solid #cbd5e1;">Płytki (15)</div>
                    <div class="rk-stack-item" id="visLayer2" style="height: 51px; background: #94a3b8; color: #ffffff; border-bottom: 2px solid #64748b;">Jastrych + Rura (51)</div>
                    <div class="rk-stack-item" id="visLayer3" style="height: 50px; background: #fef08a; color: #854d0e;">EPS 100 (50)</div>
                </div>
            </div>
            
            <div class="rk-scene-ground">ISTNIEJĄCY STROP / GRUNT</div>

            <div class="rk-hgt-specs">
                <h3 class="rk-specs-title" id="detTitle">Specyfikacja: System Mokry</h3>
                
                <div class="rk-specs-grid">
                    <div class="rk-spec-card">
                        <span class="rk-spec-name" id="nameL1">Okładzina + klej</span>
                        <span class="rk-spec-val" id="valL1">15 mm</span>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-name" id="nameL2">Jastrych (z rurą 16mm)</span>
                        <span class="rk-spec-val" id="valL2">51 mm</span>
                    </div>
                    <div class="rk-spec-card">
                        <span class="rk-spec-name" id="nameL3">Izolacja termiczna EPS</span>
                        <span class="rk-spec-val accent" id="valL3">50 mm</span>
                    </div>
                </div>

                <div class="rk-hgt-msg" id="hgtMessage" style="background: #f0f9ff; color: #0369a1; border: 1px solid #bae6fd;">
                    Tradycyjny i tani w wykonaniu wariant instalacyjny. Podniesienie poziomu posadzki o blisko 12 centymetrów w modernizowanym budynku musi być rygorystycznie zaplanowane względem wysokości nadproży otworów drzwiowych.
                </div>
            </div>

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

<script>
function setHeightMode(mode) {
    var btnWet = document.getElementById('btnHgtWet');
    var btnDry = document.getElementById('btnHgtDry');
    var btnErr = document.getElementById('btnHgtErr');
    
    var rulerBrace = document.getElementById('rulerBrace');
    var rulerVal = document.getElementById('rulerVal');
    
    var vis1 = document.getElementById('visLayer1');
    var vis2 = document.getElementById('visLayer2');
    var vis3 = document.getElementById('visLayer3');
    
    var detTitle = document.getElementById('detTitle');
    var nameL1 = document.getElementById('nameL1');
    var valL1 = document.getElementById('valL1');
    var nameL2 = document.getElementById('nameL2');
    var valL2 = document.getElementById('valL2');
    var nameL3 = document.getElementById('nameL3');
    var valL3 = document.getElementById('valL3');
    var hgtMessage = document.getElementById('hgtMessage');

    btnWet.classList.remove('active');
    btnDry.classList.remove('active');
    btnErr.classList.remove('active');

    if (mode === 'wet') {
        btnWet.classList.add('active');
        
        rulerBrace.style.height = '116px';
        rulerBrace.style.borderColor = 'var(--rk-hgt-blue)';
        rulerVal.innerText = '116';
        rulerVal.style.color = 'var(--rk-hgt-blue)';

        vis1.style.height = '15px'; vis1.innerText = 'Płytki (15)'; vis1.style.background = '#e2e8f0'; vis1.style.color = '#475569';
        vis2.style.height = '51px'; vis2.innerText = 'Jastrych + Rura (51)'; vis2.style.background = '#94a3b8'; vis2.style.color = '#ffffff';
        vis3.style.height = '50px'; vis3.innerText = 'EPS 100 (50)'; vis3.style.background = '#fef08a'; vis3.style.color = '#854d0e';

        detTitle.innerText = 'Specyfikacja: System Mokry';
        nameL1.innerText = 'Okładzina + klej'; valL1.innerText = '15 mm';
        nameL2.innerText = 'Jastrych (z rurą 16mm)'; valL2.innerText = '51 mm';
        nameL3.innerText = 'Izolacja termiczna EPS'; valL3.innerText = '50 mm';
        valL3.className = 'rk-spec-val accent';

        hgtMessage.style.background = '#f0f9ff'; hgtMessage.style.color = '#0369a1'; hgtMessage.style.borderColor = '#bae6fd';
        hgtMessage.innerHTML = 'Tradycyjny i tani w wykonaniu wariant instalacyjny. Podniesienie poziomu posadzki o blisko 12 centymetrów w modernizowanym budynku musi być rygorystycznie zaplanowane względem wysokości nadproży otworów drzwiowych.';
    }
    
    if (mode === 'dry') {
        btnDry.classList.add('active');
        
        rulerBrace.style.height = '45px';
        rulerBrace.style.borderColor = 'var(--rk-hgt-green)';
        rulerVal.innerText = '45';
        rulerVal.style.color = 'var(--rk-hgt-green)';

        vis1.style.height = '10px'; vis1.innerText = 'Wykończenie (10)'; vis1.style.background = '#e2e8f0'; vis1.style.color = '#475569';
        vis2.style.height = '10px'; vis2.innerText = 'Płyta podkład. (10)'; vis2.style.background = '#cbd5e1'; vis2.style.color = '#334155';
        vis3.style.height = '25px'; vis3.innerText = 'EPS + Rura (25)'; vis3.style.background = '#e0f2fe'; vis3.style.color = '#0369a1';

        detTitle.innerText = 'Specyfikacja: System Suchy';
        nameL1.innerText = 'Okładzina wykończeniowa'; valL1.innerText = '10 mm';
        nameL2.innerText = 'Płyta podkładowa'; valL2.innerText = '10 mm';
        nameL3.innerText = 'Systemowa płyta EPS'; valL3.innerText = '25 mm';
        valL3.className = 'rk-spec-val';

        hgtMessage.style.background = '#f0fdf4'; hgtMessage.style.color = '#15803d'; hgtMessage.style.borderColor = '#bbf7d0';
        hgtMessage.innerHTML = 'Złoty standard renowacji. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/" style="color:#166534; text-decoration:underline;">Ogrzewanie wodne bez wylewki</a> eliminuje potrzebę podnoszenia nadproży, całkowicie omijając problemy ze stolarką i obciążeniem starych stropów.';
    }

    if (mode === 'error') {
        btnErr.classList.add('active');
        
        rulerBrace.style.height = '86px';
        rulerBrace.style.borderColor = 'var(--rk-hgt-red)';
        rulerVal.innerText = '86';
        rulerVal.style.color = 'var(--rk-hgt-red)';

        vis1.style.height = '15px'; vis1.innerText = 'Płytki (15)'; vis1.style.background = '#e2e8f0'; vis1.style.color = '#475569';
        vis2.style.height = '51px'; vis2.innerText = 'Jastrych + Rura (51)'; vis2.style.background = '#94a3b8'; vis2.style.color = '#ffffff';
        vis3.style.height = '20px'; vis3.innerText = 'EPS Krytyczne (20)'; vis3.style.background = '#fca5a5'; vis3.style.color = '#7f1d1d';

        detTitle.innerText = 'Skutek odchudzenia izolacji';
        nameL1.innerText = 'Okładzina + klej'; valL1.innerText = '15 mm';
        nameL2.innerText = 'Jastrych (z rurą 16mm)'; valL2.innerText = '51 mm';
        nameL3.innerText = 'Odchudzona warstwa EPS'; valL3.innerText = '20 mm';
        valL3.className = 'rk-spec-val'; valL3.style.color = 'var(--rk-hgt-red)';

        hgtMessage.style.background = '#fef2f2'; hgtMessage.style.color = '#991b1b'; hgtMessage.style.borderColor = '#fecaca';
        hgtMessage.innerHTML = '<strong>Zagrożenie budowlane:</strong> Inwestor "odchudza" izolację na stropie nad nieogrzewaną piwnicą do 2 cm, by zmieścić drzwi. Skutkuje to ucieczką do 25% wyprodukowanego ciepła w dół. Rachunki dramatycznie rosną, a podłoga nie osiąga zadanej temperatury.';
    }
}
</script>



<style>
:root {
    --rk-load-dark: #0f172a;
    --rk-load-blue: #0284c7;
    --rk-load-wood: #8b5a2b; /* Kolor drewna */
    --rk-load-wood-light: #d2b48c;
    --rk-load-red: #ef4444;
    --rk-load-green: #10b981;
    --rk-load-gray: #f8fafc;
    --rk-load-border: #e2e8f0;
    --rk-load-text: #334155;
}

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

/* Nagłówek i Wstęp */
.rk-load-header {
    padding: 35px 45px 25px;
    background: linear-gradient(135deg, var(--rk-load-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

.rk-load-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

.rk-load-intro a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(56, 189, 248, 0.3);
    transition: border-color 0.3s;
}

.rk-load-intro a:hover {
    border-bottom-color: #38bdf8;
}

/* Interfejs Aplikacji */
.rk-load-app {
    display: flex;
    flex-direction: column;
}

/* Panel Sterowania */
.rk-load-controls {
    padding: 30px 45px;
    background: var(--rk-load-gray);
    border-bottom: 1px solid var(--rk-load-border);
    text-align: center;
}

.rk-load-controls h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-load-dark);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-load-toggles {
    display: flex;
    gap: 20px;
    justify-content: center;
}

.rk-toggle-btn {
    flex: 1;
    max-width: 300px;
    padding: 18px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-load-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-toggle-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-load-dark);
}

.rk-toggle-btn-sub {
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

/* Aktywne stany przycisków */
.rk-toggle-btn.active[data-type="dry"] {
    border-color: var(--rk-load-green);
    background: #f0fdf4;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.15);
}
.rk-toggle-btn.active[data-type="dry"] .rk-toggle-btn-title { color: #065f46; }
.rk-toggle-btn.active[data-type="dry"] .rk-toggle-btn-sub { color: var(--rk-load-green); }

.rk-toggle-btn.active[data-type="wet"] {
    border-color: var(--rk-load-red);
    background: #fef2f2;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}
.rk-toggle-btn.active[data-type="wet"] .rk-toggle-btn-title { color: #991b1b; }
.rk-toggle-btn.active[data-type="wet"] .rk-toggle-btn-sub { color: var(--rk-load-red); }

/* Główny Ekran Symulacji */
.rk-load-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Strona - Układ Warstw */
.rk-load-layers {
    padding: 40px 45px;
    border-right: 1px solid var(--rk-load-border);
}

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

.rk-layer-stack {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rk-layer-item {
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    transition: all 0.4s ease;
}

/* Warstwy - System Suchy */
.stack-dry .layer-1 { background: #e2e8f0; color: #475569; } /* Okładzina */
.stack-dry .layer-2 { background: #cbd5e1; color: #334155; } /* Płyty jastrychowe */
.stack-dry .layer-3 { background: #e0f2fe; color: #0284c7; border: 1px solid #bae6fd; } /* Lamele + PEX */
.stack-dry .layer-4 { background: #fef08a; color: #854d0e; } /* EPS 300 */
.stack-dry .layer-5 { background: var(--rk-load-wood-light); color: var(--rk-load-wood); border: 2px dashed var(--rk-load-wood); } /* Drewno */

/* Warstwy - System Mokry */
.stack-wet .layer-1 { background: #e2e8f0; color: #475569; } /* Okładzina */
.stack-wet .layer-2 { background: #94a3b8; color: #ffffff; padding: 25px 15px; } /* Wylewka (gruba) */
.stack-wet .layer-3 { background: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1; } /* PEX na klipsach */
.stack-wet .layer-4 { background: #fef08a; color: #854d0e; } /* EPS */
.stack-wet .layer-5 { background: var(--rk-load-wood-light); color: var(--rk-load-wood); border: 2px dashed var(--rk-load-wood); } /* Drewno */

/* Prawa Strona - Wizualizacja Obciążeń */
.rk-load-visualizer {
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    position: relative;
}

.rk-weight-indicator {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    margin-bottom: -20px;
}

.weight-safe { background: var(--rk-load-green); }
.weight-danger { background: var(--rk-load-red); transform: scale(1.1); animation: pulseDanger 1.5s infinite; }

@keyframes pulseDanger {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.rk-weight-val { font-size: 32px; line-height: 1; }
.rk-weight-unit { font-size: 14px; opacity: 0.9; }

/* Belka stropowa */
.rk-beam-container {
    width: 100%;
    height: 100px;
    position: relative;
}

.rk-wooden-beam {
    width: 100%;
    height: 30px;
    background: var(--rk-load-wood);
    border-radius: 4px;
    position: absolute;
    top: 35px;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2);
}

/* Efekt ugięcia */
.beam-sag {
    border-radius: 50%;
    transform: scaleY(2.5) translateY(5px);
    background: #6b4423;
}

.rk-status-msg {
    margin-top: 30px;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 600;
    text-align: center;
    transition: all 0.3s;
}

.msg-safe { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.msg-danger { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-load-display { grid-template-columns: 1fr; }
    .rk-load-controls, .rk-load-layers, .rk-load-visualizer { padding: 30px 20px; }
    .rk-load-header { padding: 35px 20px; }
    .rk-load-toggles { flex-direction: column; gap: 10px; }
    .rk-toggle-btn { max-width: 100%; }
    .rk-load-layers { border-right: none; border-bottom: 1px solid var(--rk-load-border); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-strop",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Jak dobrać system suchy zamiast wylewki na stropie drewnianym lub Kleina?",
    "description": "Analiza nośności stropów w starych budynkach wg normy PN-EN 1991-1-1. Porównanie obciążeń jastrychu betonowego i lekkiego systemu suchego.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-strop",
    "name": "Analiza obciążeń statycznych stropów drewnianych i Kleina (System Suchy vs Mokry)",
    "description": "Zestawienie inżynieryjne mas poszczególnych warstw posadzkowych oraz ich wpływu na bezpieczeństwo konstrukcyjne starych stropów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy ogrzewanie podłogowe nadaje się do drewnianego stropu",
      "czym jest system suchy w wodnym ogrzewaniu podłogowym",
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym który wybrać",
      "wylewka betonowa na ogrzewanie podłogowe",
      "obciążenie użytkowe budynku norma"
    ],
    "measurementTechnique": "Określenie obciążenia stałego posadzki na 1 m2 (kg/m2) w odniesieniu do dopuszczalnych naprężeń konstrukcji drewnianych wg normy PN-EN 1991-1-1.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obciążenie - Tradycyjny jastrych cementowy (System Mokry): 130 - 150 kg/m2. Skutek: Ryzyko ugięcia i pękania belek.",
        "Obciążenie - Renowacyjny System Suchy: Poniżej 30 kg/m2. Skutek: Bezpieczna eksploatacja starych konstrukcji.",
        "Dystrybucja ciepła w systemie suchym: Aluminiowe promienniki wpinane w płyty styropianowe eliminują konieczność stosowania betonu.",
        "Czas wykonania: System suchy skraca remont o 28 dni (brak konieczności wygrzewania wylewki)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-strop",
    "name": "Symulator Obciążenia i Naprężeń Stropu Drewnianego",
    "description": "Interaktywne narzędzie wizualizujące różnice w strukturze warstw oraz naprężenia belek stropowych przy zastosowaniu układu mokrego w porównaniu do układu suchego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-load-container" id="rk-load-simulator">
    <div class="rk-load-header">
        <h2>Jak dobrać system suchy zamiast wylewki na stropie drewnianym lub Kleina?</h2>
        <div class="rk-load-intro">
            Wybór <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemu suchego</a> na stropach o ograniczonej nośności (strop belkowy drewniany, strop Kleina) musi opierać się na maksymalnym dopuszczalnym obciążeniu statycznym, które dla systemów renowacyjnych wynosi poniżej 30 kg/m², w przeciwieństwie do tradycyjnego jastrychu cementowego generującego obciążenie rzędu 130–150 kg/m². Kryterium wyboru definiuje norma PN-EN 1991-1-1. Rozwiązuje to ostatecznie dylemat, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>.
        </div>
    </div>

    <div class="rk-load-app">
        <div class="rk-load-controls">
            <h3>Sprawdź wytrzymałość swojego stropu</h3>
            <div class="rk-load-toggles">
                <div class="rk-toggle-btn active" data-type="dry" id="btnDry" onclick="setLoadSim('dry')">
                    <span class="rk-toggle-btn-title">Lekki System Suchy</span>
                    <span class="rk-toggle-btn-sub">Dedykowany do remontów</span>
                </div>
                <div class="rk-toggle-btn" data-type="wet" id="btnWet" onclick="setLoadSim('wet')">
                    <span class="rk-toggle-btn-title">Ciężki System Mokry</span>
                    <span class="rk-toggle-btn-sub">Wylewka betonowa (7 cm)</span>
                </div>
            </div>
        </div>

        <div class="rk-load-display">
            <div class="rk-load-layers">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-load-blue)" 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>
                    Struktura warstw podłogowych
                </h4>
                <div class="rk-layer-stack stack-dry" id="layerStack">
                    <div class="rk-layer-item layer-1">Okładzina (Panele / Płytki)</div>
                    <div class="rk-layer-item layer-2" id="txtL2">Jastrych suchy (Płyty gipsowo-włókniste)</div>
                    <div class="rk-layer-item layer-3" id="txtL3">Profile aluminiowe + Rury PEX 16 mm</div>
                    <div class="rk-layer-item layer-4" id="txtL4">Styropian systemowy EPS 300</div>
                    <div class="rk-layer-item layer-5">Stary Strop (Drewniany / Kleina)</div>
                </div>
            </div>

            <div class="rk-load-visualizer">
                <div class="rk-weight-indicator weight-safe" id="weightCircle">
                    <span class="rk-weight-val" id="weightVal">30</span>
                    <span class="rk-weight-unit">kg/m²</span>
                </div>
                
                <div class="rk-beam-container">
                    <div class="rk-wooden-beam" id="woodBeam"></div>
                </div>

                <div class="rk-status-msg msg-safe" id="statusMsg">
                    <strong>Pełne bezpieczeństwo statyczne.</strong> Promienniki aluminiowe idealnie rozprowadzają ciepło, omijając ciężki beton. Remont skraca się o 28 dni.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function setLoadSim(type) {
    var btnDry = document.getElementById('btnDry');
    var btnWet = document.getElementById('btnWet');
    var layerStack = document.getElementById('layerStack');
    
    var txtL2 = document.getElementById('txtL2');
    var txtL3 = document.getElementById('txtL3');
    var txtL4 = document.getElementById('txtL4');
    
    var weightCircle = document.getElementById('weightCircle');
    var weightVal = document.getElementById('weightVal');
    var woodBeam = document.getElementById('woodBeam');
    var statusMsg = document.getElementById('statusMsg');

    // Reset
    btnDry.classList.remove('active');
    btnWet.classList.remove('active');
    layerStack.classList.remove('stack-dry');
    layerStack.classList.remove('stack-wet');

    if (type === 'dry') {
        btnDry.classList.add('active');
        layerStack.classList.add('stack-dry');
        
        // Zmiana tekstu warstw
        txtL2.innerText = "Jastrych suchy (Płyty gips-włókno)";
        txtL3.innerText = "Profile aluminiowe + Rury PEX";
        txtL4.innerText = "Styropian systemowy EPS 300";
        
        // Animacje naprężeń
        weightCircle.className = "rk-weight-indicator weight-safe";
        weightVal.innerText = "30";
        woodBeam.className = "rk-wooden-beam"; // Prosta belka
        
        // Komunikat
        statusMsg.className = "rk-status-msg msg-safe";
        statusMsg.innerHTML = "<strong>Pełne bezpieczeństwo statyczne.</strong> Promienniki aluminiowe idealnie rozprowadzają ciepło, omijając ciężki beton. Remont skraca się o 28 dni.";
    }

    if (type === 'wet') {
        btnWet.classList.add('active');
        layerStack.classList.add('stack-wet');
        
        // Zmiana tekstu warstw
        txtL2.innerText = "Gruba wylewka betonowa (Masa aku.)";
        txtL3.innerText = "Rury PEX wpięte na klipsach";
        txtL4.innerText = "Zwykły styropian podłogowy";
        
        // Animacje naprężeń
        weightCircle.className = "rk-weight-indicator weight-danger";
        weightVal.innerText = "150";
        woodBeam.className = "rk-wooden-beam beam-sag"; // Ugięta belka
        
        // Komunikat
        statusMsg.className = "rk-status-msg msg-danger";
        statusMsg.innerHTML = "<strong>KRYTYCZNE ZAGROŻENIE BUDOWLANE.</strong> Próba wylania 6 cm betonu grozi ugięciem belek stropowych, pękaniem sufitów, a w skrajnych przypadkach zawaleniem konstrukcji!";
    }
}
</script>



<style>
:root {
    --rk-eps-dark: #0f172a;
    --rk-eps-blue: #0284c7;
    --rk-eps-yellow: #facc15;
    --rk-eps-yellow-light: #fef08a;
    --rk-eps-red: #ef4444;
    --rk-eps-gray: #f8fafc;
    --rk-eps-border: #e2e8f0;
    --rk-eps-text: #475569;
}

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

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

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

.rk-eps-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    max-width: 800px;
    margin: 0 auto;
}

.rk-eps-intro a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(56, 189, 248, 0.3);
    transition: border-color 0.3s;
}

.rk-eps-intro a:hover {
    border-bottom-color: #38bdf8;
}

/* Interaktywny Obszar - Układ Pionowy */
.rk-eps-app {
    display: flex;
    flex-direction: column;
    background: #ffffff;
}

/* 1. SEKCJA GÓRNA: Przyciski wyboru */
.rk-eps-controls {
    padding: 35px 45px;
    background: var(--rk-eps-gray);
    border-bottom: 1px solid var(--rk-eps-border);
}

.rk-eps-controls h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-eps-dark);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
}

.rk-eps-btn-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-eps-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-eps-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

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

.rk-eps-btn-sub {
    font-size: 13px;
    color: #64748b;
}

.rk-eps-btn.active {
    border-color: var(--rk-eps-blue);
    background: #f0f9ff;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    transform: translateY(-3px);
}

.rk-eps-btn.active .rk-eps-btn-title {
    color: var(--rk-eps-blue);
}

/* 2. SEKCJA ŚRODKOWA: Wizualizacja */
.rk-eps-display {
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-eps-visual-box {
    width: 100%;
    max-width: 500px;
    background: #ffffff;
    border: 1px solid var(--rk-eps-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
}

.rk-layer-okladzina {
    width: 100%;
    height: 20px;
    background: #e2e8f0;
    border-bottom: 2px solid #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
    border-radius: 6px 6px 0 0;
}

.rk-layer-wylewka {
    width: 100%;
    height: 70px;
    background: #cbd5e1;
    border-bottom: 2px solid #94a3b8;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-pipe-group {
    display: flex;
    gap: 40px;
}

.rk-pipe-item {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-eps-red);
    box-shadow: 0 0 10px rgba(239, 68, 68, 0.4);
}

.rk-layer-styropian {
    width: 100%;
    background: var(--rk-eps-yellow-light);
    border-bottom: 2px solid var(--rk-eps-yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 900;
    color: #854d0e;
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    height: 100px; /* Default */
}

.rk-layer-podloze {
    width: 100%;
    height: 50px;
    background: repeating-linear-gradient(45deg, #f1f5f9, #f1f5f9 10px, #e2e8f0 10px, #e2e8f0 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    color: #94a3b8;
    border-radius: 0 0 6px 6px;
}

/* 3. SEKCJA DOLNA: Dane i Ostrzeżenie */
.rk-eps-data-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    width: 100%;
    margin-top: 35px;
}

.rk-eps-data-card {
    background: var(--rk-eps-gray);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-eps-border);
    text-align: center;
    transition: all 0.3s;
}

.rk-eps-data-card:hover {
    background: #ffffff;
    border-color: var(--rk-eps-blue);
    box-shadow: 0 5px 15px rgba(2, 132, 199, 0.08);
}

.rk-data-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    margin-bottom: 8px;
    display: block;
}

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

.val-highlight { color: var(--rk-eps-blue); }

.rk-eps-warning {
    width: 100%;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 25px;
    border-radius: 16px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
    margin-top: 25px;
}

.rk-warn-icon {
    color: var(--rk-eps-red);
    flex-shrink: 0;
    animation: pulseWarn 2s infinite;
}

@keyframes pulseWarn {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

.rk-warn-text h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 900;
    color: #991b1b;
}

.rk-warn-text p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #7f1d1d;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-eps-btn-wrapper { grid-template-columns: 1fr; gap: 12px; }
    .rk-eps-data-grid { grid-template-columns: 1fr 1fr; }
    .rk-eps-controls, .rk-eps-display { padding: 30px 20px; }
    .rk-eps-header { padding: 35px 20px; }
    .rk-eps-btn { flex-direction: row; justify-content: space-between; text-align: left; padding: 15px 20px; }
    .rk-eps-btn-sub { display: none; } /* Na mobile ukrywamy opis w buttonie dla lepszej czytelności */
}

@media (max-width: 480px) {
    .rk-eps-data-grid { grid-template-columns: 1fr; }
    .rk-eps-warning { flex-direction: column; text-align: center; align-items: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Jaka grubość styropianu pod ogrzewanie podłogowe na gruncie i na stropie jest wymagana przy remoncie?",
    "description": "Zgodnie z normami WT 2021 dobór styropianu EPS 100 jest kluczowy dla opłacalności. Poznaj wymogi izolacyjne dla gruntów i stropów międzykondygnacyjnych.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-izolacja",
    "name": "Parametry izolacji termicznej pod ogrzewanie podłogowe (WT 2021)",
    "description": "Zestawienie inżynieryjne współczynników przenikania ciepła, minimalnych grubości izolacji (lambda 0,036) i oporu cieplnego dla różnych stref budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "opór cieplny r m2k w ogrzewaniu podłogowym",
      "mostki termiczne w wylewce betonowej",
      "grubość wylewki na styropianie eps 100",
      "współczynnik przenikania ciepła podłogi na gruncie"
    ],
    "measurementTechnique": "Wyliczenia oparte o Warunki Techniczne WT 2021 określające parametry styropianu EPS 100 przy ściskaniu do 10% i przewodności lambda 0,036.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podłoga na gruncie: Wymagany wsp. U <= 0,30. Grubość EPS 100 mm (Zalecane 120 mm). Opór cieplny: 2,75.",
        "Strop nad piwnicą nieogrzewaną: Wymagany wsp. U <= 0,25. Grubość EPS 80 mm. Opór cieplny: 2,20.",
        "Strop międzykondygnacyjny: Grubość EPS 30 mm (izolacja akustyczna). Opór cieplny: 0,75."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-izolacja",
    "name": "Symulator Izolacji Termicznej EPS 100 (WT 2021)",
    "description": "Aplikacja webowa pozwalająca zwizualizować poprawną grubość izolacji ze styropianu EPS 100 pod wylewką, diagnozując jednocześnie ryzyko mostków cieplnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eps-container" id="rk-insulation-sim">
    <div class="rk-eps-header">
        <h2>Jaka grubość styropianu pod ogrzewanie podłogowe na gruncie i na stropie jest wymagana przy remoncie?</h2>
        <div class="rk-eps-intro">
            Zgodnie z polskimi Warunkami Technicznymi (WT 2021), współczynnik przenikania ciepła podłogi na gruncie nie może przekraczać U = 0,30 W/(m²·K), co w praktyce wymaga zastosowania warstwy izolacji termicznej ze styropianu EPS 100 o łącznej grubości minimum 100 mm (przy λ = 0,036 W/(m·K)), natomiast na stropie nad pomieszczeniem ogrzewanym wystarczą 30 mm izolacji akustycznej/termicznej.
            <br><br>
            Inwestorzy często ignorują parametr <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporu cieplnego (R)</a>, kupując najtańszy styropian fasadowy. <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ogrzewanie podłogowe wymaga płyt o parametrze minimum EPS 100</a> (wytrzymałość na ściskanie przy 10% odkształceniu wynosi 100 kPa), aby zapobiec osiadaniu posadzki i uszkodzeniu układu hydraulicznego.
        </div>
    </div>

    <div class="rk-eps-app">
        <div class="rk-eps-controls">
            <h3>Wybierz lokalizację posadzki:</h3>
            <div class="rk-eps-btn-wrapper">
                <button class="rk-eps-btn active" id="btnGrunt" onclick="setEpsProfile('grunt')">
                    <span class="rk-eps-btn-title">1. Podłoga na gruncie</span>
                    <span class="rk-eps-btn-sub">Ochrona przed przemarzaniem</span>
                </button>

                <button class="rk-eps-btn" id="btnPiwnica" onclick="setEpsProfile('piwnica')">
                    <span class="rk-eps-btn-title">2. Strop nad piwnicą</span>
                    <span class="rk-eps-btn-sub">Brak ogrzewania na dole</span>
                </button>

                <button class="rk-eps-btn" id="btnStrop" onclick="setEpsProfile('strop')">
                    <span class="rk-eps-btn-title">3. Strop piętra</span>
                    <span class="rk-eps-btn-sub">Ogrzewanie obustronne</span>
                </button>
            </div>
        </div>

        <div class="rk-eps-display">
            <div class="rk-eps-visual-box">
                <div class="rk-layer-okladzina">PŁYTKI / PANELE</div>
                <div class="rk-layer-wylewka">
                    <div class="rk-pipe-group">
                        <div class="rk-pipe-item"></div>
                        <div class="rk-pipe-item"></div>
                        <div class="rk-pipe-item"></div>
                    </div>
                </div>
                <div class="rk-layer-styropian" id="visStyropian">
                    EPS 100: 100 mm
                </div>
                <div class="rk-layer-podloze" id="visPodloze">CHUDY BETON / GRUNT</div>
            </div>

            <div class="rk-eps-data-grid">
                <div class="rk-eps-data-card">
                    <span class="rk-data-label">Wymagane U</span>
                    <span class="rk-data-val val-highlight" id="valU">≤ 0,30</span>
                </div>
                <div class="rk-eps-data-card">
                    <span class="rk-data-label">Opór cieplny (R)</span>
                    <span class="rk-data-val val-highlight" id="valR">2,75</span>
                </div>
                <div class="rk-eps-data-card">
                    <span class="rk-data-label">Min. grubość (λ=0,036)</span>
                    <span class="rk-data-val" id="valMin">100 mm</span>
                </div>
                <div class="rk-eps-data-card">
                    <span class="rk-data-label">Wytrzymałość</span>
                    <span class="rk-data-val">EPS 100</span>
                </div>
            </div>

            <div class="rk-eps-warning">
                <div class="rk-warn-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-warn-text">
                    <h4>Zagrożenie wykonawcze: Mostki termiczne z zaprawy</h4>
                    <p>Niedokładne ułożenie płyt jest błędem krytycznym. Szczeliny powyżej 5 mm stają się mostkami termicznymi, w które wpływa płynny jastrych. Tworzy to masywne słupy betonu opierające się bezpośrednio na zimnym gruncie – są to punkty gwałtownej ucieczki ciepła i destrukcji sprawności hydraulicznej całego układu grzewczego.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function setEpsProfile(type) {
    var btnGrunt = document.getElementById('btnGrunt');
    var btnPiwnica = document.getElementById('btnPiwnica');
    var btnStrop = document.getElementById('btnStrop');
    
    var visStyropian = document.getElementById('visStyropian');
    var visPodloze = document.getElementById('visPodloze');
    
    var valU = document.getElementById('valU');
    var valR = document.getElementById('valR');
    var valMin = document.getElementById('valMin');

    // Bezpieczne czyszczenie klas
    btnGrunt.classList.remove('active');
    btnPiwnica.classList.remove('active');
    btnStrop.classList.remove('active');

    if (type === 'grunt') {
        btnGrunt.classList.add('active');
        visStyropian.style.height = '100px';
        visStyropian.innerText = 'EPS 100: 100 mm';
        visPodloze.innerText = 'CHUDY BETON / GRUNT';
        
        valU.innerText = '≤ 0,30';
        valR.innerText = '2,75';
        valMin.innerText = '100 mm';
    } 
    else if (type === 'piwnica') {
        btnPiwnica.classList.add('active');
        visStyropian.style.height = '80px';
        visStyropian.innerText = 'EPS 100: 80 mm';
        visPodloze.innerText = 'ZIMNY STROP / POWIETRZE';
        
        valU.innerText = '≤ 0,25';
        valR.innerText = '2,20';
        valMin.innerText = '80 mm';
    } 
    else if (type === 'strop') {
        btnStrop.classList.add('active');
        visStyropian.style.height = '30px';
        visStyropian.innerText = '30 mm';
        visPodloze.innerText = 'CIEPŁY STROP MIĘDZYKONDYGNACYJNY';
        
        valU.innerText = 'Brak restrykcji';
        valR.innerText = '0,75';
        valMin.innerText = '30 mm (Akustyka)';
    }
}
</script>



<style>
:root {
    --rk-mill-dark: #0f172a;
    --rk-mill-blue: #0284c7;
    --rk-mill-green: #10b981;
    --rk-mill-red: #ef4444;
    --rk-mill-gray: #f1f5f9;
    --rk-mill-border: #e2e8f0;
    --rk-mill-text: #475569;
}

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

/* Nagłówek */
.rk-mill-header {
    padding: 40px 45px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-mill-border);
}

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

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

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

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

/* Interaktywny Symulator Przekroju */
.rk-mill-app {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #fafafa;
}

/* Sterowanie (Lewa kolumna) */
.rk-mill-controls {
    padding: 35px;
    border-right: 1px solid var(--rk-mill-border);
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-mill-controls h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mill-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-mill-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-mill-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.rk-mill-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-mill-dark);
    display: block;
    margin-bottom: 5px;
}

.rk-mill-btn-desc {
    font-size: 13px;
    color: #64748b;
    display: block;
    line-height: 1.4;
}

/* Stany Przycisków */
.rk-mill-btn.active[data-target="bad"] {
    border-color: var(--rk-mill-red);
    background: #fef2f2;
}

.rk-mill-btn.active[data-target="good"] {
    border-color: var(--rk-mill-green);
    background: #f0fdf4;
}

/* Widok Przekroju (Prawa kolumna) */
.rk-mill-display {
    padding: 35px;
    position: relative;
    background: #f8fafc;
}

.rk-mill-view {
    display: none;
    animation: fadeInMill 0.4s ease forwards;
}

.rk-mill-view.active-view {
    display: block;
}

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

/* Grafika Przekroju CSS/SVG */
.rk-layer-box {
    position: relative;
    width: 100%;
    max-width: 450px;
    margin: 0 auto 30px auto;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--rk-mill-border);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.rk-layer-finish {
    height: 15px;
    background: #e2e8f0;
    border-bottom: 2px solid #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: #64748b;
}

.rk-layer-concrete {
    height: 80px;
    background: #cbd5e1;
    position: relative;
    border-bottom: 2px solid #94a3b8;
}

.rk-layer-pipe {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 25px;
    background: #94a3b8;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    border: 2px solid #64748b;
    border-top: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-pipe-core {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-mill-red);
}

.rk-layer-ground {
    height: 60px;
    background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 10px, #f1f5f9 10px, #f1f5f9 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-layer-eps {
    height: 40px;
    background: #fef08a; /* Żółty styropian */
    border-bottom: 2px solid #facc15;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: #a16207;
}

/* Animacje i Wektory Ciepła */
.rk-heat-vector {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 150px;
    height: 150px;
    pointer-events: none;
}

.vector-bad { top: 20px; color: var(--rk-mill-red); animation: heatLoss 2s infinite linear; }
.vector-good { top: -40px; color: var(--rk-mill-green); animation: heatGain 2s infinite linear; }

@keyframes heatLoss {
    0% { transform: translateX(-50%) translateY(0); opacity: 1; }
    100% { transform: translateX(-50%) translateY(40px); opacity: 0; }
}

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

/* Panele Informacyjne */
.rk-mill-info {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid transparent;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-mill-info.info-bad { border-color: var(--rk-mill-red); }
.rk-mill-info.info-good { border-color: var(--rk-mill-green); }

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

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

.rk-mill-data-row {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--rk-mill-border);
    font-size: 14px;
    font-weight: 700;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-mill-app { grid-template-columns: 1fr; }
    .rk-mill-controls { border-right: none; border-bottom: 1px solid var(--rk-mill-border); padding: 25px 20px; flex-direction: row; flex-wrap: wrap; }
    .rk-mill-controls h3 { width: 100%; margin-bottom: 0; }
    .rk-mill-btn { width: calc(50% - 8px); padding: 15px; }
    .rk-mill-btn-desc { display: none; } /* Uproszczenie na mobile */
    .rk-mill-display { padding: 30px 20px; }
    .rk-mill-header { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-frezowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Kiedy warto wybrać frezowanie ogrzewania podłogowego w starym jastrychu?",
    "description": "Analiza techniczna i termiczna opłacalności frezowania rowków pod instalację ogrzewania podłogowego. Zobacz symulację strat ciepła przy braku izolacji EPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-07-01",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-frezowanie",
    "name": "Baza Danych Termicznych i Wytrzymałościowych dla Frezowania Jastrychów",
    "description": "Zestawienie parametrów granicznych determinujących skuteczność inżynierską technologii wycinania bruzd w istniejących posadzkach betonowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego w starym domu",
      "wylewka betonowa na ogrzewanie podłogowe",
      "rura pex do ogrzewania podłogowego",
      "jak oblicza się straty cieplne w budynkach",
      "minimalna grubość wylewki na podłogówkę"
    ],
    "measurementTechnique": "Określenie skuteczności technicznej na podstawie parametrów: grubość płyty min. 50 mm, wytrzymałość na ściskanie min. C16/20 wg PN-EN 206 oraz głębokość frezowania 18-20 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagana grubość wylewki betonowej: Minimum 50 mm.",
        "Klasa betonu (wytrzymałość): Minimum C16/20 zgodnie z PN-EN 206.",
        "Głębokość bruzdowania pod ogrzewanie: 18-20 mm dla rur PEX o przekroju 16 mm.",
        "Ryzyko ucieczki ciepła (straty cieplne): do 40% w przypadku jastrychu wylewanego na tzw. chudziaka bez 5-centymetrowej warstwy styropianu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-frezowanie",
    "name": "Symulator Przepływu Ciepła w Jastrychu (Termowizor Frezowania)",
    "description": "Aplikacja edukacyjna służąca do interaktywnej symulacji kierunku rozchodzenia się wektorów cieplnych w posadzce w zależności od obecności warstwy izolacji podłoża.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mill-container" id="rk-mill-simulator">
    <div class="rk-mill-header">
        <h2>Kiedy warto wybrać frezowanie ogrzewania podłogowego w starym jastrychu?</h2>
        <p>
            <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">Frezowanie rowków pod ogrzewanie podłogowe</a> jest uzasadnione ekonomicznie i technicznie wyłącznie wtedy, gdy istniejąca <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa</a> ma grubość minimum 50 mm, wykazuje wytrzymałość na ściskanie min. C16/20 według normy PN-EN 206 oraz posiada pod sobą sprawną, minimum 5-centymetrową warstwę izolacji termicznej. Frezowanie polega na wycięciu maszyną diamentową bruzd o głębokości 18–20 mm bezpośrednio w istniejącym podłożu, w które następnie wciska się <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rurę PEX-Al-PEX 16 mm</a>.
        </p>
    </div>

    <div class="rk-mill-app">
        <div class="rk-mill-controls">
            <h3>Symulacja podłoża</h3>
            
            <button class="rk-mill-btn active" data-target="bad" id="btnMillBad" onclick="switchMillState('bad')">
                <span class="rk-mill-btn-title">Jastrych bez izolacji</span>
                <span class="rk-mill-btn-desc">Wylewka z lat 90. na gołym gruncie lub chudziaku.</span>
            </button>

            <button class="rk-mill-btn" data-target="good" id="btnMillGood" onclick="switchMillState('good')">
                <span class="rk-mill-btn-title">Jastrych na izolacji</span>
                <span class="rk-mill-btn-desc">Poprawny układ z min. 5 cm płyt EPS pod betonem.</span>
            </button>
        </div>

        <div class="rk-mill-display">
            <div class="rk-mill-view active-view" id="viewMillBad">
                <div class="rk-layer-box">
                    <div class="rk-layer-finish">OKŁADZINA (Panele/Płytki)</div>
                    <div class="rk-layer-concrete">
                        <div class="rk-layer-pipe">
                            <div class="rk-pipe-core"></div>
                        </div>
                        <svg class="rk-heat-vector vector-bad" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                            <line x1="12" y1="2" x2="12" y2="22"></line>
                            <polyline points="19 15 12 22 5 15"></polyline>
                            <line x1="6" y1="2" x2="6" y2="12"></line>
                            <polyline points="9 9 6 12 3 9"></polyline>
                            <line x1="18" y1="2" x2="18" y2="12"></line>
                            <polyline points="21 9 18 12 15 9"></polyline>
                        </svg>
                    </div>
                    <div class="rk-layer-ground">STARY CHUDY BETON / GRUNT</div>
                </div>

                <div class="rk-mill-info info-bad">
                    <h4>Skutek: Ucieczka do 40% energii cieplnej</h4>
                    <p>Konsekwencją frezowania w jastrychu bez izolacji podspodowej jest drastyczny wypływ strumienia cieplnego w płytę konstrukcyjną lub grunt. <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Straty cieplne w budynku</a> są tak ogromne, że system nigdy nie osiągnie wydajności nominalnej. Taki zabieg to dosłowne wyrzucanie pieniędzy zasilających pompę ciepła lub kocioł w błoto.</p>
                    <div class="rk-mill-data-row">
                        <span style="color: #64748b;">Sprawność układu:</span>
                        <span style="color: var(--rk-mill-red);">Krytycznie niska (~60%)</span>
                    </div>
                </div>
            </div>

            <div class="rk-mill-view" id="viewMillGood">
                <div class="rk-layer-box">
                    <div class="rk-layer-finish">OKŁADZINA (Panele/Płytki)</div>
                    <div class="rk-layer-concrete">
                        <div class="rk-layer-pipe">
                            <div class="rk-pipe-core" style="border-color: var(--rk-mill-green);"></div>
                        </div>
                        <svg class="rk-heat-vector vector-good" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                            <line x1="12" y1="22" x2="12" y2="2"></line>
                            <polyline points="5 9 12 2 19 9"></polyline>
                            <line x1="6" y1="22" x2="6" y2="12"></line>
                            <polyline points="3 15 6 12 9 15"></polyline>
                            <line x1="18" y1="22" x2="18" y2="12"></line>
                            <polyline points="15 15 18 12 21 15"></polyline>
                        </svg>
                    </div>
                    <div class="rk-layer-eps">IZOLACJA STYROPIANOWA EPS (min. 50 mm)</div>
                    <div class="rk-layer-ground" style="height: 20px;">GRUNT</div>
                </div>

                <div class="rk-mill-info info-good">
                    <h4>Skutek: Odbicie strumienia i wysoki komfort</h4>
                    <p>Obecność minimalnie 5-centymetrowej warstwy sprężystego styropianu budowlanego (klasy min. EPS 100) pod warstwą betonu całkowicie odcina ucieczkę ciepła w dół. Ogrzana masa betonowa kieruje 100% użytecznego promieniowania w górę, w stronę okładziny podłogowej, gwarantując niskie rachunki.</p>
                    <div class="rk-mill-data-row">
                        <span style="color: #64748b;">Sprawność układu:</span>
                        <span style="color: var(--rk-mill-green);">Optymalna (>95%)</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
// Bezpieczna funkcja wymiany widoku w symulatorze (bez znaków && lub ||)
function switchMillState(state) {
    var btnBad = document.getElementById('btnMillBad');
    var btnGood = document.getElementById('btnMillGood');
    var viewBad = document.getElementById('viewMillBad');
    var viewGood = document.getElementById('viewMillGood');

    // Zerowanie klas aktywnych
    btnBad.classList.remove('active');
    btnGood.classList.remove('active');
    viewBad.classList.remove('active-view');
    viewGood.classList.remove('active-view');

    // Ustawienie wybranego stanu
    if (state === 'bad') {
        btnBad.classList.add('active');
        viewBad.classList.add('active-view');
    }
    
    if (state === 'good') {
        btnGood.classList.add('active');
        viewGood.classList.add('active-view');
    }
}
</script>



<style>
:root {
    --rk-mix-dark: #0f172a;
    --rk-mix-blue: #0284c7;
    --rk-mix-light: #f8fafc;
    --rk-mix-border: #e2e8f0;
    --rk-mix-red: #ef4444;
    --rk-mix-green: #10b981;
    --rk-mix-warn: #f59e0b;
    --rk-mix-text: #334155;
}

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

/* Nagłówek */
.rk-mix-header {
    padding: 35px 45px 25px;
    background: linear-gradient(to right, var(--rk-mix-dark), #1e293b);
    color: #ffffff;
}

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

.rk-mix-content {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

.rk-mix-content a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-mix-content a:hover {
    border-bottom-color: #38bdf8;
}

.rk-mix-highlight {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px 20px;
    border-radius: 12px;
    margin: 20px 0;
    border-left: 4px solid var(--rk-mix-warn);
}

/* Interaktywny Panel */
.rk-mix-app {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-mix-light);
}

/* Panel Sterowania */
.rk-mix-controls {
    padding: 35px;
    border-right: 1px solid var(--rk-mix-border);
    background: #ffffff;
}

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

.rk-mix-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 18px 20px;
    background: var(--rk-mix-light);
    border: 2px solid var(--rk-mix-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    margin-bottom: 15px;
    transition: all 0.3s;
}

.rk-mix-btn-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-mix-dark);
    display: block;
    margin-bottom: 4px;
}

.rk-mix-btn-sub {
    font-size: 13px;
    color: #64748b;
    display: block;
}

.rk-mix-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

/* Stany Aktywne Przycisków */
.rk-mix-btn.active[data-type="rtl"] {
    border-color: var(--rk-mix-red);
    background: #fef2f2;
}
.rk-mix-btn.active[data-type="rtl"] .rk-mix-icon {
    background: var(--rk-mix-red);
    color: #ffffff;
}

.rk-mix-btn.active[data-type="pro"] {
    border-color: var(--rk-mix-blue);
    background: #f0f9ff;
}
.rk-mix-btn.active[data-type="pro"] .rk-mix-icon {
    background: var(--rk-mix-blue);
    color: #ffffff;
}

/* Ekran Diagnostyczny (Wyniki) */
.rk-mix-display {
    padding: 35px;
    display: flex;
    flex-direction: column;
}

.rk-mix-status-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mix-border);
    margin-bottom: 25px;
}

.rk-mix-status-label {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-mix-status-badge {
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 13px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.badge-danger { background: #fef2f2; color: var(--rk-mix-red); border: 1px solid #fecaca; }
.badge-safe { background: #f0fdf4; color: var(--rk-mix-green); border: 1px solid #bbf7d0; }

/* Schemat SVG Parametrów */
.rk-mix-schema {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-mix-border);
    padding: 25px;
    flex-grow: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.rk-mix-metric {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-mix-border);
}

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

.rk-metric-name {
    font-size: 15px;
    color: var(--rk-mix-text);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    font-family: monospace;
}

.val-hot { color: var(--rk-mix-red); }
.val-ok { color: var(--rk-mix-green); }
.val-warn { color: var(--rk-mix-warn); }

.rk-mix-msg {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    background: #e2e8f0;
    padding: 15px;
    border-radius: 8px;
    transition: all 0.3s;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-mix-app { grid-template-columns: 1fr; }
    .rk-mix-controls { border-right: none; border-bottom: 1px solid var(--rk-mix-border); padding: 25px 20px; }
    .rk-mix-display { padding: 25px 20px; }
    .rk-mix-header { padding: 30px 20px; }
    .rk-mix-status-bar { flex-direction: column; gap: 10px; align-items: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-mieszany",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Jak połączyć ogrzewanie podłogowe z istniejącymi grzejnikami w układzie mieszanym?",
    "description": "Zrozum hydraulikę układów mieszanych. Dlaczego zawór RTL na dużych powierzchniach to błąd, a profesjonalna grupa z zaworem 3-drogowym i sprzęgłem to konieczność.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-mieszany",
    "name": "Parametry hydrauliczne i termiczne układów mieszanych (Podłogówka + Grzejniki)",
    "description": "Zestawienie diagnostyczne porównujące wpływ zastosowania ogranicznika RTL vs profesjonalnej grupy pompowej na rozkład temperatur w posadzce.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy ogrzewanie podłogowe można podłączyć do grzejników",
      "zawór mieszający w ogrzewaniu podłogowym",
      "sprzęgło hydrauliczne w instalacji ogrzewania podłogowego",
      "pompa obiegowa w instalacji ogrzewania podłogowego",
      "ogranicznik temperatury powrotu rtl"
    ],
    "measurementTechnique": "Symulacja rozkładu temperatur medium grzewczego (zasilanie kotła 70°C) z uwzględnieniem obniżania temperatury przez zawór 3-drogowy wg normy PN-EN 14336.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasilanie grzejników: 70°C (układ wysokotemperaturowy).",
        "Błąd układu RTL dla >15 m2: wejście wody 70°C w jastrych, temperatura podłogi przekracza dozwolone 29°C.",
        "Zalecenie projektowe: Trójdrogowy zawór thermoregulacyjny o odpowiednim współczynniku Kvs obniża wodę na zasilaniu pętli do bezpiecznych 35-40°C.",
        "Sprzęgło hydrauliczne: Niezbędne do zrównoważenia ciśnień pompy kotłowej i instalacyjnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-mieszany",
    "name": "Symulator Układu Mieszanego i Dystrybucji Temperatur",
    "description": "Aplikacja webowa pozwalająca inwestorowi przetestować fizyczne skutki podpięcia ogrzewania podłogowego bezpośrednio pod pion grzejnikowy (awaria) w opozycji do grupy mieszającej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mix-container" id="rk-mixed-simulator">
    <div class="rk-mix-header">
        <h2>Jak połączyć ogrzewanie podłogowe z istniejącymi grzejnikami w układzie mieszanym?</h2>
        <div class="rk-mix-content">
            Prawidłowe rozwiązanie dylematu, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">czy ogrzewanie podłogowe można podłączyć do grzejników</a> (wymagających np. 70°C), zależy od doboru hydrauliki dla podłogówki (max 45°C). 
            <div class="rk-mix-highlight">
                <strong>Złota zasada inżynierska:</strong> Wymagane jest zastosowanie układu rozdzielaczowego z <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompą obiegową</a> oraz <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">trójdrogowym zaworem mieszającym</a> o współczynniku przepływu Kvs dobranym do mocy pętli (norma PN-EN 14336). Całość stabilizuje <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a>.
            </div>
            Zarządzaj poniższym symulatorem, aby zobaczyć, czym kończy się popularny błąd "na skróty".
        </div>
    </div>

    <div class="rk-mix-app">
        <div class="rk-mix-controls">
            <h3>Wybierz architekturę układu:</h3>
            
            <button class="rk-mix-btn active" data-type="rtl" id="btnRTL" onclick="setMixSys('rtl')">
                <div class="rk-mix-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="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>
                    <span class="rk-mix-btn-title">Zawór powrotny RTL</span>
                    <span class="rk-mix-btn-sub">Pętla wpięta w grzejnik (>15 m²)</span>
                </div>
            </button>

            <button class="rk-mix-btn" data-type="pro" id="btnPRO" onclick="setMixSys('pro')">
                <div class="rk-mix-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>
                <div>
                    <span class="rk-mix-btn-title">Grupa Mieszająca (Zawór 3-D)</span>
                    <span class="rk-mix-btn-sub">Sprzęgło + osobna pompa</span>
                </div>
            </button>
        </div>

        <div class="rk-mix-display">
            <div class="rk-mix-status-bar">
                <span class="rk-mix-status-label">Status Diagnostyczny:</span>
                <div class="rk-mix-status-badge badge-danger" id="mixBadge">
                    <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>
                    AWARIA HYDRAULICZNA
                </div>
            </div>

            <div class="rk-mix-schema">
                <div class="rk-mix-metric">
                    <span class="rk-metric-name">
                        Zasilanie z kotła (Grzejniki):
                    </span>
                    <span class="rk-metric-val val-hot">70°C</span>
                </div>
                <div class="rk-mix-metric">
                    <span class="rk-metric-name">
                        Temperatura wlotu na pętle podłogówki:
                    </span>
                    <span class="rk-metric-val val-hot" id="valInlet">70°C</span>
                </div>
                <div class="rk-mix-metric">
                    <span class="rk-metric-name">
                        Temperatura powierzchni (Jastrych):
                    </span>
                    <span class="rk-metric-val val-hot" id="valFloor">42°C</span>
                </div>
            </div>

            <div class="rk-mix-msg" id="mixMessage" style="background:#fef2f2; color:#991b1b; border: 1px solid #fecaca;">
                <strong>Efekt "gorących stóp".</strong> Zawór RTL ogranicza tylko temperaturę na wyjściu z rury. Woda wpadająca do podłogi ma 70°C, co powoduje skrajne przegrzewanie posadzki (dozwolone to 29°C), dławienie przepływów grzejników i wysokie ryzyko pękania betonu.
            </div>
        </div>
    </div>
</div>

<script>
function setMixSys(type) {
    var btnRTL = document.getElementById('btnRTL');
    var btnPRO = document.getElementById('btnPRO');
    var badge = document.getElementById('mixBadge');
    var valInlet = document.getElementById('valInlet');
    var valFloor = document.getElementById('valFloor');
    var msgBox = document.getElementById('mixMessage');

    var isRTL = (type === 'rtl');
    var isPRO = (type === 'pro');

    // Reset buttons
    btnRTL.classList.remove('active');
    btnPRO.classList.remove('active');

    if (isRTL) {
        btnRTL.classList.add('active');
        
        // Update UI for RTL Error
        badge.className = 'rk-mix-status-badge badge-danger';
        badge.innerHTML = '<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> AWARIA HYDRAULICZNA';
        
        valInlet.innerText = '70°C';
        valInlet.className = 'rk-metric-val val-hot';
        
        valFloor.innerText = '42°C';
        valFloor.className = 'rk-metric-val val-hot';

        msgBox.style.background = '#fef2f2';
        msgBox.style.color = '#991b1b';
        msgBox.style.borderColor = '#fecaca';
        msgBox.innerHTML = '<strong>Efekt "gorących stóp".</strong> Zawór RTL ogranicza tylko temperaturę na wyjściu z rury. Woda wpadająca do podłogi ma 70°C, co powoduje skrajne przegrzewanie posadzki (dozwolone to 29°C), dławienie przepływów grzejników i wysokie ryzyko pękania betonu.';
    }

    if (isPRO) {
        btnPRO.classList.add('active');
        
        // Update UI for PRO Success
        badge.className = 'rk-mix-status-badge badge-safe';
        badge.innerHTML = '<svg width="16" height="16" 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> PARAMETRY W NORMIE';
        
        valInlet.innerText = '38°C';
        valInlet.className = 'rk-metric-val val-ok';
        
        valFloor.innerText = '26°C';
        valFloor.className = 'rk-metric-val val-ok';

        msgBox.style.background = '#f0fdf4';
        msgBox.style.color = '#166534';
        msgBox.style.borderColor = '#bbf7d0';
        msgBox.innerHTML = '<strong>Perfekcyjna stabilność.</strong> Zawór 3-drogowy miesza powrót z zasilaniem, wpuszczając w pętle bezpieczne 38°C. Osobna pompa gwarantuje właściwy przepływ, a sprzęgło oddziela układ od grzejników, zapobiegając konfliktom ciśnień.';
    }
}
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light-blue: #e0f2fe;
    --rk-calc-green: #10b981;
    --rk-calc-gray: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
}

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

/* Nagłówek i Teoria */
.rk-calc-header {
    padding: 40px 45px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-calc-border);
}

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

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

.rk-algo-box {
    background: var(--rk-calc-gray);
    padding: 25px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-calc-blue);
    margin-bottom: 30px;
}

.rk-algo-box h3 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 15px 0;
    color: var(--rk-calc-dark);
}

.rk-algo-step {
    margin-bottom: 12px;
    font-size: 15px;
    color: var(--rk-calc-text);
    line-height: 1.6;
}

.rk-algo-step strong {
    color: var(--rk-calc-blue);
}

.rk-algo-formula {
    display: block;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-calc-dark);
    border: 1px solid var(--rk-calc-border);
    margin: 8px 0;
}

/* Interaktywny Kalkulator - Układ */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Sekcja Lewa - Inputy */
.rk-calc-controls {
    padding: 40px 45px;
    border-right: 1px solid var(--rk-calc-border);
}

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

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

.rk-val-display {
    background: var(--rk-calc-light-blue);
    color: var(--rk-calc-blue);
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    font-size: 18px;
}

/* Suwak */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    outline: none;
    margin: 10px 0;
}

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

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

/* Przyciski Wyboru */
.rk-radio-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-radio-btn {
    padding: 15px;
    border: 2px solid var(--rk-calc-border);
    border-radius: 12px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    background: #ffffff;
    font-weight: 700;
    color: var(--rk-calc-muted);
    font-size: 14px;
}

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

/* Sekcja Prawa - Wyniki */
.rk-calc-results {
    padding: 40px 45px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
}

.rk-results-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-result-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.rk-result-label {
    font-size: 14px;
    color: #94a3b8;
}

.rk-result-value {
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
}

.rk-result-value.accent {
    color: var(--rk-calc-light-blue);
}

.rk-total-box {
    margin-top: auto;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
}

.rk-total-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 10px;
}

.rk-total-price {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-calc-green);
    transition: color 0.3s;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-calc-app { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); padding: 30px 20px; }
    .rk-calc-results { padding: 30px 20px; }
    .rk-calc-header { padding: 30px 20px; }
    .rk-total-price { font-size: 32px; }
    .rk-radio-grid { gap: 10px; }
    .rk-algo-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Ile kosztuje ogrzewanie podłogowe w remontowanym budynku? Analiza kosztów i kalkulator inwestycji",
    "description": "Oblicz precyzyjny koszt instalacji ogrzewania podłogowego w starym domu. Narzędzie uwzględnia dynamiczny dobór rury (4 PLN/m) i koszty rozdzielacza w oparciu o zagęszczenie 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": "2025-12-29",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-koszty",
    "name": "Dynamiczny Algorytm Kosztorysowy Ogrzewania Podłogowego 2026",
    "description": "Baza danych relacyjnych wiążąca długość rur grzewczych i wielkość rozdzielacza z wybranym rozstawem projektowym i technologią izolacyjną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile kosztuje 100 m2 ogrzewania podłogowego",
      "podłogówka cena za m2 robocizny",
      "kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego",
      "ile metrów podłogówki na jednej pętli",
      "kompleksowy kalkulator ogrzewania podłogowego"
    ],
    "measurementTechnique": "Model kosztowy wyodrębniający stałą bazę izolacyjną (EPS/Płyty) oraz dynamiczny koszt hydrauliczny (4 PLN/m rury + 400 PLN baza rozdzielacza + 100 PLN za każdą pętlę).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura PEX: stała cena 4 PLN za 1 metr bieżący wyznaczony przez rozstaw.",
        "Rozdzielacz hydrauliczny: koszt bazowy pierwszej sekcji to 400 PLN, każda kolejna sekcja to 100 PLN.",
        "Baza izolacyjna i akcesoria: ok. 60 PLN/m2 dla układu mokrego oraz 160 PLN/m2 dla układu suchego.",
        "Robocizna wykonawcza: uśredniona wartość 80 PLN/m2 netto."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-koszty",
    "name": "Interaktywny Kalkulator Budżetu Podłogówki w Remoncie",
    "description": "Zaawansowana aplikacja webowa analizująca przepływy hydrauliczne w czasie rzeczywistym i dostosowująca kosztorys do zmian rozstawu rur (np. 10 cm vs 15 cm).",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-cost-calculator">
    <div class="rk-calc-header">
        <h2>Ile kosztuje ogrzewanie podłogowe w remontowanym budynku? Analiza kosztów i kalkulator inwestycji</h2>
        <div class="rk-calc-intro">
            Koszt instalacji jest ściśle powiązany z projektem. Zmiana zagęszczenia rur wpływa nie tylko na komfort cieplny, ale bezpośrednio na ilość potrzebnego materiału (rur PEX i wielkości rozdzielacza). Sztywne ryczałty za m² to przeżytek amatorów. Poniższy interaktywny symulator pozwoli Ci z wyliczyć realny budżet dla Twojego remontu.
        </div>

        <div class="rk-algo-box">
            <h3>Algorytm obliczeniowy inwestycji (Krok po kroku)</h3>
            <div class="rk-algo-step">
                <strong>Krok 1: Wyznaczenie powierzchni netto</strong> (Odejmujemy stałą zabudowę kuchenną i szafy wnękowe).
                <div class="rk-algo-formula">A_netto = A_całkowita x 0.85</div>
            </div>
            <div class="rk-algo-step">
                <strong>Krok 2: Długość rury PEX na podstawie rozstawu</strong> (Współczynnik 1.15 uwzględnia strefy brzegowe i podejścia).
                <div class="rk-algo-formula">L_rury = (A_netto / Rozstaw) x 1.15</div>
            </div>
            <div class="rk-algo-step">
                <strong>Krok 3: Wyznaczenie liczby pętli</strong> (Maksymalna długość pętli rury 16 mm to 100 m, zapobiega to zjawisku "martwej pętli").
                <div class="rk-algo-formula">N_pętli = Zaokrąglenie_w_górę (L_rury / 100)</div>
            </div>
            <div class="rk-algo-step">
                <strong>Krok 4: Szacowanie kosztów dynamicznych</strong> (Rura: 4 PLN/m. Rozdzielacz: 400 PLN + 100 PLN/sekcję).
                <div class="rk-algo-formula">Koszty = (L_rury x 4) + Rozdzielacz + (A_netto x Baza) + Robocizna</div>
            </div>
        </div>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>Powierzchnia całkowita domu:</span>
                    <span class="rk-val-display" id="rkValArea">100 m²</span>
                </div>
                <input type="range" id="rkInpArea" class="rk-slider" min="30" max="250" step="5" value="100" oninput="runRkCalc()">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>Technologia izolacji:</span>
                </div>
                <div class="rk-radio-grid">
                    <div class="rk-radio-btn active" id="btnSysMokry" onclick="setSysOption('mokry')">System Mokry<br>(Styropian EPS)</div>
                    <div class="rk-radio-btn" id="btnSysSuchy" onclick="setSysOption('suchy')">System Suchy<br>(Płyty z lamelami)</div>
                </div>
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>Rozstaw rur PEX:</span>
                </div>
                <div class="rk-radio-grid">
                    <div class="rk-radio-btn active" id="btnRozstaw10" onclick="setRozOption(0.1)">Rozstaw 10 cm<br>(Cieplej)</div>
                    <div class="rk-radio-btn" id="btnRozstaw15" onclick="setRozOption(0.15)">Rozstaw 15 cm<br>(Taniej)</div>
                </div>
            </div>

            <div class="rk-control-group" style="margin-bottom: 0;">
                <div class="rk-control-label">
                    <span>Demontaż starych posadzek:</span>
                </div>
                <div class="rk-radio-grid">
                    <div class="rk-radio-btn active" id="btnKucieNie" onclick="setKucieOption(false)">Zostawiam podłoże<br>(Bez kucia)</div>
                    <div class="rk-radio-btn" id="btnKucieTak" onclick="setKucieOption(true)">Skucie do zera<br>(+50 PLN/m²)</div>
                </div>
            </div>
        </div>

        <div class="rk-calc-results">
            <div class="rk-results-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                Twój Profil Inwestycyjny
            </div>

            <div class="rk-result-row">
                <span class="rk-result-label">Pow. grzewcza netto (-15%):</span>
                <span class="rk-result-value" id="rkOutNetto">85 m²</span>
            </div>
            <div class="rk-result-row">
                <span class="rk-result-label">Długość rury PEX (4 PLN/m):</span>
                <span class="rk-result-value accent" id="rkOutRura">978 m</span>
            </div>
            <div class="rk-result-row">
                <span class="rk-result-label">Wielkość rozdzielacza:</span>
                <span class="rk-result-value accent" id="rkOutPetle">10 sekcji</span>
            </div>
            <div class="rk-result-row">
                <span class="rk-result-label">Wycena materiałowa sprzętu:</span>
                <span class="rk-result-value" id="rkOutSprzet">0 PLN</span>
            </div>
            <div class="rk-result-row">
                <span class="rk-result-label">Robocizna instalacyjna (80 PLN/m²):</span>
                <span class="rk-result-value" id="rkOutRobota">6 800 PLN</span>
            </div>
            <div class="rk-result-row" id="rkRowDemo" style="display:none;">
                <span class="rk-result-label">Demontaż (kucie) posadzek:</span>
                <span class="rk-result-value" id="rkOutDemo">0 PLN</span>
            </div>

            <div class="rk-total-box">
                <div class="rk-total-label">Szacowany Całkowity Budżet</div>
                <div class="rk-total-price" id="rkOutTotal">17 000 PLN</div>
            </div>
        </div>
    </div>
</div>

<script>
var rkConfSystem = 'mokry';
var rkConfRozstaw = 0.1;
var rkConfKucie = false;

function setSysOption(val) {
    rkConfSystem = val;
    document.getElementById('btnSysMokry').classList.remove('active');
    document.getElementById('btnSysSuchy').classList.remove('active');
    if(val === 'mokry') { document.getElementById('btnSysMokry').classList.add('active'); }
    if(val === 'suchy') { document.getElementById('btnSysSuchy').classList.add('active'); }
    runRkCalc();
}

function setRozOption(val) {
    rkConfRozstaw = val;
    document.getElementById('btnRozstaw10').classList.remove('active');
    document.getElementById('btnRozstaw15').classList.remove('active');
    if(val === 0.1) { document.getElementById('btnRozstaw10').classList.add('active'); }
    if(val === 0.15) { document.getElementById('btnRozstaw15').classList.add('active'); }
    runRkCalc();
}

function setKucieOption(val) {
    rkConfKucie = val;
    document.getElementById('btnKucieTak').classList.remove('active');
    document.getElementById('btnKucieNie').classList.remove('active');
    if(val === true) { document.getElementById('btnKucieTak').classList.add('active'); }
    if(val === false) { document.getElementById('btnKucieNie').classList.add('active'); }
    runRkCalc();
}

function formatMoney(num) {
    var parts = num.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " ");
    return parts.join(".") + " PLN";
}

function runRkCalc() {
    var inArea = parseInt(document.getElementById('rkInpArea').value, 10);
    document.getElementById('rkValArea').innerText = inArea + " m²";

    // 1. Hydraulika - ilości matematyczne
    var aNetto = Math.round(inArea * 0.85);
    var pipeLen = Math.round((aNetto / rkConfRozstaw) * 1.15);
    var loops = Math.ceil(pipeLen / 100);

    // 2. Wycena hydrauliki dynamicznej
    var costPipe = pipeLen * 4;
    
    var extraLoops = 0;
    if (loops > 1) {
        extraLoops = loops - 1;
    }
    var costManifold = 400 + (extraLoops * 100);

    // 3. Wycena bazy systemu (izolacja, folie, etc na metry kwadratowe)
    var rateBase = 60; // System Mokry
    if(rkConfSystem === 'suchy') {
        rateBase = 160; // System Suchy jest droższy bazowo
    }
    var costBaseMat = aNetto * rateBase;

    // Podsumowanie materiałowe
    var totalMat = costPipe + costManifold + costBaseMat;

    // 4. Robocizna stała
    var rateLabor = 80;
    var costLabor = aNetto * rateLabor;
    
    var costDemo = 0;
    if(rkConfKucie === true) {
        costDemo = inArea * 50;
        document.getElementById('rkRowDemo').style.display = 'flex';
    } else {
        document.getElementById('rkRowDemo').style.display = 'none';
    }

    var totalCost = totalMat + costLabor + costDemo;

    // Aktualizacja widoku DOM
    document.getElementById('rkOutNetto').innerText = aNetto + " m²";
    document.getElementById('rkOutRura').innerText = pipeLen + " m";
    document.getElementById('rkOutPetle').innerText = loops + " sekcji";
    
    document.getElementById('rkOutSprzet').innerText = formatMoney(totalMat);
    document.getElementById('rkOutRobota').innerText = formatMoney(costLabor);
    document.getElementById('rkOutDemo').innerText = formatMoney(costDemo);
    document.getElementById('rkOutTotal').innerText = formatMoney(totalCost);
}

// Uruchom podczas pierwszego renderowania
document.addEventListener('DOMContentLoaded', function() {
    runRkCalc();
});
</script>



<style>
:root {
    --rk-hyd-dark: #0f172a;
    --rk-hyd-blue: #0284c7;
    --rk-hyd-light-blue: #f0f9ff;
    --rk-hyd-accent: #0ea5e9;
    --rk-hyd-gray: #f1f5f9;
    --rk-hyd-border: #e2e8f0;
    --rk-hyd-text: #334155;
}

.rk-hyd-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(2, 132, 199, 0.12);
    border: 1px solid var(--rk-hyd-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-hyd-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-hyd-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

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

/* Interaktywny Panel */
.rk-hyd-dashboard {
    display: flex;
    flex-direction: column;
    padding: 30px 45px;
    background: #fafafa;
}

.rk-hyd-module {
    background: #ffffff;
    border: 1px solid var(--rk-hyd-border);
    border-radius: 12px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-hyd-module.active-module {
    border-color: var(--rk-hyd-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
}

.rk-hyd-mod-trigger {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    background: transparent;
    user-select: none;
}

.rk-hyd-mod-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

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

.rk-hyd-module.active-module .rk-hyd-mod-icon {
    background: var(--rk-hyd-blue);
    color: #ffffff;
}

.rk-hyd-mod-trigger h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-hyd-dark);
    margin: 0;
    transition: color 0.3s;
}

.rk-hyd-module.active-module .rk-hyd-mod-trigger h3 {
    color: var(--rk-hyd-blue);
}

.rk-hyd-mod-arrow {
    color: #94a3b8;
    transition: transform 0.3s;
}

.rk-hyd-module.active-module .rk-hyd-mod-arrow {
    transform: rotate(180deg);
    color: var(--rk-hyd-blue);
}

.rk-hyd-mod-content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-hyd-module.active-module .rk-hyd-mod-content {
    max-height: 600px;
    opacity: 1;
}

.rk-hyd-inner-text {
    padding: 0 25px 25px 84px; /* Wcięcie wyrównujące z tekstem */
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

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

.rk-hyd-inner-text a:hover {
    border-bottom-color: var(--rk-hyd-blue);
}

/* CTA */
.rk-hyd-cta-area {
    padding: 40px 45px;
    background: var(--rk-hyd-light-blue);
    text-align: center;
    border-top: 1px solid var(--rk-hyd-border);
}

.rk-hyd-cta-area h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-hyd-dark);
    margin: 0 0 10px 0;
}

.rk-hyd-cta-area p {
    font-size: 15px;
    color: #475569;
    margin: 0 auto 25px auto;
    max-width: 650px;
}

.rk-cta-btn-premium {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-hyd-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 32px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-hyd-container { margin: 20px 10px; }
    .rk-hyd-header { padding: 30px 20px; }
    .rk-hyd-dashboard { padding: 20px; }
    .rk-hyd-mod-trigger { padding: 18px 15px; }
    .rk-hyd-mod-trigger h3 { font-size: 16px; }
    .rk-hyd-inner-text { padding: 0 15px 20px 15px; } /* Usunięte wcięcie na mobile */
    .rk-hyd-cta-area { padding: 30px 20px; }
    .rk-cta-btn-premium { width: 100%; font-size: 15px; padding: 16px 20px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Jak ogrzewanie podłogowe w starym domu wpływa na projekt instalacji i hydraulikę?",
    "description": "Techniczna analiza zmiany parametrów hydraulicznych podczas modernizacji. Poznaj wpływ rozstawu rur, zaworów mieszających i pomp na bezwładność systemu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-hydraulika",
    "name": "Parametry Przebudowy Hydraulicznej Budynku",
    "description": "Zestawienie zmian ciśnienia dyspozycyjnego, pojemności wodnej oraz rozstawu przewodów wymaganych do prawidłowej konwersji systemu grzewczego na niskotemperaturowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn-en 12831",
      "strefa brzegowa obwodowa w ogrzewaniu podłogowym",
      "kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym",
      "czym jest bezwładność cieplna w ogrzewaniu podłogowym",
      "zawór mieszający w ogrzewaniu podłogowym",
      "niska temperatura zasilania pompy ciepła",
      "schemat podłogówki i grzejników w starym domu"
    ],
    "measurementTechnique": "Weryfikacja hydrauliczna na podstawie obliczeń strat ciepła, prędkości przepływu wody (1,5 l/min) oraz oporów liniowych rury PEX (15-20 kPa).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur: w strefach okiennych zagęszczenie do 10 cm, w centrum 15 cm.",
        "Pompa obiegowa: wymagana wysokość podnoszenia min. 6 metrów słupa wody.",
        "Zład wody: wzrost pojemności wodnej instalacji o 0,113 litra na każdy metr rury.",
        "Regulacja temperatury: konieczność zastosowania układów mieszających w celu obniżenia parametru dla posadzek."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-hydraulika",
    "name": "Panel Diagnostyki Hydraulicznej Modernizacji",
    "description": "Aplikacja webowa prezentująca inżynierskie moduły decyzyjne konieczne do sporządzenia projektu OZC i zrównoważenia przepływów w starym domu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hyd-container" id="rk-hydraulic-panel">
    <div class="rk-hyd-header">
        <h2>Jak ogrzewanie podłogowe w starym domu wpływa na projekt instalacji i hydraulikę?</h2>
        <p>Wprowadzenie ogrzewania podłogowego do budynku poddawanego renowacji całkowicie zmienia charakterystykę hydrauliczną instalacji, wymagając wykonania projektu w oparciu o rzetelną <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color:#7dd3fc;">normę PN-EN 12831</a>. Zobacz cztery parametry, które rewolucjonizują układ cieplny.</p>
    </div>

    <div class="rk-hyd-dashboard">
        <div class="rk-hyd-module">
            <div class="rk-hyd-mod-trigger" onclick="toggleHydModule(this)">
                <div class="rk-hyd-mod-left">
                    <div class="rk-hyd-mod-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 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M3 15h6"></path><path d="M3 18h6"></path></svg>
                    </div>
                    <h3>Gęstość układania rur (rozstaw)</h3>
                </div>
                <div class="rk-hyd-mod-arrow">
                    <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>
            </div>
            <div class="rk-hyd-mod-content">
                <div class="rk-hyd-inner-text">
                    W starych domach, nawet po ociepleniu, straty ciepła w pobliżu okien są wysokie. Projektant musi wyznaczyć tzw. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefę brzegową w ogrzewaniu podłogowym</a> z zagęszczonym rozstawem rur co 10 cm, podczas gdy w środku pokoju projektuje się rozstaw co 15 cm. Brak tego zabiegu skutkuje ciągłym uczuciem chłodu od nieszczelnej stolarki.
                </div>
            </div>
        </div>

        <div class="rk-hyd-module">
            <div class="rk-hyd-mod-trigger" onclick="toggleHydModule(this)">
                <div class="rk-hyd-mod-left">
                    <div class="rk-hyd-mod-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><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                    </div>
                    <h3>Dobór pompy obiegowej</h3>
                </div>
                <div class="rk-hyd-mod-arrow">
                    <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>
            </div>
            <div class="rk-hyd-mod-content">
                <div class="rk-hyd-inner-text">
                    Opory hydrauliczne pętli podłogowej o długości 90 m przy przepływie 1,5 l/min wynoszą ok. 15–20 kPa. Tradycyjna pompa kotłowa wyjęta ze starego układu grzejnikowego po prostu tego nie uciągnie. Użyj zaawansowanego <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a>, aby określić wymagane ciśnienie dyspozycyjne (np. generujące podnoszenie na poziomie 6 m słupa wody).
                </div>
            </div>
        </div>

        <div class="rk-hyd-module">
            <div class="rk-hyd-mod-trigger" onclick="toggleHydModule(this)">
                <div class="rk-hyd-mod-left">
                    <div class="rk-hyd-mod-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 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    </div>
                    <h3>Zład wody i regulacja termiczna</h3>
                </div>
                <div class="rk-hyd-mod-arrow">
                    <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>
            </div>
            <div class="rk-hyd-mod-content">
                <div class="rk-hyd-inner-text">
                    Podłogówka drastycznie zwiększa zład wody w instalacji (w 1 metrze rury PEX 16 mieści się 0,113 litra wody). Ta ogromna pojemność powoduje masywną <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną w ogrzewaniu podłogowym</a>. Projekt musi uwzględniać automatykę pogodową, aby system reagował na zmiany temperatury z wyprzedzeniem czasowym, zanim beton zdąży się wychłodzić.
                </div>
            </div>
        </div>

        <div class="rk-hyd-module">
            <div class="rk-hyd-mod-trigger" onclick="toggleHydModule(this)">
                <div class="rk-hyd-mod-left">
                    <div class="rk-hyd-mod-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="14" width="18" height="8" rx="2" ry="2"></rect><line x1="16" y1="14" x2="16" y2="10"></line><line x1="8" y1="14" x2="8" y2="10"></line><path d="M12 10V2"></path></svg>
                    </div>
                    <h3>Zawór mieszający i układ zasilania</h3>
                </div>
                <div class="rk-hyd-mod-arrow">
                    <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>
            </div>
            <div class="rk-hyd-mod-content">
                <div class="rk-hyd-inner-text">
                    Jeśli zostawiasz część starych kaloryferów, tworzysz instalację mieszaną. Wpuszczenie gorącej wody prosto w posadzkę zniszczy jastrych. Kluczem jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podłogowym</a> (najlepiej obrotowy z siłownikiem), który połączy się ze sprzęgłem. Idealnie wpisuje się to w zasady narzucane przez <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niską temperaturę zasilania pompy ciepła</a> (max. 35 stopni).
                </div>
            </div>
        </div>
    </div>

    <div class="rk-hyd-cta-area">
        <h4>Oszczędź tysiące złotych na błędach hydraulicznych</h4>
        <p>Nie pozwól, aby wykonawca zgadywał średnice rur na Twojej budowie. Wykonanie w starym budynku precyzyjnych obliczeń na etapie projektu gwarantuje idealny komfort i radykalne obniżenie rachunków.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn-premium">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO DO STAREGO REMONTOWANEGO DOMU
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
// Bezpieczna logika przełączania modułów bez operatorów typu ampersand
function toggleHydModule(element) {
    var parentModule = element.parentElement;
    var isActive = parentModule.classList.contains('active-module');
    var allModules = document.querySelectorAll('.rk-hyd-module');
    
    // Zwijanie wszystkich
    for (var i = 0; i < allModules.length; i++) {
        allModules[i].classList.remove('active-module');
    }
    
    // Rozwinięcie klikniętego, jeżeli był zwinięty
    if (isActive === false) {
        parentModule.classList.add('active-module');
    }
}
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-alert: #f59e0b; /* Pomarańczowy ostrzegawczy */
    --rk-err-danger: #ef4444; /* Czerwony krytyczny */
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
    --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 40px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

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

.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: #94a3b8;
    margin: 0 auto;
    max-width: 700px;
    line-height: 1.6;
}

/* Interaktywna Siatka Kart */
.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    padding: 35px 45px;
    background: #f8fafc;
}

.rk-err-card {
    background: var(--rk-err-bg);
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-err-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    transform: translateY(-3px);
}

.rk-err-card.scanned {
    border-color: var(--rk-err-danger);
    box-shadow: 0 15px 30px -5px rgba(239, 68, 68, 0.15);
}

/* Ikony i Typografia kart */
.rk-err-top {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-err-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-text);
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-err-card.scanned .rk-err-icon-box {
    background: #fef2f2;
    color: var(--rk-err-danger);
    animation: pulseAlert 1.5s infinite;
}

@keyframes pulseAlert {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

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

/* Ukryta zawartość detali */
.rk-err-details {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-card.scanned .rk-err-details {
    max-height: 400px;
    opacity: 1;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed var(--rk-err-border);
}

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

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

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

.rk-err-action-hint {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-err-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 15px;
    display: inline-block;
}

.rk-err-card.scanned .rk-err-action-hint {
    display: none;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-err-grid { grid-template-columns: 1fr; padding: 25px 20px; gap: 15px; }
    .rk-err-header { padding: 30px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-errors",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy montażu podłogówki podczas remontu",
    "description": "Techniczna diagnostyka 4 krytycznych błędów instalacyjnych w ogrzewaniu podłogowym, generujących ogromne straty finansowe i uszkodzenia konstrukcji.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-errors",
    "name": "Matryca błędów instalacyjnych i ich skutków fizycznych",
    "description": "Zestawienie relacji przyczynowo-skutkowych dla najczęstszych zaniedbań montażowych podczas wylewania posadzek na systemy grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "izolacja brzegowa i dylatacje",
      "próba szczelności ogrzewania podłogowego",
      "za długa pętla podłogówki",
      "maksymalna długość pętli ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kategoryzacja błędów montażowych z przypisaniem skutków fizycznych (np. spadek ciśnienia 6 bar, opór hydrauliczny pętli, naprężenia ścinające w betonie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Brak dylatacji obwodowych generuje pękanie kafli.",
        "Błąd 2: Brak próby ciśnieniowej PN-EN 1264-4 grozi zabetonowaniem nieszczelności.",
        "Błąd 3: Pętle powyżej 120m z rury 16mm powodują zanik przepływu.",
        "Błąd 4: Brak rur osłonowych (peszli) w dylatacjach powoduje ścięcie rury przez pracujący beton."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-errors",
    "name": "Interaktywny Skaner Błędów Wykonawczych",
    "description": "Moduł diagnostyczny prezentujący krok po kroku ukryte zagrożenia w wylewce podłogowej przed jej wykonaniem.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-error-scanner">
    <div class="rk-err-header">
        <h2>Najczęstsze błędy wykonawcze przy montażu podłogówki podczas remontu</h2>
        <p>Kliknij na poniższe karty, aby "przeskanować" ukryte zagrożenia. Poznaj techniczne i finansowe konsekwencje najpopularniejszych pomyłek amatorów.</p>
    </div>

    <div class="rk-err-grid">
        <div class="rk-err-card" onclick="scanError(this)">
            <div class="rk-err-top">
                <div class="rk-err-icon-box">
                    <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="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3 class="rk-err-title">Brak dylatacji obwodowych</h3>
            </div>
            <span class="rk-err-action-hint">Kliknij, aby poznać skutki ↧</span>
            <div class="rk-err-details">
                <p>Niewykonanie <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacji</a> z pianki poliuretanowej o grubości min. 8 mm wokół ścian skutkuje tym, że rozszerzający się termicznie beton napiera bezpośrednio na konstrukcję budynku. Efektem jest potężne pękanie kafli ceramicznych wzdłuż ścian oraz powstawanie naprężeń niszczących struktury rur grzewczych.</p>
            </div>
        </div>

        <div class="rk-err-card" onclick="scanError(this)">
            <div class="rk-err-top">
                <div class="rk-err-icon-box">
                    <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="M2 12h5l3-9 5 18 3-9h5"></path></svg>
                </div>
                <h3 class="rk-err-title">Zalewanie bez próby szczelności</h3>
            </div>
            <span class="rk-err-action-hint">Kliknij, aby poznać skutki ↧</span>
            <div class="rk-err-details">
                <p>Zgodnie z normą PN-EN 1264-4, przed zalaniem jastrychu należy obowiązkowo przeprowadzić <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbę szczelności ogrzewania podłogowego</a> na mokro przy ciśnieniu min. 0,6 MPa (6 bar). Zalanie rur "w ciemno" grozi zabetonowaniem mikropęknięcia powstałego podczas montażu, co generuje koszty kucia liczone w tysiącach złotych.</p>
            </div>
        </div>

        <div class="rk-err-card" onclick="scanError(this)">
            <div class="rk-err-top">
                <div class="rk-err-icon-box">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <h3 class="rk-err-title">Zbyt długie pętle grzewcze</h3>
            </div>
            <span class="rk-err-action-hint">Kliknij, aby poznać skutki ↧</span>
            <div class="rk-err-details">
                <p>Przekroczenie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a> (powyżej 120 metrów dla rury 16 mm) to wyrok dla hydrauliki. Powoduje to drastyczny spadek temperatury czynnika na końcu pętli i ogromny wzrost oporów przepływu. W efekcie powstaje tzw. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>, która staje się "martwa" – woda przez nią nie płynie, a pokój pozostaje zimny mimo pracy pompy.</p>
            </div>
        </div>

        <div class="rk-err-card" onclick="scanError(this)">
            <div class="rk-err-top">
                <div class="rk-err-icon-box">
                    <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="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>
                </div>
                <h3 class="rk-err-title">Efekt gilotyny w dylatacjach</h3>
            </div>
            <span class="rk-err-action-hint">Kliknij, aby poznać skutki ↧</span>
            <div class="rk-err-details">
                <p>Przejścia przez strefy dylatacyjne między pomieszczeniami (np. w progach) bez rur ochronnych (peszli) o długości min. 40 cm 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</a>. Pracujące niezależnie płyty jastrychu zachowują się podczas nagrzewania jak nożyce. Brak osłony sprawia, że beton dosłownie ścina rurę PEX, wywołując wyciek.</p>
            </div>
        </div>
    </div>
</div>

<script>
// Bezpieczna funkcja bez znaków & / | 
function scanError(element) {
    var isScanned = element.classList.contains('scanned');
    
    // Jeżeli nie jest zeskanowany, zeskanuj
    if (isScanned === false) {
        element.classList.add('scanned');
    } else {
        // Jeżeli jest, zwiń z powrotem
        element.classList.remove('scanned');
    }
}
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-light: #f0f9ff;
    --rk-diag-green: #10b981;
    --rk-diag-orange: #f59e0b;
    --rk-diag-red: #ef4444;
    --rk-diag-gray: #f8fafc;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
}

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

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

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

.rk-diag-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

/* Sekcja Aplikacji */
.rk-diag-app {
    display: flex;
    flex-direction: column;
}

/* Siatka Wyboru Typu Budynku */
.rk-diag-selector {
    padding: 30px 45px;
    background: var(--rk-diag-gray);
    border-bottom: 1px solid var(--rk-diag-border);
}

.rk-diag-selector h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
}

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

.rk-diag-card {
    background: #ffffff;
    border: 2px solid var(--rk-diag-border);
    border-radius: 12px;
    padding: 15px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

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

.rk-diag-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    line-height: 1.3;
}

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

.rk-diag-card.active {
    border-color: var(--rk-diag-blue);
    background: var(--rk-diag-light);
    box-shadow: 0 8px 20px rgba(2, 132, 199, 0.15);
}

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

.rk-diag-card.active .rk-diag-name {
    color: var(--rk-diag-blue);
}

/* Panel Wynikowy (Diagnoza) */
.rk-diag-result {
    padding: 40px 45px;
    background: #ffffff;
}

.rk-res-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-diag-border);
}

.rk-res-title-box {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-res-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0;
}

.rk-diag-badge {
    padding: 8px 18px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.badge-green { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.badge-orange { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.badge-red { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

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

.rk-res-block {
    background: var(--rk-diag-gray);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-diag-border);
}

.rk-res-block h4 {
    margin: 0 0 12px 0;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.text-warn { color: var(--rk-diag-orange); }
.text-sol { color: var(--rk-diag-blue); }

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

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-diag-grid { grid-template-columns: repeat(2, 1fr); }
    /* Dom z cegły rozciąga się na pełną szerokość w siatce 2x2+1 */
    .rk-diag-grid .rk-diag-card:last-child { grid-column: 1 / span 2; }
    
    .rk-diag-selector, .rk-diag-result { padding: 30px 20px; }
    .rk-diag-header { padding: 35px 20px; }
    .rk-res-top { flex-direction: column; gap: 15px; }
    .rk-res-content { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-diagnoza",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Najczęściej spotykane stare domy a podłogówka – diagnoza techniczna",
    "description": "Zestawienie technologiczne popularnych starych budynków w Polsce (Kostka lat 70, Pustak, Cegła, Strop Kleina, Drewniany) w kontekście opłacalności instalacji 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": "2025-12-29",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-diagnoza",
    "name": "Analiza kompatybilności starych domów z ogrzewaniem płaszczyznowym",
    "description": "Baza danych relacyjnych wiążąca typ konstrukcji nośnej i materiałowej starych domów ze stopniem skomplikowania wdrożenia instalacji hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt ogrzewania domu 2026",
      "wady wodnego ogrzewania podłogowego na co zwrócić uwagę przed instalacją",
      "czy ogrzewanie podłogowe nadaje się do drewnianego stropu",
      "czy trzeba mieć projekt na ogrzewanie podłogowe",
      "jak gęsto rozkładać podłogówkę"
    ],
    "measurementTechnique": "Kategoryzacja technologiczna oparta na parametrach izolacyjnych przegród i nośności statycznej stropów międzykondygnacyjnych starych budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kostka z lat 70: Wymaga skucia chudziaka do położenia izolacji. Ogrzewanie zalecane ze względu na poprawę COP.",
        "Dom z lat 80 (Pustak): Potencjalne mostki termiczne. Zaleca się zagęszczony rozstaw rur przy przeszkleniach.",
        "Strop Drewniany: Krytycznie niska nośność. Ogrzewanie wysoce opłacalne pod warunkiem stosowania systemu suchego.",
        "Strop Kleina: Ograniczona nośność statyczna. Należy zrezygnować z wylewki 7 cm na rzecz frezowania lub cienkiego jastrychu.",
        "Stary dom z Cegły pełnej: Znaczne straty ciepła wymagają bezwzględnych obliczeń OZC przed instalacją pomp ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-diagnoza",
    "name": "Inżynieryjny Analizator Starych Budynków i Stropów",
    "description": "Narzędzie pozwalające inwestorom wyselekcjonować rodzaj posiadanej konstrukcji, by otrzymać dedykowaną, autorską analizę problemów i rozwiązań grzewczych.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-building-diagnostics">
    <div class="rk-diag-header">
        <h2>Najczęściej spotykane stare domy a podłogówka – diagnoza techniczna</h2>
        <div class="rk-diag-intro">
            Czy w każdym starym domu instalacja ogrzewania niskotemperaturowego ma sens? Zamiast zgadywać i powielać mity z forów, wybierz z poniższej listy typ budynku lub stropu, który remontujesz. Otrzymasz natychmiastową inżynieryjną ocenę ryzyka, zidentyfikowane problemy oraz precyzyjne rozwiązania, które ochronią Cię przed <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" style="color:#38bdf8;">wadami wodnej podłogówki</a>.
        </div>
    </div>

    <div class="rk-diag-app">
        <div class="rk-diag-selector">
            <h3>Określ typ architektury swojego domu:</h3>
            <div class="rk-diag-grid">
                
                <div class="rk-diag-card active" id="btnType1" onclick="selectDiagType('kostka')">
                    <div class="rk-diag-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <span class="rk-diag-name">Kostka z lat 70.</span>
                </div>

                <div class="rk-diag-card" id="btnType2" onclick="selectDiagType('pustak')">
                    <div class="rk-diag-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="M3 21h18"></path><path d="M3 17V5c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v12"></path><rect x="7" y="7" width="10" height="6"></rect></svg>
                    </div>
                    <span class="rk-diag-name">Dom z lat 80. (Pustak)</span>
                </div>

                <div class="rk-diag-card" id="btnType3" onclick="selectDiagType('cegla')">
                    <div class="rk-diag-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="M3 3h18v18H3z"></path><path d="M3 9h18"></path><path d="M3 15h18"></path><path d="M9 3v6"></path><path d="M15 9v6"></path><path d="M9 15v6"></path></svg>
                    </div>
                    <span class="rk-diag-name">Stary dom z cegły</span>
                </div>

                <div class="rk-diag-card" id="btnType4" onclick="selectDiagType('drewno')">
                    <div class="rk-diag-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="2" y1="12" x2="22" y2="12"></line><path d="M6 12v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2"></path><line x1="2" y1="16" x2="22" y2="16"></line></svg>
                    </div>
                    <span class="rk-diag-name">Strop drewniany</span>
                </div>

                <div class="rk-diag-card" id="btnType5" onclick="selectDiagType('klein')">
                    <div class="rk-diag-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="18" x2="20" y2="18"></line><line x1="4" y1="6" x2="20" y2="6"></line><line x1="8" y1="6" x2="8" y2="18"></line><line x1="16" y1="6" x2="16" y2="18"></line></svg>
                    </div>
                    <span class="rk-diag-name">Strop Kleina</span>
                </div>
            </div>
        </div>

        <div class="rk-diag-result">
            <div class="rk-res-top">
                <div class="rk-res-title-box">
                    <h3 class="rk-res-title" id="resTitle">Dom Typu "Kostka" (lata 70)</h3>
                </div>
                <div class="rk-diag-badge badge-green" id="resBadge">
                    <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>
                    <span id="resBadgeTxt">TAK, WARTO ZAINWESTOWAĆ</span>
                </div>
            </div>

            <div class="rk-res-content">
                <div class="rk-res-block">
                    <h4 class="text-warn">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        Problemy i ryzyka
                    </h4>
                    <p id="resProb">
                        Brak jakiejkolwiek izolacji termicznej na podłodze. Próba frezowania starego "chudziaka" lub wylania betonu bezpośrednio na gruz zaowocuje gigantyczną ucieczką ciepła w fundamenty. Bez uprzedniej termomodernizacji ścian, wygenerujesz potężny <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania domu</a>.
                    </p>
                </div>
                
                <div class="rk-res-block">
                    <h4 class="text-sol">
                        <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>
                        Rozwiązanie inżynierskie
                    </h4>
                    <p id="resSol">
                        Konieczne jest skucie starych posadzek aż do ław fundamentowych, nawiezienie podsypki, położenie folii przeciwwilgociowej i dodanie minimum 10-12 cm twardego styropianu EPS 100. Bezwzględnie sprawdź <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">czy trzeba mieć projekt</a> – przy dużych oknach niezbędne będzie zagęszczenie stref brzegowych.
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function selectDiagType(type) {
    var b1 = document.getElementById('btnType1');
    var b2 = document.getElementById('btnType2');
    var b3 = document.getElementById('btnType3');
    var b4 = document.getElementById('btnType4');
    var b5 = document.getElementById('btnType5');

    var title = document.getElementById('resTitle');
    var badge = document.getElementById('resBadge');
    var badgeTxt = document.getElementById('resBadgeTxt');
    var prob = document.getElementById('resProb');
    var sol = document.getElementById('resSol');

    b1.classList.remove('active');
    b2.classList.remove('active');
    b3.classList.remove('active');
    b4.classList.remove('active');
    b5.classList.remove('active');

    if (type === 'kostka') {
        b1.classList.add('active');
        title.innerText = 'Dom Typu "Kostka" (lata 70)';
        badge.className = 'rk-diag-badge badge-green';
        badge.innerHTML = '<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><span id="resBadgeTxt">TAK, WARTO ZAINWESTOWAĆ</span>';
        
        prob.innerHTML = 'Brak jakiejkolwiek izolacji termicznej na podłodze. Próba frezowania starego "chudziaka" lub wylania betonu bezpośrednio na stary grunt zaowocuje gigantyczną ucieczką ciepła w fundamenty. Bez uprzedniej termomodernizacji ścian, wygenerujesz potężny <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania domu</a>.';
        sol.innerHTML = 'Konieczne jest skucie starych posadzek aż do ław fundamentowych, nawiezienie izolacji przeciwwilgociowej i dodanie minimum 10-12 cm twardego styropianu EPS 100. Bezwzględnie sprawdź <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">czy trzeba mieć projekt</a> – przy dużych oknach niezbędne będzie zagęszczenie układu rur.';
    }

    if (type === 'pustak') {
        b2.classList.add('active');
        title.innerText = 'Dom z Pustaka (lata 80)';
        badge.className = 'rk-diag-badge badge-green';
        badge.innerHTML = '<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><span id="resBadgeTxt">TAK, BARDZO OPŁACALNE</span>';
        
        prob.innerHTML = 'Budynki te często charakteryzują się ogromnymi stratami ciepła przez ściany zewnętrzne oraz mostkami termicznymi na wieńcach i balkonach. Montaż pompy ciepła bez analizy cieplnej skończy się niedogrzaniem pokoi i ciągłym taktowaniem urządzenia.';
        sol.innerHTML = 'Należy precyzyjnie przeliczyć to, <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a> na podstawie bilansu OZC. W centrum pomieszczeń rozstaw ustala się co 15 cm, a przy balkonach i ścianach szczytowych wymusza się gęste meandrowanie (10 cm).';
    }

    if (type === 'cegla') {
        b3.classList.add('active');
        title.innerText = 'Stary Dom z Cegły Pełnej';
        badge.className = 'rk-diag-badge badge-orange';
        badge.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg><span id="resBadgeTxt">TAK, ALE Z OSTROŻNOŚCIĄ</span>';
        
        prob.innerHTML = 'Gruby mur z cegły pełnej to potężny akumulator chłodu. Sama powierzchnia podłogi może nie oddać wystarczającej mocy (W/m²), by ogrzać wysokie, kamieniczne pomieszczenia bez przekraczania normy temperaturowej dla stóp (29 stopni).';
        sol.innerHTML = 'Zaleca się wykonanie instalacji mieszanej. Podłogówka grzeje do optymalnej normy zapewniając komfort, a ewentualne niedobory mocy w ostre zimy uzupełniają grzejniki. Niezbędne jest rozbicie układów i zastosowanie odpowiednich zaworów mieszających w szafce.';
    }

    if (type === 'drewno') {
        b4.classList.add('active');
        title.innerText = 'Zabytkowy Strop Drewniany';
        badge.className = 'rk-diag-badge badge-orange';
        badge.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg><span id="resBadgeTxt">TYLKO WARUNKOWO</span>';
        
        prob.innerHTML = 'Klasyczny błąd amatorów to wylanie 6-centymetrowej płyty betonowej na stare belki. Generuje to obciążenie rzędu 150 kg/m², co wywołuje ugięcia belek nośnych i w skrajnych przypadkach pękanie sufitów piętro niżej.';
        sol.innerHTML = 'Odpowiedź na pytanie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a> brzmi: Tak, ale wyłącznie w oparciu o ultra lekki system renowacyjny z płyt gipsowo-włóknistych i lameli aluminiowych (obciążenie zredukowane do 25-30 kg/m²).';
    }

    if (type === 'klein') {
        b5.classList.add('active');
        title.innerText = 'Strop Typu Kleina';
        badge.className = 'rk-diag-badge badge-green';
        badge.innerHTML = '<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><span id="resBadgeTxt">TAK, ŚWIETNA OPCJA</span>';
        
        prob.innerHTML = 'Stropy z belek stalowych i cegieł są podatne na przeciążenia przy wprowadzaniu dodatkowych ciężkich nadlewek, co podnosi rzędną podłogi i niszczy proporcje drzwi i schodów w starych budynkach.';
        sol.innerHTML = 'Zaleca się zrezygnowanie z nadlewania tradycyjnego betonu. Jeśli stara podłoga to gruby "chudziak", można zastosować szybkie frezowanie diamentowe pod rury PEX (system ukryty), zachowując cenne centymetry wysokości w starych wnętrzach.';
    }
}
</script>



<style>
:root {
    --rk-myth-dark: #0f172a;
    --rk-myth-blue: #0284c7;
    --rk-myth-red: #ef4444;
    --rk-myth-red-light: #fef2f2;
    --rk-myth-green: #10b981;
    --rk-myth-green-light: #f0fdf4;
    --rk-myth-gray: #f8fafc;
    --rk-myth-border: #e2e8f0;
    --rk-myth-text: #475569;
}

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

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

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

.rk-myth-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    max-width: 800px;
    margin: 0 auto;
}

/* Sekcja Aplikacji */
.rk-myth-app {
    padding: 40px 45px;
    background: var(--rk-myth-gray);
}

.rk-myth-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

/* Karta Mitu (Rozciągnięcie ostatniej karty na całą szerokość przy nieparzystej liczbie) */
.rk-myth-card-wrapper:last-child {
    grid-column: 1 / -1;
}

.rk-myth-card {
    background: #ffffff;
    border: 2px solid var(--rk-myth-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.rk-myth-card:hover {
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
    transform: translateY(-2px);
}

/* Stan: Mit (Front) */
.rk-myth-front {
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    transition: all 0.3s;
}

.rk-myth-badge-red {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-myth-red-light);
    color: #b91c1c;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    align-self: flex-start;
    border: 1px solid #fecaca;
}

.rk-myth-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-myth-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-myth-hint {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-myth-blue);
    margin-top: auto;
}

/* Stan: Prawda (Tył/Rozwinięcie) */
.rk-myth-back {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    background: var(--rk-myth-green-light);
    padding: 0 25px;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-myth-card.revealed {
    border-color: var(--rk-myth-green);
    box-shadow: 0 15px 30px -5px rgba(16, 185, 129, 0.15);
}

.rk-myth-card.revealed .rk-myth-front {
    background: var(--rk-myth-green-light);
    padding-bottom: 15px;
}

.rk-myth-card.revealed .rk-myth-badge-red {
    background: var(--rk-myth-green);
    color: #ffffff;
    border-color: var(--rk-myth-green);
}

.rk-myth-card.revealed .rk-myth-hint {
    display: none;
}

.rk-myth-card.revealed .rk-myth-back {
    max-height: 300px;
    opacity: 1;
    padding: 0 25px 25px 25px;
}

.rk-fact-text {
    font-size: 15px;
    line-height: 1.7;
    color: #166534;
    margin: 0;
    border-top: 1px solid #bbf7d0;
    padding-top: 15px;
}

.rk-fact-text a {
    color: #15803d;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-myth-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-myth-card-wrapper:last-child { grid-column: auto; }
    .rk-myth-header { padding: 35px 20px; }
    .rk-myth-app { padding: 30px 20px; }
    .rk-myth-front, .rk-myth-back, .rk-myth-card.revealed .rk-myth-back { padding-left: 20px; padding-right: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-mity",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Największe mity o ogrzewaniu podłogowym w starym domu",
    "description": "Obalamy 5 najpopularniejszych mitów dotyczących modernizacji. Dowiedz się, dlaczego podłogówka świetnie współpracuje z kotłem gazowym i nie zawsze wymaga kucia wylewek.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-mity",
    "name": "Baza weryfikacji mitów instalacyjnych (Fact-Checking HVAC)",
    "description": "Inżynierskie zestawienie konfrontujące popularne błędy poznawcze inwestorów z twardymi danymi z zakresu fizyki budowli i hydrauliki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dlaczego ogrzewanie podłogowe nie grzeje w starym domu",
      "czy trzeba skuwać wylewkę pod podłogówkę",
      "ogrzewanie podłogowe a stary kocioł gazowy kondensacyjny",
      "podłogówka na piętrze na starym stropie",
      "frezowanie ogrzewania podłogowego w starym domu"
    ],
    "measurementTechnique": "Weryfikacja obiegowych opinii na podstawie obliczeń OZC, sprawności kotłów kondensacyjnych i obciążeń normatywnych stropów drewnianych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Fakt 1: Obliczenia OZC i odpowiedni rozstaw rur gwarantują idealne pokrycie strat ciepła, eliminując problem niedogrzewania.",
        "Fakt 2: Podłogówka jest kompatybilna z każdym starym domem, o ile zostanie on poddany termomodernizacji (docieplenie).",
        "Fakt 3: Frezowanie starego jastrychu lub system suchy eliminują konieczność wyburzania posadzek.",
        "Fakt 4: Niskotemperaturowy powrót z podłogówki maksymalizuje zjawisko kondensacji, drastycznie podnosząc sprawność kotłów gazowych.",
        "Fakt 5: Lekkie systemy renowacyjne bez wylewki pozwalają na bezpieczny montaż ogrzewania na starych stropach drewnianych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-mity",
    "name": "Interaktywny Pogromca Mitów HVAC",
    "description": "Narzędzie interaktywne pozwalające użytkownikowi na weryfikację popularnych błędów poznawczych poprzez odsłanianie ukrytych rozwiązań inżynierskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-myth-container" id="rk-mythbuster">
    <div class="rk-myth-header">
        <h2>Największe mity o ogrzewaniu podłogowym w starym domu</h2>
        <div class="rk-myth-intro">
            Modernizacja instalacji grzewczej to podatny grunt dla opowieści z kategorii "kolega szwagra powiedział". Inwestorzy zasypywani są nieprawdziwymi informacjami, które blokują wdrażanie oszczędnych technologii. Rozprawmy się z nimi raz na zawsze – w sposób czysto inżynierski. Kliknij w wybraną kartę, aby poznać prawdę.
        </div>
    </div>

    <div class="rk-myth-app">
        <div class="rk-myth-grid">
            
            <div class="rk-myth-card-wrapper">
                <div class="rk-myth-card" onclick="toggleMyth(this)">
                    <div class="rk-myth-front">
                        <div class="rk-myth-badge-red" data-role="badge">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                            Popularny Mit
                        </div>
                        <h3 class="rk-myth-title">"Podłogówka w starym domu po prostu nie grzeje."</h3>
                        <span class="rk-myth-hint">Odkryj prawdę ↧</span>
                    </div>
                    <div class="rk-myth-back">
                        <p class="rk-fact-text">
                            <strong>FAKT INŻYNIERSKI:</strong> To błąd projektowy, nie wina systemu. Zjawisko to występuje wyłącznie u osób, które układały instalację "na oko". Profesjonalne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia OZC</a>, odpowiedni <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (np. zagęszczony co 10 cm przy oknach) oraz wydajna pompa obiegowa gwarantują idealną temperaturę nawet w największe mrozy.
                        </p>
                    </div>
                </div>
            </div>

            <div class="rk-myth-card-wrapper">
                <div class="rk-myth-card" onclick="toggleMyth(this)">
                    <div class="rk-myth-front">
                        <div class="rk-myth-badge-red" data-role="badge">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                            Popularny Mit
                        </div>
                        <h3 class="rk-myth-title">"Taki system w ogóle nie nadaje się do starego domu."</h3>
                        <span class="rk-myth-hint">Odkryj prawdę ↧</span>
                    </div>
                    <div class="rk-myth-back">
                        <p class="rk-fact-text">
                            <strong>FAKT INŻYNIERSKI:</strong> Płaszczyznowe systemy grzewcze nadają się wszędzie, o ile wcześniej przeprowadzisz podstawową termomodernizację (docieplenie ścian i wymiana stolarki). Stary dom ocieplony styropianem staje się potężnym magazynem darmowej energii (tzw. akumulacja w masywnych murach).
                        </p>
                    </div>
                </div>
            </div>

            <div class="rk-myth-card-wrapper">
                <div class="rk-myth-card" onclick="toggleMyth(this)">
                    <div class="rk-myth-front">
                        <div class="rk-myth-badge-red" data-role="badge">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                            Popularny Mit
                        </div>
                        <h3 class="rk-myth-title">"Trzeba skuć cały budynek do gołej ziemi."</h3>
                        <span class="rk-myth-hint">Odkryj prawdę ↧</span>
                    </div>
                    <div class="rk-myth-back">
                        <p class="rk-fact-text">
                            <strong>FAKT INŻYNIERSKI:</strong> Skucie jest potrzebne tylko wtedy, gdy na gruncie całkowicie brakuje izolacji. Jeśli stary jastrych jest gruby na min. 50 mm i ocieplony od dołu, z powodzeniem można zastosować <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego</a>, całkowicie eliminując proces kucia gruzu i lania betonu.
                        </p>
                    </div>
                </div>
            </div>

            <div class="rk-myth-card-wrapper">
                <div class="rk-myth-card" onclick="toggleMyth(this)">
                    <div class="rk-myth-front">
                        <div class="rk-myth-badge-red" data-role="badge">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                            Popularny Mit
                        </div>
                        <h3 class="rk-myth-title">"Podłogówka absolutnie nie działa z kotłem gazowym."</h3>
                        <span class="rk-myth-hint">Odkryj prawdę ↧</span>
                    </div>
                    <div class="rk-myth-back">
                        <p class="rk-fact-text">
                            <strong>FAKT INŻYNIERSKI:</strong> To jeden z najbardziej krzywdzących mitów. Nowoczesny <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy kondensacyjny</a> wręcz "uwielbia" współpracę z instalacją podłogową. Niska temperatura wody wracającej z posadzki (np. 30°C) maksymalizuje proces odzyskiwania ciepła ze spalin (kondensację), windując sprawność urządzenia do ponad 107%.
                        </p>
                    </div>
                </div>
            </div>

            <div class="rk-myth-card-wrapper">
                <div class="rk-myth-card" onclick="toggleMyth(this)">
                    <div class="rk-myth-front">
                        <div class="rk-myth-badge-red" data-role="badge">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                            Popularny Mit
                        </div>
                        <h3 class="rk-myth-title">"Z uwagi na ciężar, nie można jej zrobić na piętrze."</h3>
                        <span class="rk-myth-hint">Odkryj prawdę ↧</span>
                    </div>
                    <div class="rk-myth-back">
                        <p class="rk-fact-text">
                            <strong>FAKT INŻYNIERSKI:</strong> Próba wylania ciężkiego betonu na stary drewniany strop to prośba o katastrofę budowlaną. Właśnie dlatego inżynieria wypracowała <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy</a>. Zastosowanie profili aluminiowych na styropianie z płytą gipsowo-włóknistą obciąża stary strop zaledwie wagą ok. 25-30 kg/m², co czyni montaż bezpiecznym.
                        </p>
                    </div>
                </div>
            </div>

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

<script>
// Bezpieczna struktura przełączania klas bez znaków logicznych ampersand/pipe
function toggleMyth(element) {
    var isRevealed = element.classList.contains('revealed');
    var badge = element.querySelector('[data-role="badge"]');
    
    if (isRevealed === false) {
        element.classList.add('revealed');
        badge.innerHTML = '<svg width="14" height="14" 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> FAKT INŻYNIERSKI';
    } else {
        element.classList.remove('revealed');
        badge.innerHTML = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> POPULARNY MIT';
    }
}
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-light: #f0f9ff;
    --rk-case-green: #10b981;
    --rk-case-orange: #f59e0b;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
}

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

/* Sekcja Nagłówkowa */
.rk-case-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

.rk-case-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

.rk-case-intro strong {
    color: #ffffff;
}

/* Moduł Mitów (Forum vs Inżynieria) */
.rk-case-myths {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 30px 45px;
    background: var(--rk-case-gray);
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-myth-box {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
    position: relative;
    overflow: hidden;
}

.rk-myth-box.forum {
    border-left: 4px solid var(--rk-case-orange);
}

.rk-myth-box.expert {
    border-left: 4px solid var(--rk-case-blue);
}

.rk-myth-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-myth-box.forum .rk-myth-title { color: #b45309; }
.rk-myth-box.expert .rk-myth-title { color: var(--rk-case-blue); }

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

/* Interaktywny Model Hybrydowy */
.rk-case-app {
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
}

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

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

.rk-case-btn {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-case-btn-title {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-btn-sub {
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-case-btn.active[data-level="floor"] {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-light);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-case-btn.active[data-level="ground"] {
    border-color: var(--rk-case-green);
    background: #f0fdf4;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.15);
}

/* Dynamiczny Podgląd */
.rk-case-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-case-visual {
    background: var(--rk-case-gray);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rk-case-border);
}

.rk-layer-mockup {
    width: 100%;
    max-width: 250px;
    display: none;
    flex-direction: column;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    border-radius: 8px;
    overflow: hidden;
    animation: fadeInCase 0.4s ease forwards;
}

.rk-layer-mockup.active-mockup {
    display: flex;
}

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

.rk-layer { display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: #475569; }
.ly-tile { height: 20px; background: #e2e8f0; border-bottom: 2px solid #cbd5e1; }

/* Mokry */
.ly-concrete { height: 70px; background: #94a3b8; color: #ffffff; border-bottom: 2px solid #64748b; }
.ly-eps { height: 60px; background: #fef08a; color: #854d0e; border-bottom: 2px solid #facc15; }
.ly-soil { height: 40px; background: repeating-linear-gradient(45deg, #cbd5e1, #cbd5e1 5px, #94a3b8 5px, #94a3b8 10px); color: #ffffff;}

/* Suchy */
.ly-dryboard { height: 15px; background: #cbd5e1; border-bottom: 1px solid #94a3b8;}
.ly-alu { height: 30px; background: #e0f2fe; color: #0284c7; border-bottom: 2px solid #bae6fd;}
.ly-wood { height: 40px; background: #d2b48c; color: #8b5a2b; border-top: 2px dashed #8b5a2b; }

.rk-case-specs {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-spec-item {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 15px 20px;
    border-radius: 12px;
}

.rk-spec-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    margin-bottom: 5px;
    display: block;
}

.rk-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

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

.rk-case-desc {
    margin-top: 15px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-case-text);
    padding: 15px;
    background: var(--rk-case-gray);
    border-radius: 8px;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-app { padding: 30px 20px; }
    .rk-case-myths { grid-template-columns: 1fr; padding: 25px 20px; }
    .rk-case-toggles { flex-direction: column; }
    .rk-case-btn { flex-direction: row; justify-content: space-between; padding: 15px 20px; text-align: left; }
    .rk-case-display { grid-template-columns: 1fr; gap: 20px; }
    .rk-case-btn-sub { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Case Study: Hybrydowa modernizacja domu z lat 60. w Gnieźnie",
    "description": "Jak połączyć system mokry na gruncie z systemem suchym na drewnianym stropie. Analiza przypadku inwestora zmagającego się ze sprzecznymi opiniami na forach.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-casestudy",
    "name": "Parametry układu hybrydowego w modernizowanym budynku",
    "description": "Zestawienie obciążeń statycznych i parametrów układania dla dwóch różnych technologii zastosowanych w jednym obiekcie mieszkalnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w starym domu",
      "wylewka betonowa na ogrzewanie podłogowe",
      "system suchy w wodnym ogrzewaniu podłogowym",
      "projekt instalacji ogrzewania podłogowego",
      "rozstaw rur w wodnym ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Określenie masy na m2 dla jastrychu anhydrytowego względem paneli systemowych oraz dobór rozstawu pętli dla wyrównania oporów hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Parter (Podłoga na gruncie): System mokry z izolacją EPS 100. Wylewka cementowa. Obciążenie: 140 kg/m2.",
        "Piętro (Strop drewniany): Lekki system suchy oparty na lamelach aluminiowych. Obciążenie: 25 kg/m2.",
        "Cel: Uniknięcie zawalenia starego stropu bez konieczności przechodzenia na grzejniki, co pozwala utrzymać optymalny COP pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-casestudy",
    "name": "Symulator Architektury Hybrydowej (Case Study)",
    "description": "Interaktywny przekrój budynku demonstrujący różnice konstrukcyjne pomiędzy klasycznym systemem mokrym na parterze a lekkim systemem suchym na piętrze.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-casestudy">
    <div class="rk-case-header">
        <h2>Case Study: Hybrydowa rewolucja w kostce z lat 60.</h2>
        <div class="rk-case-intro">
            Pan Tomasz z Gniezna odziedziczył po rodzicach klasyczną "kostkę" z 1965 roku. Planował montaż pompy ciepła, ale natrafił na fundamentalny problem: solidny parter na gruncie oraz piętro oparte na bardzo elastycznym stropie drewnianym. Po spędzeniu tygodni na czytaniu forów budowlanych, był całkowicie zdezorientowany ilością wykluczających się "porad".
        </div>
    </div>

    <div class="rk-case-myths">
        <div class="rk-myth-box forum">
            <div class="rk-myth-title">
                <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>
                Zgiełk z grup na Facebooku
            </div>
            <p class="rk-myth-text">
                "Wylej 6 cm betonu na górze, najwyżej trochę podstemplujesz belki od spodu." Albo z drugiej strony: "Odpuść sobie podłogówkę na piętrze, daj grzejniki wysokotemperaturowe, będzie pan zadowolony."
            </p>
        </div>
        <div class="rk-myth-box expert">
            <div class="rk-myth-title">
                <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>
                Faktyczna inżynieria HVAC
            </div>
            <p class="rk-myth-text">
                Wylanie betonu to ryzyko załamania stropu. Z kolei mieszanie grzejników z podłogówką zabije ekonomię pompy ciepła. Rozwiązaniem jest profesjonalny <a href="https://projekt-ogrzewania.pl/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt instalacji ogrzewania podłogowego</a> w wariancie hybrydowym.
            </p>
        </div>
    </div>

    <div class="rk-case-app">
        <h3>Architektura zastosowana u Pana Tomasza</h3>
        
        <div class="rk-case-toggles">
            <button class="rk-case-btn active" data-level="ground" id="btnGround" onclick="switchCaseLevel('ground')">
                <span class="rk-case-btn-title">Parter (Na gruncie)</span>
                <span class="rk-case-btn-sub">System Tradycyjny Mokry</span>
            </button>
            <button class="rk-case-btn" data-level="floor" id="btnFloor" onclick="switchCaseLevel('floor')">
                <span class="rk-case-btn-title">Piętro (Strop drewniany)</span>
                <span class="rk-case-btn-sub">Lekki System Suchy</span>
            </button>
        </div>

        <div class="rk-case-display">
            <div class="rk-case-visual">
                <div class="rk-layer-mockup active-mockup" id="mockupGround">
                    <div class="rk-layer ly-tile">PŁYTKI / KLEJ (15mm)</div>
                    <div class="rk-layer ly-concrete">WYLEWKA Z RURĄ PEX (60mm)</div>
                    <div class="rk-layer ly-eps">IZOLACJA EPS 100 (120mm)</div>
                    <div class="rk-layer ly-soil">ISTNIEJĄCY CHUDY BETON</div>
                </div>
                
                <div class="rk-layer-mockup" id="mockupFloor">
                    <div class="rk-layer ly-tile">PANELE (10mm)</div>
                    <div class="rk-layer ly-dryboard">PŁYTA G-W (10mm)</div>
                    <div class="rk-layer ly-alu">LAMELE + PEX W EPS (25mm)</div>
                    <div class="rk-layer ly-wood">STROP DREWNIANY</div>
                </div>
            </div>

            <div class="rk-case-specs">
                <div class="rk-spec-item">
                    <span class="rk-spec-label">Obciążenie statyczne stropu</span>
                    <span class="rk-spec-val val-green" id="valWeight">~140 kg/m²</span>
                </div>
                <div class="rk-spec-item">
                    <span class="rk-spec-label">Optymalny rozstaw rur</span>
                    <span class="rk-spec-val val-blue" id="valSpace">Środek 15 cm / Brzeg 10 cm</span>
                </div>
                
                <div class="rk-case-desc" id="caseDesc">
                    <strong>Uzasadnienie:</strong> Na solidnym gruncie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa na ogrzewanie podłogowe</a> to doskonały, tani magazyn ciepła. Zastosowaliśmy pogrubiony styropian EPS 100, aby definitywnie odciąć straty do gruntu w starym budynku.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function switchCaseLevel(level) {
    var btnGround = document.getElementById('btnGround');
    var btnFloor = document.getElementById('btnFloor');
    
    var mockupGround = document.getElementById('mockupGround');
    var mockupFloor = document.getElementById('mockupFloor');
    
    var valWeight = document.getElementById('valWeight');
    var valSpace = document.getElementById('valSpace');
    var caseDesc = document.getElementById('caseDesc');

    // Reset
    btnGround.classList.remove('active');
    btnFloor.classList.remove('active');
    mockupGround.classList.remove('active-mockup');
    mockupFloor.classList.remove('active-mockup');

    if (level === 'ground') {
        btnGround.classList.add('active');
        mockupGround.classList.add('active-mockup');
        
        valWeight.innerText = '~140 kg/m²';
        valWeight.className = 'rk-spec-val val-green';
        valSpace.innerText = 'Środek 15 cm / Brzeg 10 cm';
        
        caseDesc.innerHTML = '<strong>Uzasadnienie:</strong> Na solidnym gruncie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa na ogrzewanie podłogowe</a> to doskonały, tani magazyn ciepła. Zastosowaliśmy pogrubiony styropian EPS 100, aby definitywnie odciąć straty do gruntu w starym budynku.';
    }

    if (level === 'floor') {
        btnFloor.classList.add('active');
        mockupFloor.classList.add('active-mockup');
        
        valWeight.innerText = '~25 kg/m² (Bezpieczne!)';
        valWeight.className = 'rk-spec-val val-blue';
        valSpace.innerText = 'Systemowe 12.5 cm';
        
        caseDesc.innerHTML = '<strong>Uzasadnienie:</strong> Aby uniknąć zawalenia, wdrożono <a href="https://projekt-ogrzewania.pl/system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy w wodnym ogrzewaniu podłogowym</a>. Dzięki aluminiowym radiatorom system szybko reaguje na zmiany, a <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w wodnym ogrzewaniu podłogowym</a> dostosowano do rygorystycznych wymogów hydraulicznych pompy ciepła (zrównoważenie oporów dołka i góry).';
    }
}
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-blue: #0284c7;
    --rk-exp-light: #f0f9ff;
    --rk-exp-border: #e2e8f0;
    --rk-exp-text: #334155;
    --rk-exp-bg: #ffffff;
    --rk-exp-linkedin: #0a66c2;
    --rk-exp-facebook: #1877f2;
}

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

/* Profil i Bio */
.rk-exp-profile-box {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 40px 45px;
    background: linear-gradient(to right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-avatar {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 16px rgba(0,0,0,0.1);
    flex-shrink: 0;
}

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

.rk-exp-info h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-exp-dark);
    margin: 0 0 8px 0;
    line-height: 1.2;
}

.rk-exp-role {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-exp-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    display: block;
}

.rk-exp-desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-exp-text);
    margin-bottom: 20px;
}

.rk-exp-social {
    display: flex;
    gap: 15px;
}

.rk-social-link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 8px;
    color: #ffffff;
}

.rk-social-link.fb { background: var(--rk-exp-facebook); }
.rk-social-link.in { background: var(--rk-exp-linkedin); }

/* Interaktywny Panel (Zakładki) */
.rk-exp-interactive {
    display: flex;
    flex-direction: column;
}

.rk-exp-tabs {
    display: flex;
    background: var(--rk-exp-dark);
}

.rk-exp-tab-btn {
    flex: 1;
    padding: 18px 20px;
    background: transparent;
    border: none;
    border-right: 1px solid rgba(255,255,255,0.1);
    color: #94a3b8;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-exp-tab-btn:last-child {
    border-right: none;
}

.rk-exp-tab-btn.active {
    background: var(--rk-exp-bg);
    color: var(--rk-exp-blue);
}

.rk-exp-panels {
    padding: 40px 45px;
    background: var(--rk-exp-bg);
}

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

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

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

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

.rk-exp-panel ul {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-exp-text);
    font-size: 15px;
    line-height: 1.7;
}

.rk-exp-panel ul li {
    margin-bottom: 8px;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-exp-profile-box { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-exp-social { justify-content: center; }
    .rk-exp-tabs { flex-direction: column; }
    .rk-exp-tab-btn { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); padding: 15px; justify-content: flex-start; }
    .rk-exp-panels { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Okiem eksperta: Robert Kucharski o błędach i kosztach montażu w modernizowanym domu",
    "description": "Autorski przegląd krytycznych błędów modernizacyjnych i realnych kosztów wdrożenia ogrzewania podłogowego. Wiedza oparta na tysiącach wdrożeń w Polsce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-01",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-ekspert",
    "name": "Eksperckie Wskaźniki Modernizacji (Baza Wiedzy)",
    "description": "Zbiór kluczowych parametrów decyzyjnych dotyczących bezpieczeństwa statycznego stropów oraz wytycznych dla systemów niskotemperaturowych w starym budownictwie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego w remontowanym budynku",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym",
      "wady wodnego ogrzewania podłogowego na co zwrócić uwagę przed instalacją"
    ],
    "measurementTechnique": "Empiryczna weryfikacja danych normatywnych i błędów wykonawczych zebrana na podstawie audytów hydraulicznych na placach budowy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja grubości: Ograniczenie wysokości zabudowy poniżej 45mm wymusza stosowanie systemów renowacyjnych (suchych).",
        "Izolacja brzegowa: Brak dylatacji poliuretanowej o grubości min. 8mm bezwzględnie uszkadza kafle ceramiczne.",
        "Komfort a parametry: Przestrzeganie PN-EN 1264-3 chroni układ przed syndromem gorących stóp (temp. max 29 stopni)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-ekspert",
    "name": "Interaktywny Panel Eksperta",
    "description": "Moduł zakładek służący do weryfikacji i porównywania technicznych konkluzji głównego inżyniera HVAC dla modernizowanych obiektów mieszkalnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container" id="rk-expert-panel">
    <div class="rk-exp-profile-box">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert Ogrzewania Podłogowego" class="rk-exp-avatar">
        <div class="rk-exp-info">
            <h2>Okiem eksperta: Robert Kucharski o tym, czy warto instalować ogrzewanie podłogowe w remontowanym budynku</h2>
            <span class="rk-exp-role">Główny SPECJALISTA & CEO Projekt-Ogrzewania.pl</span>
            <p class="rk-exp-desc">
                Inwestorzy często pytają mnie, czy podłogówka w starym domu ma w ogóle sens. Odpowiadam wprost: to najbardziej rentowna decyzja przy modernizacji, ale tylko wtedy, gdy nie popełnisz amatorskich błędów. Fizyki nie da się oszukać tanim materiałem ani brakiem obliczeń. Poniżej przedstawiam mój twardy, inżynierski werdykt.
            </p>
            <div class="rk-exp-social">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener" class="rk-social-link fb">
                    <svg width="18" height="18" 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>
                    Facebook
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener" class="rk-social-link in">
                    <svg width="18" height="18" 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>
                    LinkedIn
                </a>
            </div>
        </div>
    </div>

    <div class="rk-exp-interactive">
        <div class="rk-exp-tabs">
            <button class="rk-exp-tab-btn active" data-tab="werdykt" onclick="switchExpertTab('werdykt')">
                <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>
                Ostateczny Werdykt
            </button>
            <button class="rk-exp-tab-btn" data-tab="bledy" onclick="switchExpertTab('bledy')">
                <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>
                Zagrożenia i Błędy
            </button>
            <button class="rk-exp-tab-btn" data-tab="koszty" onclick="switchExpertTab('koszty')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="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>
                Klucz do Oszczędności
            </button>
        </div>

        <div class="rk-exp-panels">
            <div class="rk-exp-panel active" id="panel-werdykt">
                <h3>Opłacalność bez kompromisów</h3>
                <p>
                    Rozpatrując opłacalność, odpowiedź jest jedna: <strong>warto</strong>. Warunkiem koniecznym jest jednak dopasowanie systemu grzewczego do realnych parametrów budynku. Usunięcie kaloryferów likwiduje asymetrię cieplną, ale wymaga rzetelnego audytu. <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">Wady wodnego ogrzewania podłogowego</a> ujawniają się wyłącznie u tych inwestorów, którzy zignorowali izolację podłoża i zaniechali doboru pompy obiegowej na etapie wyliczeń.
                </p>
                <ul>
                    <li>Stare stropy drewniane uchroni przed załamaniem renowacyjny system suchy (tylko 30 kg/m²).</li>
                    <li>Przejście na instalację płaszczyznową to jedyna droga do maksymalizacji parametru COP dla pomp ciepła.</li>
                </ul>
            </div>

            <div class="rk-exp-panel" id="panel-bledy">
                <h3>Montaż "na oko" to katastrofa finansowa</h3>
                <p>
                    Największą plagą na placach budowy jest zjawisko kopiowania rozwiązań z nowego budownictwa do budynków modernizowanych. Brak weryfikacji izolacji odciąga strumień ciepła w stronę zimnej piwnicy lub bezpośrednio do gruntu. Zwróć uwagę na absolutne podstawy techniczne:
                </p>
                <ul>
                    <li>Brak odpowiedniej taśmy brzegowej zawsze skutkuje pękaniem nowych kafli ceramicznych.</li>
                    <li>Zbagatelizowanie kwestii tego, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a> w strefach przyokiennych (tzw. strefa brzegowa), gwarantuje zimne podłogi mimo działającej instalacji.</li>
                    <li>Pominięcie manometrycznej próby szczelności (ciśnieniem 6 bar) przed zabetonowaniem to przepis na zniszczenie gotowych okładzin.</li>
                </ul>
            </div>

            <div class="rk-exp-panel" id="panel-koszty">
                <h3>Projekt OZC jako Twoja polisa ubezpieczeniowa</h3>
                <p>
                    Inwestorzy wydają od kilkunastu do kilkudziesięciu tysięcy złotych na miedziane rozdzielacze, kilometry rur PEX i zaawansowaną automatykę sterującą. Jednocześnie oszczędzają ułamek tej kwoty na wykonaniu inżynieryjnego audytu ciepła. Pamiętaj, że koszty eksploatacji tworzy się na papierze.
                </p>
                <ul>
                    <li><a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej</a> musi być obliczona, by zgadzała się bezwładność cieplna i nośność starego stropu.</li>
                    <li>Poprawny bilans to obniżenie kosztów eksploatacji względem systemu grzejnikowego nawet o 35% rocznie w skali całego domu.</li>
                </ul>
            </div>
        </div>
    </div>
</div>

<script>
function switchExpertTab(tabName) {
    var tabs = document.querySelectorAll('.rk-exp-tab-btn');
    var panels = document.querySelectorAll('.rk-exp-panel');
    
    // Bezpieczne czyszczenie klas
    for (var i = 0; i < tabs.length; i++) {
        tabs[i].classList.remove('active');
    }
    for (var j = 0; j < panels.length; j++) {
        panels[j].classList.remove('active');
    }
    
    // Aktywacja wybranej zakładki bez animacji
    document.querySelector('.rk-exp-tab-btn[data-tab="' + tabName + '"]').classList.add('active');
    document.getElementById('panel-' + tabName).classList.add('active');
}
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-text: #475569;
}

.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 15px 35px -10px rgba(2, 132, 199, 0.08);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-faq-top {
    padding: 35px 45px 25px;
    background: linear-gradient(to right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-faq-border);
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-icon-pulse {
    width: 60px;
    height: 60px;
    background: var(--rk-faq-light-blue);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
}

.rk-faq-top-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0 0 5px 0;
    line-height: 1.2;
}

.rk-faq-top-content p {
    font-size: 15px;
    color: var(--rk-faq-text);
    margin: 0;
}

/* Interaktywny Akordeon */
.rk-faq-list {
    padding: 30px 45px 45px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.rk-faq-item:hover {
    border-color: #bae6fd;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.05);
}

.rk-faq-header {
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: transparent;
    user-select: none;
}

.rk-faq-header h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

.rk-faq-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    transition: transform 0.4s ease, background 0.3s;
    flex-shrink: 0;
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.rk-faq-item.active .rk-faq-header h3 {
    color: var(--rk-faq-blue);
}

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

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

.rk-faq-content-inner {
    padding: 0 25px 25px 25px;
    border-top: 1px solid transparent;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

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

.rk-faq-item.active .rk-faq-content-inner {
    border-top-color: #f1f5f9;
    padding-top: 20px;
}

/* Linki w treści FAQ */
.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-faq-content-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
    color: #0369a1;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-faq-container { margin: 20px 10px; border-radius: 16px; }
    .rk-faq-top { padding: 25px 20px; flex-direction: column; text-align: center; }
    .rk-faq-list { padding: 20px; gap: 12px; }
    .rk-faq-header { padding: 18px 20px; }
    .rk-faq-header h3 { font-size: 15px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o ogrzewanie podłogowe przy remoncie",
    "description": "Baza wiedzy inżynierskiej: odpowiedzi na kluczowe pytania inwestorów dotyczące nośności stropów, czasu wygrzewania i integracji pomp ciepła w modernizowanych budynkach.",
    "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-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę położyć ogrzewanie podłogowe bezpośrednio na stare płytki lub parkiet?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, układanie systemu grzewczego na starych okładzinach bez weryfikacji izolacji termicznej podłoża spowoduje drastyczne straty ciepła w kierunku stropu lub gruntu. Stare warstwy należy skuć do płyty konstrukcyjnej, aby zapewnić miejsce na minimum 5-10 cm nowego styropianu EPS 100."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła poradzi sobie w starym domu, jeśli zamontuję podłogówkę?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, pompa ciepła osiągnie wysoką efektywność (COP powyżej 3,5), ponieważ ogrzewanie podłogowe obniża wymaganą temperaturę zasilania wody do 35°C. Warunkiem koniecznym jest jednak wcześniejsze wykonanie docieplenia ścian i wymiany stolarki okiennej, by ograniczyć ogólne zapotrzebowanie budynku na moc."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka wylewka jest lepsza przy remoncie: cementowa czy anhydrytowa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wylewka anhydrytowa jest zdecydowanie lepsza przy remontach ze względu na mniejszą wagę (może mieć grubość tylko 35 mm nad rurą) oraz dwukrotnie lepsze przewodnictwo cieplne. Pozwala to na mniejsze obciążenie stropu i szybszy czas reakcji termicznej systemu na zmianę parametrów automatyki."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy strop wytrzyma ciężar tradycyjnej wylewki z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nośność stropu musi ocenić konstruktor budowlany na podstawie odkrywki technicznej struktury stropu. Jeśli dopuszczalne obciążenie jest mniejsze niż 150 kg/m², należy bezwzględnie zrezygnować z wylewki cementowej na rzecz lekkiego systemu suchego o wadze do 30 kg/m²."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu trwa wygrzewanie podłogówki w remonconym budynku przed położeniem paneli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla tradycyjnego jastrychu cementowego proces ten trwa minimum 28 dni od wylania (naturalne wiązanie) plus kolejne 21 dni procedury stopniowego podnoszenia temperatury. W przypadku zastosowania systemów suchych, montaż okładziny podłogowej można rozpocząć natychmiast po ułożeniu płyt jastrychowych, pomijając kilkutygodniowy proces technologiczny."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-faq",
    "name": "Parametry graniczne ogrzewania podłogowego w starym budownictwie",
    "description": "Zbiór danych technicznych definiujących nośność stropów, grubości izolacji i cykle czasowe wygrzewania wylewek renowacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy pod ogrzewanie podłogowe nadają się panele czy tylko płytki",
      "czy pompa ciepła ogrzeje dom z podłogówką",
      "wylewka na ogrzewanie podłogowe kompletny przewodnik",
      "czy ogrzewanie podłogowe nadaje się do drewnianego stropu",
      "ile czasu nagrzewa się podłogówka"
    ],
    "measurementTechnique": "Ekstrakcja parametrów fizycznych (grubość izolacji w centymetrach, temperatura w stopniach Celsjusza, nośność w kg/m2, czas wiązania w dniach) bezpośrednio z inżynierskiej bazy danych HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna grubość styropianu EPS 100 przy remoncie na starym podłożu to 5-10 cm.",
        "Maksymalna optymalna temperatura zasilania dla pompy ciepła to 35 stopni Celsjusza.",
        "Graniczne obciążenie bezpieczne dla wylewki tradycyjnej wynosi min. 150 kg na m2.",
        "Czas procedury wygrzewania tradycyjnego jastrychu to 28 dni wiązania i 21 dni podnoszenia temperatury."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy Renowacyjnej (Akordeon FAQ)",
    "description": "Narzędzie interfejsu użytkownika pozwalające na szybkie wyszukiwanie i błyskawiczne pozyskiwanie technicznych odpowiedzi dotyczących modernizacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-module">
    <div class="rk-faq-top">
        <div class="rk-faq-icon-pulse">
            <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-top-content">
            <h2>FAQ – Najczęściej zadawane pytania</h2>
            <p>Rozwiewamy techniczne wątpliwości przed wylaniem posadzki w modernizowanym domu.</p>
        </div>
    </div>

    <div class="rk-faq-list">
        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <h3>Czy mogę położyć ogrzewanie podłogowe bezpośrednio na stare płytki lub parkiet?</h3>
                <div class="rk-faq-toggle-btn">
                    <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>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content-inner">
                    Nie, układanie systemu grzewczego na starych okładzinach bez weryfikacji izolacji termicznej podłoża spowoduje drastyczne straty ciepła w kierunku stropu lub gruntu. Stare warstwy należy skuć do płyty konstrukcyjnej, aby zapewnić miejsce na minimum 5-10 cm nowego styropianu EPS 100. Brak tej analizy weryfikuje brutalnie odpowiedź na pytanie, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">czy pod ogrzewanie podłogowe nadają się panele czy tylko płytki</a>, gdyż bez izolacji żaden materiał nie osiągnie swojej wydajności.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <h3>Czy pompa ciepła poradzi sobie w starym domu, jeśli zamontuję podłogówkę?</h3>
                <div class="rk-faq-toggle-btn">
                    <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>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content-inner">
                    Tak, pompa ciepła osiągnie wysoką efektywność (COP powyżej 3,5), ponieważ ogrzewanie podłogowe obniża wymaganą temperaturę zasilania wody do 35°C. Warunkiem koniecznym jest jednak wcześniejsze wykonanie docieplenia ścian i wymiany stolarki okiennej, by ograniczyć ogólne zapotrzebowanie budynku na moc. To ostatecznie rozwiązuje dylemat, <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">czy pompa ciepła ogrzeje dom z podłogówką</a> z ekonomicznym sukcesem.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <h3>Jaka wylewka jest lepsza przy remoncie: cementowa czy anhydrytowa?</h3>
                <div class="rk-faq-toggle-btn">
                    <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>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content-inner">
                    Wylewka anhydrytowa jest zdecydowanie lepsza przy remontach ze względu na mniejszą wagę (może mieć grubość tylko 35 mm nad rurą) oraz dwukrotnie lepsze przewodnictwo cieplne. Pozwala to na mniejsze obciążenie stropu i szybszy czas reakcji termicznej systemu na zmianę parametrów automatyki. Warto wiedzieć, że właściwie wylana <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> to fundament bezpieczeństwa całej podłogi.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <h3>Jak sprawdzić, czy strop wytrzyma ciężar tradycyjnej wylewki z podłogówką?</h3>
                <div class="rk-faq-toggle-btn">
                    <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>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content-inner">
                    Nośność stropu musi ocenić konstruktor budowlany na podstawie odkrywki technicznej struktury stropu. Jeśli dopuszczalne obciążenie jest mniejsze niż 150 kg/m², należy bezwzględnie zrezygnować z wylewki cementowej na rzecz lekkiego systemu suchego o wadze do 30 kg/m². Jest to szczególnie istotne przy sprawdzaniu, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a> belkowego z dawnych lat.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <h3>Ile czasu trwa wygrzewanie podłogówki w remontowanym budynku przed położeniem paneli?</h3>
                <div class="rk-faq-toggle-btn">
                    <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>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content-inner">
                    Dla tradycyjnego jastrychu cementowego proces ten trwa minimum 28 dni od wylania (naturalne wiązanie) plus kolejne 21 dni procedury stopniowego podnoszenia temperatury. W przypadku zastosowania systemów suchych, montaż okładziny podłogowej można rozpocząć natychmiast po ułożeniu płyt jastrychowych, co całkowicie zmienia kalkulację tego, <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a> podczas renowacji.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqItems = document.querySelectorAll('.rk-faq-item');
    
    faqItems.forEach(function(item) {
        var header = item.querySelector('.rk-faq-header');
        
        header.addEventListener('click', function() {
            var isCurrentlyActive = item.classList.contains('active');
            
            // Zwijamy wszystkie elementy
            faqItems.forEach(function(el) {
                el.classList.remove('active');
            });
            
            // Bezpieczny warunek bez operatora ampersand
            if (isCurrentlyActive === false) {
                item.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Nagłówek i Tagi */
.rk-roi-header {
    padding: 40px 50px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-roi-border);
}

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

.rk-roi-intro {
    font-size: 16px;
    color: #475569;
    line-height: 1.7;
    margin-bottom: 25px;
}

.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    display: inline-block;
    background: #e2e8f0;
    color: #334155;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    transition: all 0.2s;
}

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

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

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

/* Przełącznik Toggle */
.rk-toggle-box {
    display: flex;
    background: #f1f5f9;
    border-radius: 16px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 35px;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
    color: #64748b;
    cursor: pointer;
    border-radius: 12px;
    border: none;
    background: transparent;
    transition: all 0.3s ease;
    z-index: 2;
}

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

.rk-toggle-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.slider-red { background: var(--rk-roi-red); transform: translateX(0); box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3); }
.slider-green { background: var(--rk-roi-green); transform: translateX(100%); box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); }

/* Zawartość dynamiczna */
.rk-roi-content-box {
    display: none;
    grid-template-columns: 120px 1fr;
    gap: 30px;
    align-items: center;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-roi-border);
    animation: fadeIn 0.4s ease-out forwards;
}

.rk-roi-content-box.active-panel {
    display: grid;
}

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

.rk-panel-red { background: #fef2f2; border-color: #fca5a5; }
.rk-panel-green { background: #f0fdf4; border-color: #86efac; }

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

.rk-roi-text-content h4 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 12px 0;
}
.rk-panel-red .rk-roi-text-content h4 { color: #b91c1c; }
.rk-panel-green .rk-roi-text-content h4 { color: #15803d; }

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

.rk-roi-text-content ul {
    margin: 0;
    padding-left: 20px;
    color: #334155;
    font-size: 14px;
}
.rk-roi-text-content ul li { margin-bottom: 8px; }
.rk-roi-text-content a { font-weight: 700; text-decoration: none; border-bottom: 1px solid currentColor; }

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

.rk-roi-cta h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-roi-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-solid:hover {
    background: #0ea5e9;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(2, 132, 199, 0.4);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-roi-header, .rk-roi-interactive, .rk-roi-cta { padding: 30px 20px; }
    .rk-roi-header h2 { font-size: 24px; }
    .rk-toggle-box { flex-direction: column; padding: 10px; gap: 10px; }
    .rk-toggle-slider { display: none; /* Wyłączamy suwak na mobile dla układu pionowego */ }
    
    .rk-toggle-btn {
        background: #e2e8f0;
        color: #475569;
        border: 2px solid transparent;
    }
    .rk-toggle-btn.active-red {
        background: var(--rk-roi-red);
        color: #ffffff;
        box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
    }
    .rk-toggle-btn.active-green {
        background: var(--rk-roi-green);
        color: #ffffff;
        box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
    }
    
    .rk-roi-content-box { grid-template-columns: 1fr; text-align: center; }
    .rk-roi-text-content ul { padding-left: 0; list-style-position: inside; }
    .rk-btn-solid { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Podsumowanie czy warto inwestować w podłogówkę podczas renowacji?",
    "description": "Ogrzewanie podłogowe w remontowanym budynku to gwarancja wysokiego zwrotu z inwestycji (ROI). Poznaj symulację efektywności OZC vs montaż bez projektu.",
    "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-07-01",
    "dateModified": "2026-07-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset",
    "name": "Zestawienie efektywności modernizacji: Projekt OZC vs Montaż amatorski",
    "description": "Porównanie techniczno-finansowe wdrożenia ogrzewania podłogowego w starym budynku na podstawie analizy parametrów hydraulicznych i izolacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "ogrzewanie podłogowe przy pompie ciepła",
      "izolacja pod podłogówkę na gruncie",
      "projekt instalacji ogrzewania podłogowego",
      "rozstaw rur ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "modernizacja instalacji grzewczej",
      "obliczanie strat ciepła w starym domu"
    ],
    "measurementTechnique": "Kalkulacja oparta o parametry fizyczne, normę PN-EN 12831 oraz zestawienie kosztów inwestycyjnych do kosztów eksploatacyjnych po modernizacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż intuicyjny: Ryzyko ucieczki ciepła do gruntu, wysokie koszty eksploatacyjne, brak regulacji hydraulicznej.",
        "Montaż oparty o projekt OZC: Precyzyjny dobór pętli, niska temperatura zasilania, wysoki wskaźnik COP dla pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp",
    "name": "Symulator Zwrotu z Inwestycji w Remontowanym Domu",
    "description": "Interaktywny symulator decyzyjny porównujący skutki braku projektu hydraulicznego z profesjonalnym wdrożeniem termomodernizacyjnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="roi-simulator">
    <div class="rk-roi-header">
        <h2>Podsumowanie: Czy warto inwestować w podłogówkę podczas renowacji?</h2>
        <div class="rk-roi-intro">
            Ogrzewanie podłogowe w remontowanym budynku to inwestycja o bardzo wysokiej stopie zwrotu, pod warunkiem, że nie traktuje się jej wybiórczo. Instalacja ta jest kluczowym elementem modernizacji energetycznej: pozwala na efektywne wdrożenie <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:var(--rk-roi-blue); font-weight:700;">pompy ciepła</a>, eliminuje nieestetyczne grzejniki i zapewnia idealny pionowy rozkład temperatury w pomieszczeniach (cieplej przy stopach, chłodniej przy głowie).
        </div>
        
        <div class="rk-tags-wrapper">
            <span class="rk-mat-tag"># zwrot z inwestycji w ogrzewanie podłogowe</span>
            <span class="rk-mat-tag"># ogrzewanie podłogowe przy pompie ciepła</span>
            <span class="rk-mat-tag"># izolacja pod podłogówkę na gruncie</span>
            <span class="rk-mat-tag"># projekt instalacji ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># rozstaw rur ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># modernizacja instalacji grzewczej</span>
            <span class="rk-mat-tag"># darmowy projekt ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># projektowe obciążenie cieplne ozc</span>
        </div>
    </div>

    <div class="rk-roi-interactive">
        <h3>Symulator Decyzji Inwestora</h3>
        
        <div class="rk-toggle-box" id="rkToggleBox">
            <div class="rk-toggle-slider slider-red" id="rkSlider"></div>
            <button class="rk-toggle-btn active-red" data-target="panel-amateur" id="btn-amateur">Montaż "Na Oko"</button>
            <button class="rk-toggle-btn" data-target="panel-pro" id="btn-pro">Projekt OZC + Precyzja</button>
        </div>

        <div class="rk-roi-content-box rk-panel-red active-panel" id="panel-amateur">
            <div class="rk-svg-wrapper">
                <svg viewBox="0 0 24 24" fill="none" stroke="#dc2626" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <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"/>
                </svg>
            </div>
            <div class="rk-roi-text-content">
                <h4>Pułapka kosztów ukrytych</h4>
                <p>Ominięcie profesjonalnego przygotowania w starym budynku to przepis na straty. Ucieczka ciepła w niezabezpieczony grunt lub strop niszczy budżet co sezon grzewczy.</p>
                <ul>
                    <li>Brak odpowiedniej <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" style="color:#b91c1c;">grubości styropianu</a> powoduje grzanie fundamentów.</li>
                    <li>Przepływy ustalane "na czuja" blokują hydraulikę.</li>
                    <li>Pompa ciepła działa z niskim COP (taktuje).</li>
                </ul>
            </div>
        </div>

        <div class="rk-roi-content-box rk-panel-green" id="panel-pro">
            <div class="rk-svg-wrapper">
                <svg viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>
                    <path d="M12 3v2m0 14v2M3 12h2m14 0h2"/>
                </svg>
            </div>
            <div class="rk-roi-text-content">
                <h4>Pełna optymalizacja eksploatacyjna</h4>
                <p>Fundamentem sukcesu jest profesjonalne przeliczenie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:#15803d;">strat ciepła (OZC)</a> oraz dokładny projekt. System staje się wysoce wydajnym buforem energii.</p>
                <ul>
                    <li>Precyzyjnie dobrany <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:#15803d;">rozstaw rur</a> zapewnia zrównoważone ciepło.</li>
                    <li>Idealne zgranie przepływów na rotametrach.</li>
                    <li>Ograniczenie temperatury zasilania maksymalizuje efektywność pompy.</li>
                </ul>
            </div>
        </div>
    </div>

    <div class="rk-roi-cta">
        <h3>Nie zgaduj. Projektuj z ekspertami.</h3>
        <p>Aby uniknąć pułapek związanych z nośnością stropów czy ucieczką ciepła, kluczowe jest odejście od montażu "na oko". Zbuduj bezpieczny i wysoce oszczędny system, bazując na sprawdzonych wyliczeniach i naszej inżynierskiej wiedzy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            SPRAWDŹ BAZĘ WIEDZY I PROJEKTY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnAmateur = document.getElementById('btn-amateur');
    var btnPro = document.getElementById('btn-pro');
    var panelAmateur = document.getElementById('panel-amateur');
    var panelPro = document.getElementById('panel-pro');
    var slider = document.getElementById('rkSlider');

    // Funkcja resetująca widok
    function clearStates() {
        btnAmateur.classList.remove('active-red');
        btnPro.classList.remove('active-green');
        panelAmateur.classList.remove('active-panel');
        panelPro.classList.remove('active-panel');
        slider.classList.remove('slider-red');
        slider.classList.remove('slider-green');
    }

    // Obsługa kliknięcia "Montaż Na Oko"
    btnAmateur.addEventListener('click', function() {
        clearStates();
        btnAmateur.classList.add('active-red');
        panelAmateur.classList.add('active-panel');
        slider.classList.add('slider-red');
    });

    // Obsługa kliknięcia "Projekt OZC"
    btnPro.addEventListener('click', function() {
        clearStates();
        btnPro.classList.add('active-green');
        panelPro.classList.add('active-panel');
        slider.classList.add('slider-green');
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-light: #f0f9ff;
    --rk-dl-gray: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #475569;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 16px;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

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

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

.rk-dl-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

/* Sekcja Główna */
.rk-dl-content {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 40px;
    padding: 40px 45px;
    background: #ffffff;
}

/* Miniatura */
.rk-dl-thumbnail-box {
    width: 100%;
    position: relative;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    background: var(--rk-dl-gray);
    /* Brak animacji - natychmiastowe zachowanie */
}

.rk-dl-thumbnail-box:hover {
    border-color: var(--rk-dl-blue);
    box-shadow: 0 8px 20px rgba(2, 132, 199, 0.2);
}

.rk-dl-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    object-position: top;
    max-height: 350px;
}

.rk-dl-zoom-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.7);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    opacity: 0;
    /* Brak animacji */
}

.rk-dl-thumbnail-box:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-overlay svg {
    margin-bottom: 10px;
}

.rk-dl-zoom-text {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Informacje i Akcje */
.rk-dl-actions-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-dl-features li {
    font-size: 15px;
    color: var(--rk-dl-text);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.rk-dl-buttons {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn-action {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    /* Brak animacji */
}

.rk-btn-pdf {
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: 2px solid var(--rk-dl-dark);
}

.rk-btn-pdf:hover {
    background: #1e293b;
}

.rk-btn-img {
    background: var(--rk-dl-light);
    color: var(--rk-dl-blue);
    border: 2px solid var(--rk-dl-blue);
}

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

/* Stopka / Copyright */
.rk-dl-copyright {
    background: var(--rk-dl-gray);
    padding: 20px 45px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: #64748b;
    font-weight: 500;
}

/* Lightbox Modal */
.rk-lightbox-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
    /* Brak animacji */
}

.rk-lightbox-content {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    border: 2px solid #334155;
}

.rk-lightbox-close {
    position: absolute;
    top: 25px;
    right: 35px;
    color: #ffffff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    background: none;
    border: none;
}

.rk-lightbox-close:hover {
    color: var(--rk-dl-blue);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dl-content { grid-template-columns: 1fr; gap: 25px; padding: 30px 20px; }
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-copyright { padding: 20px; }
    .rk-dl-buttons { flex-direction: column; }
    .rk-dl-thumbnail-box { max-width: 300px; margin: 0 auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#article-pobierz",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/"
    },
    "headline": "Kompendium wiedzy: Infografika i parametry do pobrania",
    "description": "Zapisz na swoim urządzeniu kompleksowe zestawienie inżynierskie w formie infografiki i pliku PDF. Twarde dane potrzebne podczas modernizacji domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/11/Infografika-Ogrzewanie-podlogowe-w-remontowanym-budynku-–-czy-warto.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": "2025-12-29",
    "dateModified": "2026-07-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#dataset-pobierz",
    "name": "Infografika: Ogrzewanie podłogowe w remontowanym budynku",
    "description": "Zestawienie parametrów grubości styropianu, wylewki oraz kosztorysów systemów suchych i mokrych opracowane przez głównego projektanta instalacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego pdf",
      "wylewka na ogrzewanie podłogowe infografika",
      "schemat podłogówki i grzejników w starym domu",
      "kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym",
      "norma obliczeń ogrzewania podłogowego en 1264"
    ],
    "measurementTechnique": "Ekstrakcja danych normatywnych i inżynierskich do formy wizualnej, użytecznej dla inwestorów budowlanych weryfikujących poprawność montażu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku: WEBP (Grafika o wysokiej rozdzielczości)",
        "Format pliku: PDF (Dokument wektorowy gotowy do druku)",
        "Prawa autorskie: Udostępnianie materiału dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/#webapp-pobierz",
    "name": "Moduł Podglądu i Dystrybucji Dokumentacji Technicznej",
    "description": "Narzędzie interfejsowe pozwalające na bezstratny podgląd infografik inżynierskich oraz pobranie autorskich opracowań bezpośrednio na urządzenie inwestora.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub">
    <div class="rk-dl-header">
        <h2>Kompendium wiedzy: Infografika i materiały do pobrania</h2>
        <div class="rk-dl-intro">
            Podsumowanie najważniejszych parametrów, wymogów izolacyjnych i wariantów instalacji zebraliśmy w jednym, merytorycznym dokumencie. Zapisz tę "ściągę" na swoim telefonie – przyda się podczas weryfikacji prac i ustaleń z wykonawcami na placu budowy.
        </div>
    </div>

    <div class="rk-dl-content">
        <div class="rk-dl-thumbnail-box" onclick="openRkLightbox()">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/11/Infografika-Ogrzewanie-podlogowe-w-remontowanym-budynku-–-czy-warto.webp" alt="Infografika: Ogrzewanie podłogowe w remontowanym budynku" class="rk-dl-thumbnail-img" loading="lazy">
            <div class="rk-dl-zoom-overlay">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                <span class="rk-dl-zoom-text">Powiększ obraz</span>
            </div>
        </div>

        <div class="rk-dl-actions-box">
            <h3>Architektura instalacji w jednym miejscu</h3>
            <ul class="rk-dl-features">
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-dl-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Wymagane grubości styropianu pod wylewkę.
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-dl-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Porównanie systemu suchego i mokrego.
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-dl-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Parametry dla starych stropów drewnianych.
                </li>
            </ul>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/11/Infografika-Ogrzewanie-podlogowe-w-remontowanym-budynku-–-czy-warto.pdf" target="_blank" class="rk-btn-action rk-btn-pdf" rel="noopener">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz plik PDF
                </a>
                <button class="rk-btn-action rk-btn-img" onclick="openRkLightbox()">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="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>
                    Powiększ grafikę
                </button>
            </div>
        </div>
    </div>

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

<div id="rkLightbox" class="rk-lightbox-modal">
    <button class="rk-lightbox-close" onclick="closeRkLightbox()">×</button>
    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/11/Infografika-Ogrzewanie-podlogowe-w-remontowanym-budynku-–-czy-warto.webp" alt="Pełny podgląd infografiki" class="rk-lightbox-content">
</div>

<script>
// Bezpieczne funkcje do obsługi modalu bez warunków z ampersandami/pipe
function openRkLightbox() {
    var modal = document.getElementById('rkLightbox');
    modal.style.display = 'flex';
}

function closeRkLightbox() {
    var modal = document.getElementById('rkLightbox');
    modal.style.display = 'none';
}

// Zamykanie przy kliknięciu w tło
window.onclick = function(event) {
    var modal = document.getElementById('rkLightbox');
    var isModalClick = (event.target === modal);
    
    if (isModalClick === true) {
        modal.style.display = 'none';
    }
}
</script>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku – czy warto?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
