<?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 remonty - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/remonty/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/remonty/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 04 May 2026 12:25:42 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa remonty - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/remonty/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 11:52:06 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator rury]]></category>
		<category><![CDATA[materiały budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2407</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów rury będzie potrzebnych? Kalkulator do obliczania ilości metrów rury do ogrzewania podłogowego to narzędzie, które pomoże Ci precyzyjnie oszacować potrzebne materiały. Dzięki niemu unikniesz błędów, które mogą wpłynąć na efektywność systemu. W artykule znajdziesz praktyczne przykłady obliczeń, wskazówki dotyczące stref grzewczych oraz informacje, dlaczego warto zlecić projekt profesjonalistom. Sprawdź, jak zaoszczędzić czas i pieniądze!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Planujesz montaż <em><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></em> i zastanawiasz się, ile metrów rury będzie potrzebnych? Właśnie w tym pomoże Tobie <strong>kalkulator do obliczania ilości metrów rury do ogrzewania podłogowego</strong>. To narzędzie nie tylko oszczędza czas, ale też minimalizuje ryzyko błędów, które mogą wpłynąć na efektywność systemu. W tym artykule dowiesz się, jak działa taki kalkulator, na co zwrócić uwagę przy obliczeniach oraz dlaczego warto uwzględnić profesjonalny projekt instalacji.</p>



<h2 class="wp-block-heading">Jak działa kalkulator do ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph"><em>Kalkulator do obliczania długości rury</em> opiera się na prostych, ale kluczowych parametrach:</p>



<ul class="wp-block-list">
<li><strong>Rozstaw pętli grzewczej</strong> (np. 10 cm, 15 cm, 20 cm),</li>



<li><strong>Powierzchnia pomieszczenia</strong> w metrach kwadratowych,</li>



<li><strong>Odległość od rozdzielacza</strong>, czyli długość przyłączy doprowadzających wodę do systemu.</li>
</ul>



<p class="wp-block-paragraph">Na przykład, dla pomieszczenia o powierzchni <strong>30 m²</strong> i rozstawie rur <strong>15 cm</strong>, obliczenia wyglądają następująco:</p>



<p class="wp-block-paragraph">Długość rury = (Powierzchnia / Rozstaw) * 2 + (Odległość od rozdzielacza * 2)<br>Długość rury = (30 m² / 0,15 m) * 2 + (5 m * 2) = 400 m + 10 m = 410 m</p>



<h2 class="wp-block-heading">Kluczowe czynniki wpływające na długość rury.</h2>



<p class="wp-block-paragraph">Nie wystarczy znać wzór – trzeba też zrozumieć, co może wpłynąć na finalny wynik:</p>



<ul class="wp-block-list">
<li><strong>Kształt pomieszczenia</strong> – nieregularne bryły wymagają więcej rury ze względu na konieczność omijania przeszkód,</li>



<li><strong>Strefy grzewcze</strong> – miejsca, gdzie potrzebna jest wyższa temperatura (np. łazienki),</li>



<li><strong>Rodzaj rury</strong> – niektóre materiały mają ograniczenia dotyczące maksymalnej długości pętli (np. 80-100 m).</li>
</ul>



<h2 class="wp-block-heading">Przykłady obliczeń dla różnych rozstawów rur.</h2>



<p class="wp-block-paragraph">Poniżej znajdziesz trzy praktyczne scenariusze, które pokazują, jak zmienia się długość rury w zależności od rozstawu:</p>



<h3 class="wp-block-heading">Przykład 1: Rozstaw 10 cm (mieszkanie 50 m²)</h3>



<ul class="wp-block-list">
<li>Powierzchnia: 50 m²</li>



<li>Rozstaw: 10 cm (0,1 m)</li>



<li>Odległość od rozdzielacza: 8 m</li>
</ul>



<p class="wp-block-paragraph">Długość rury = (50 / 0,1) * 2 + (8 * 2) = 1000 m + 16 m = 1016 m</p>



<p class="wp-block-paragraph"><em>Uwaga!</em> Tak duża długość wymaga podziału na co najmniej <strong>13 pętli</strong> (1016 m / 80 m = 12,7 → zaokrąglenie w górę).</p>



<h3 class="wp-block-heading">Przykład 2: Rozstaw 20 cm (dom 120 m²)</h3>



<ul class="wp-block-list">
<li>Powierzchnia: 120 m²</li>



<li>Rozstaw: 20 cm (0,2 m)</li>



<li>Odległość od rozdzielacza: 12 m</li>
</ul>



<p class="wp-block-paragraph">Długość rury = (120 / 0,2) * 2 + (12 * 2) = 1200 m + 24 m = 1224 m</p>



<p class="wp-block-paragraph">W tym przypadku zaleca się podział na <strong>16 pętli</strong> (1224 m / 80 m = 15,3 → zaokrąglenie w górę).</p>



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

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

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

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

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

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

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

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

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

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

.type-btn span {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 400;
}

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

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

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

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

.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(--accent); 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; }

.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; color: #fff;}

.material-grid {
    display: grid; grid-template-columns: 1fr 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: #fff; }

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

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

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

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

@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%; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator ilości rur do ogrzewania podłogowego</h2>
    <p>Sprawdź, ile metrów bieżących rury potrzebujesz do swojej instalacji. Narzędzie stworzone przez ekspertów <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz rozstaw pętli, podaj powierzchnię i średnią odległość od rozdzielacza, a nasz kalkulator automatycznie dobierze ilość rury oraz zasugeruje bezpieczny podział na pętle.</p>
</div>

<div class="pipe-calc" id="pipe-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Rozstaw rur (pętli)</span>
            <div class="type-selector">
                <div class="type-btn active" data-rozstaw="10" data-mb="10">10 cm<span>10 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="15" data-mb="7">15 cm<span>7 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="20" data-mb="5">20 cm<span>5 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="25" data-mb="4">25 cm<span>4 mb / m²</span></div>
            </div>

            <span class="section-title">2. Parametry instalacji</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia (domu/pomieszczenia)</label><span class="val-badge"><span id="v-area">100</span> m²</span></div>
                <input type="range" id="area" min="1" max="500" value="100">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Średnia odległość od rozdzielacza</label><span class="val-badge"><span id="v-dist">8</span> m</span></div>
                <input type="range" id="dist" min="0" max="30" step="1" value="8">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Długość od rozdzielacza do strefy grzewczej (kalkulator sam doliczy zasilanie i powrót dla każdej pętli).</div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Potrzebna ilość rury (łącznie)</span>
                <span class="score-num" id="resTotal">&#8212;</span>
                <span class="score-label">metrów bieżących (mb)</span>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Wybrany rozstaw:</span><strong id="resSpacing">10 cm</strong></div>
                <div class="tech-item"><span>Rura na samą powierzchnię:</span><strong id="resAreaOnly">&#8212;</strong></div>
                <div class="tech-item"><span>Rura na przyłącza (dla wszystkich pętli):</span><strong id="resConnections">&#8212;</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card" style="background: rgba(37, 99, 235, 0.15); border: 1px solid rgba(37, 99, 235, 0.3);">
                        <span style="color: #bfdbfe;">Sugerowana ilość pętli:</span><strong id="resLoops" style="color: #60a5fa;">&#8212;</strong>
                    </div>
                    <div class="mini-card">
                        <span>Średnia dł. jednej pętli:</span><strong id="resLoopLen">&#8212;</strong>
                    </div>
                </div>
            </div>
            
            <p style="font-size: 10px; color: #64748b; text-align: center; margin-top: 20px; line-height: 1.5;">
                Uwaga: Kalkulator ma charakter poglądowy i nie uwzględnia stref grzanych przyłączami biegnącymi przez pomieszczenia.
            </p>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Potrzebujesz dokładnych wyliczeń?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Zbyt długie pętle to zimna podłoga i problem z pompą obiegową. Wykonamy dla Ciebie darmową wycenę lub profesjonalny projekt, który wyeliminuje błędy.</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 OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
(function() {
    var appContainer = document.getElementById('pipe-calc-app');
    if (!appContainer) return;

    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        // Zabezpieczony komunikat używający template literals (backtick)
        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>
                <h3 style="margin-top:0; font-size: 24px; color: #dc2626;">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; 
    }

    var currentRozstaw = 10;
    var currentMbPerM2 = 10;
    var MAX_LOOP_LENGTH = 80;

    function updateCalc() {
        var areaEl = document.getElementById('area');
        var distEl = document.getElementById('dist');
        if(!areaEl || !distEl) return;

        var area = parseFloat(areaEl.value);
        var dist = parseFloat(distEl.value);
        
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-dist').innerText = dist;

        var areaPipe = area * currentMbPerM2;
        var maxUsableInLoop = MAX_LOOP_LENGTH - (dist * 2);
        if (maxUsableInLoop < 10) { maxUsableInLoop = 10; }

        var loops = Math.ceil(areaPipe / maxUsableInLoop);
        var connectionsPipe = loops * (dist * 2);
        var totalLength = areaPipe + connectionsPipe;
        var loopLen = totalLength / loops;

        document.getElementById('resTotal').innerText = totalLength.toFixed(0);
        document.getElementById('resSpacing').innerText = currentRozstaw + ' cm';
        document.getElementById('resAreaOnly').innerText = areaPipe.toFixed(0) + ' mb';
        document.getElementById('resConnections').innerText = connectionsPipe.toFixed(0) + ' mb';
        
        document.getElementById('resLoops').innerText = loops + (loops === 1 ? ' szt.' : ' szt.');
        document.getElementById('resLoopLen').innerText = '~' + loopLen.toFixed(1) + ' mb';
    }

    var typeBtns = document.querySelectorAll('#pipe-calc-app .type-btn');
    typeBtns.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            typeBtns.forEach(function(b) { b.classList.remove('active'); });
            var currentBtn = e.currentTarget;
            currentBtn.classList.add('active');
            
            currentRozstaw = parseInt(currentBtn.getAttribute('data-rozstaw'));
            currentMbPerM2 = parseFloat(currentBtn.getAttribute('data-mb'));
            updateCalc();
        });
    });

    var areaInput = document.getElementById('area');
    var distInput = document.getElementById('dist');
    
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(distInput) distInput.addEventListener('input', updateCalc);

    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var area = document.getElementById('v-area').innerText;
            var dist = document.getElementById('v-dist').innerText;
            var total = document.getElementById('resTotal').innerText;
            var loops = document.getElementById('resLoops').innerText;
            var loopLen = document.getElementById('resLoopLen').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Zapotrzebowanie na rurę PEX');
            
            var bodyText = 'Dzień dobry,\n\nZrobiłem wstępne kalkulacje ilości rury z Państwa narzędzia:\n\n' +
                           '• Rozstaw pętli: ' + currentRozstaw + ' cm\n' +
                           '• Powierzchnia: ' + area + ' m²\n' +
                           '• Średnia odległość od rozdzielacza: ' + dist + ' m\n' +
                           '• POTRZEBNA RURA: ' + total + ' mb\n' +
                           '• Sugerowany podział: ' + loops + ' pętli po średnio ' + loopLen + '\n\n' +
                           'Proszę o kontakt w sprawie projektu / wyceny materiałów.';
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(bodyText);
        });
    }

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



<p class="wp-block-paragraph">Zobacz pozostałe nasze kalkulatory <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/">tutaj</a>.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – dlaczego warto go zlecić profesjonalistom?</h2>



<p class="wp-block-paragraph">Nawet najlepszy <strong>kalkulator do obliczania metrów rury</strong> nie zastąpi kompleksowego projektu. Dlaczego? Oto trzy powody:</p>



<ol class="wp-block-list">
<li><strong>Optymalizacja stref grzewczych</strong> – profesjonaliści dobiorą rozstaw rur tak, aby w łazience było cieplej niż w przedpokoju,</li>



<li><strong>Unikanie mostków termicznych</strong> – błędy w rozmieszczeniu rur mogą prowadzić do strat ciepła,</li>



<li><strong>Dobór materiałów</strong> – doświadczony projektant uwzględni rodzaj podłoża i izolacji.</li>
</ol>



<p class="wp-block-paragraph">Na stronie naszej stronie internetowej znajdziesz <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/">darmowe narzędzia do wstępnych obliczeń</a> oraz możliwość zlecenia szczegółowego <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">projektu</a>.</p>



<h3 class="wp-block-heading">Jak uniknąć typowych błędów przy obliczeniach?</h3>



<p class="wp-block-paragraph">Oto trzy pułapki, na które warto uważać:</p>



<ul class="wp-block-list">
<li><strong>Zapominanie o przyłączach</strong> – dodaj minimum 2 m rury na każde połączenie z rozdzielaczem,</li>



<li><strong>Ignorowanie strat ciśnienia</strong> – zbyt długa pętla (&gt;80 m) może wymagać mocniejszej pompy,</li>



<li><strong>Brak zapasu materiału</strong> – zawsze dodaj 5-10% do wyniku kalkulatora na okręcenie przeszkód.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1741950968299"><strong class="schema-faq-question"><strong>Jak działa kalkulator do obliczania długości rury do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Kalkulator uwzględnia trzy główne parametry: rozstaw pętli, powierzchnię pomieszczenia oraz odległość od rozdzielacza. Na podstawie tych danych oblicza całkowitą długość rury potrzebną do instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1741950978052"><strong class="schema-faq-question"><strong>Czy kalkulator uwzględnia strefy grzewcze?</strong></strong> <p class="schema-faq-answer">Nie, standardowy kalkulator nie uwzględnia stref grzewczych. Warto skonsultować się z projektantem, aby dostosować system do konkretnych potrzeb (np. cieplejsza łazienka).</p> </div> <div class="schema-faq-section" id="faq-question-1741950989206"><strong class="schema-faq-question"><strong>Jakie są typowe błędy przy obliczaniu długości rury?</strong></strong> <p class="schema-faq-answer">Najczęstsze błędy to pomijanie długości przyłączy, ignorowanie strat ciśnienia w długich pętlach oraz brak zapasu materiału na okręcanie przeszkód.</p> </div> <div class="schema-faq-section" id="faq-question-1741951000751"><strong class="schema-faq-question"><strong>Dlaczego warto zlecić projekt ogrzewania podłogowego profesjonalistom?</strong></strong> <p class="schema-faq-answer">Profesjonalny <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt ogrzewania podłogowego</a> gwarantuje optymalne rozmieszczenie rur, unikanie mostków termicznych oraz dobór odpowiednich materiałów, co przekłada się na efektywność i trwałość systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1741951012979"><strong class="schema-faq-question"><strong>Gdzie można znaleźć darmowy projekt ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Na stronie <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/" target="_blank" rel="noreferrer noopener">projekt-ogrzewania.pl</a> znajdziesz darmowe narzędzia do wstępnych obliczeń oraz możliwość zlecenia szczegółowego projektu.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Kalkulator do obliczania ilości metrów <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a></strong> to nie tylko oszczędność czasu. To narzędzie, które:</p>



<ul class="wp-block-list">
<li>Zapobiega <em>przekroczeniu budżetu</em> przez zakup zbyt dużej ilości materiału,</li>



<li>Minimalizuje ryzyko <em>awarii systemu</em> spowodowanej przeciążeniem pętli,</li>



<li>Umożliwia <em>szybką kalkulację</em> dla różnych wariantów rozstawu rur.</li>
</ul>



<p class="wp-block-paragraph">Pamiętaj jednak, że nawet najbardziej precyzyjne obliczenia nie zastąpią projektu wykonanego przez specjalistę. Jeśli chcesz mieć pewność, że Twoje ogrzewanie podłogowe będzie efektywne i trwałe, rozważ współpracę z profesjonalistami.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Ile wody potrzeba do wypełnienia instalacji podłogówki &#8211; Kalkulator.</title>
		<link>https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 08 Feb 2025 11:55:32 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[domowe systemy grzewcze]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator wody]]></category>
		<category><![CDATA[obliczenia budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędności energii]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[remonty]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2128</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile wody potrzeba do wypełnienia instalacji podłogówki? Właściwe oszacowanie objętości wody ma kluczowe znaczenie dla efektywności systemu i kosztów eksploatacji. W naszym artykule znajdziesz szczegółowe wyliczenia, praktyczne przykłady oraz kalkulator, który ułatwi Ci precyzyjne obliczenia. Dowiesz się, jak dobrać odpowiednią ilość wody, aby Twoja instalacja działała sprawnie i ekonomicznie. Sprawdź już teraz!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">Ile wody potrzeba do wypełnienia instalacji podłogówki &#8211; Kalkulator.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --hvac-primary: #0f172a;
    --hvac-water: #0ea5e9;
    --hvac-water-dark: #0284c7;
    --hvac-water-light: #e0f2fe;
    --hvac-alert: #ef4444;
    --hvac-bg: #f8fafc;
    --hvac-border: #cbd5e1;
}

.water-module-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(14, 165, 233, 0.1);
    border: 1px solid var(--hvac-border);
    overflow: hidden;
    color: var(--hvac-primary);
}

.water-module-header {
    background: linear-gradient(135deg, var(--hvac-primary), #1e293b);
    padding: 35px 45px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.water-module-header::after {
    content: '';
    position: absolute;
    bottom: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.2) 0%, transparent 70%);
    border-radius: 50%;
}

.water-module-header h2 {
    font-size: 26px;
    font-weight: 800;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.water-module-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    max-width: 800px;
}

.water-module-content {
    padding: 40px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--hvac-bg));
}

.water-text-block {
    margin-bottom: 20px;
}

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

.water-text-block h3 {
    font-size: 20px;
    color: var(--hvac-primary);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.water-text-block a {
    color: var(--hvac-water-dark);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed var(--hvac-water-dark);
    transition: all 0.2s;
}

.water-text-block a:hover {
    color: var(--hvac-water);
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .water-module-header, .water-module-content {
        padding: 25px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Ile wody potrzeba do wypełnienia instalacji podłogówki? Konsekwencje błędów i obliczanie zładu",
    "description": "Precyzyjne wyliczenie zładu wody w ogrzewaniu podłogowym. Wpływ ilości wody na naczynie wzbiorcze, pompę ciepła i dawkę inhibitora korozji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T10:50:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset",
    "name": "Pojemność wodna pętli grzewczych dla rur PEX i PERT",
    "description": "Zestawienie parametrów objętościowych (zładu wody) na metr bieżący dla średnic rur ogrzewania płaszczyznowego, wykorzystywanych do doboru armatury.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile wody w podłogówce",
      "zład wody pompa ciepła",
      "objętość instalacji ogrzewania podłogowego",
      "kalkulator zładu",
      "pojemność rury pex 16"
    ],
    "measurementTechnique": "Algorytm oparty na obliczaniu pola przekroju poprzecznego dla wewnętrznej średnicy rury (d_i) pomnożonego przez szacunkową długość pętli dla zadanego rozstawu.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Pojemność rury 16x2.0 mm",
        "value": "0.113 l/mb"
      },
      {
        "@type": "PropertyValue",
        "name": "Pojemność rury 20x2.0 mm",
        "value": "0.201 l/mb"
      }
    ]
  }
]
</script>

<div class="water-module-container" id="water-app-security-wrapper">
    <div class="water-module-header">
        <h2>Ile wody potrzeba do wypełnienia instalacji podłogówki? Konsekwencje błędu z kwietnia 2026</h2>
        <p>Ignorowanie zładu wody to prosta droga do niestabilnego ciśnienia i frustrujących awarii, które potrafią unieruchomić dom w najzimniejszym momencie roku.</p>
    </div>

    <div class="water-module-content">
        <div class="water-text-block">
            <p>W kwietniu 2026 roku, podczas ekspertyzy przy uruchamianiu systemu grzewczego w nowoczesnym budynku o powierzchni 180 m², natrafiłem na klasyczny błąd &#8222;wykonawstwa na oko&#8221;. Brak rzetelnej wiedzy o całkowitym zładzie układu doprowadził do krytycznego błędu w dozowaniu <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">drogich inhibitorów korozji</a>. Środek chemiczny został rozcieńczony ponad dwukrotnie poniżej wartości granicznych, narażając mosiężną armaturę na błyskawiczną korozję i powstawanie biofilmu w rotametrach.</p>
            
            <h3>Dlaczego precyzyjny zład wody to fundament układu?</h3>
            
            <p>Odpowiedź na pytanie, <strong>ile wody potrzeba do wypełnienia instalacji podłogówki</strong>, to nie jest luźna ciekawostka, lecz precyzyjna wartość wyrażona w litrach, która bezpośrednio definiuje architekturę systemu. Oprócz oczywistego kosztu zakupu płynu niezamarzającego lub zdemineralizowanej wody, zład determinuje:</p>
            
            <ul style="line-height: 1.8; margin-bottom: 20px; color: #334155;">
                <li><strong>Bezpieczeństwo źródła ciepła:</strong> Inwerterowa <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> wymaga określonego zładu minimalnego (często min. 10-15 litrów na kW mocy), aby przeprowadzić stabilny proces odszraniania (defrost) bez wpadania w awarię z powodu wychłodzenia układu.</li>
                <li><strong>Absorpcję rozszerzalności:</strong> Podgrzewana woda zwiększa swoją objętość. Prawidłowo wyliczony zład jest jedyną bazą do poprawnego doboru <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego przeponowego</a>. Zbyt małe naczynie to ciągłe skoki ciśnienia, zrzuty wody przez zawór bezpieczeństwa i ciągłe zapowietrzanie pętli.</li>
            </ul>
        </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('water-app-security-wrapper');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; border: 2px solid #ef4444; border-radius: 16px; color: #991b1b; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 250px; font-family: sans-serif;">
                    <span style="font-size: 40px; margin-bottom: 15px;">🚫</span>
                    <div style="font-size: 22px; font-weight: 800; margin-bottom: 10px; text-transform: uppercase;">Naruszenie praw autorskich</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.6;">Ta zawartość jest własnością intelektualną inż. Roberta Kucharskiego i serwisu <strong>Projekt-Ogrzewania.pl</strong>. Została opublikowana na nieautoryzowanej domenie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: 700;">Przejdź do oryginalnego źródła</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --po-primary: #0f172a;
    --po-blue: #0ea5e9;
    --po-blue-hover: #0284c7;
    --po-blue-light: #f0f9ff;
    --po-gray: #f8fafc;
    --po-border: #e2e8f0;
    --po-accent: #38bdf8;
}

.po-theory-module {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

/* Wprowadzenie z akcentem */
.po-theory-intro {
    background: #ffffff;
    border-left: 5px solid var(--po-blue);
    padding: 30px 40px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    margin-bottom: 40px;
}

.po-theory-intro h2 {
    font-size: 26px;
    font-weight: 800;
    color: var(--po-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.po-theory-intro p {
    font-size: 17px;
    line-height: 1.7;
    color: #475569;
    margin: 0;
}

/* Sekcja wpływu na osprzęt */
.po-impact-section h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--po-primary);
    margin-bottom: 25px;
    text-align: center;
}

.po-impact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

/* Interaktywne Karty Osprzętu */
.po-impact-card {
    background: #ffffff;
    border: 1px solid var(--po-border);
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    z-index: 1;
}

/* Efekt "podnoszenia" i fali przy najechaniu */
.po-impact-card::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0%;
    background: var(--po-blue-light);
    transition: height 0.3s ease;
    z-index: -1;
}

.po-impact-card:hover {
    transform: translateY(-8px);
    border-color: var(--po-blue-light);
    box-shadow: 0 20px 25px -5px rgba(14, 165, 233, 0.1);
}

.po-impact-card:hover::before {
    height: 100%;
}

.po-icon-wrapper {
    width: 70px;
    height: 70px;
    background: var(--po-gray);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: var(--po-blue);
    transition: transform 0.3s ease, background 0.3s ease;
}

.po-impact-card:hover .po-icon-wrapper {
    transform: scale(1.1);
    background: #ffffff;
    color: var(--po-blue-hover);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.po-impact-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--po-primary);
    margin: 0 0 12px 0;
    line-height: 1.4;
}

.po-impact-card p {
    font-size: 14px;
    line-height: 1.6;
    color: #64748b;
    margin: 0 0 15px 0;
    flex-grow: 1;
}

.po-card-link-text {
    font-size: 13px;
    font-weight: 700;
    color: var(--po-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.po-impact-card:hover .po-card-link-text {
    color: var(--po-blue-hover);
}

.po-card-link-text svg {
    transition: transform 0.2s;
}

.po-impact-card:hover .po-card-link-text svg {
    transform: translateX(4px);
}

/* Wskazówka przejścia do kalkulatora */
.po-tool-transition {
    margin-top: 40px;
    background: linear-gradient(to right, #f8fafc, #e0f2fe, #f8fafc);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    font-weight: 600;
    color: var(--po-primary);
    font-size: 15px;
    border: 1px dashed var(--po-border);
}

@media (max-width: 768px) {
    .po-impact-grid {
        grid-template-columns: 1fr;
    }
    .po-theory-intro {
        padding: 25px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#theory-module",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Obliczanie objętości wody: Od teorii do praktyki na budowie",
    "description": "Zależność między objętością wody w instalacji podłogowej a doborem bufora ciepła, pompy obiegowej i rozdzielacza. Zrozum zasady hydrauliki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T11:00:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#equipment-impact",
    "name": "Wpływ zładu wody na dobór osprzętu kotłowni",
    "description": "Kluczowe kryteria techniczne określające wpływ objętości cieczy na elementy dystrybucyjne systemu HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczanie zładu podłogówki",
      "wpływ ilości wody na osprzęt",
      "dobór bufora do pompy ciepła",
      "krzywa przepływu pompa obiegowa",
      "rotametry w rozdzielaczu podłogówki"
    ],
    "measurementTechnique": "Analiza projektowa oporów hydraulicznych i bezwładności cieplnej instalacji w powiązaniu z wydajnością źródeł ciepła.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Bufor Ciepła",
        "value": "Wymiarowanie bazujące na pojemności układu celem wyrównania cykli sprężarki."
      },
      {
        "@type": "PropertyValue",
        "name": "Pompa Obiegowa",
        "value": "Zależność masy wody od oporów miejscowych i wymaganej krzywej przepływu."
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#interactive-theory",
    "name": "Interaktywny panel edukacyjny: Hydraulika układu",
    "description": "Moduł webowy prezentujący w sposób wizualny krytyczne powiązania między objętością zładu a komponentami maszynowymi kotłowni.",
    "applicationCategory": "Edukacja HVAC",
    "operatingSystem": "All",
    "browserRequirements": "Wymaga przeglądarki z obsługą CSS Grid i interakcji hover",
    "softwareVersion": "1.0",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-theory-module" id="po-theory-security">
    <div class="po-theory-intro">
        <h2>Obliczanie objętości wody: Od teorii do praktyki na budowie</h2>
        <p>Kiedy planujemy wydajny system grzewczy, <strong>nie możemy opierać się wyłącznie na orientacyjnych wytycznych</strong>. Całkowity zład układu wpływa bezpośrednio na parametry hydrauliczne oraz dobór urządzeń zabezpieczających i dystrybuujących ciepło. Jeżeli układ jest zbyt &#8222;pojemny&#8221;, rodzi to konkretne wymogi sprzętowe, które musisz uwzględnić w budżecie.</p>
    </div>

    <div class="po-impact-section">
        <h3>Jak zład wpływa na osprzęt kotłowni?</h3>
        
        <div class="po-impact-grid">
            
            <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="po-impact-card">
                <div class="po-icon-wrapper">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M5 6v12a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V6"></path>
                        <path d="M5 6a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3"></path>
                        <path d="M5 6a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3"></path>
                        <path d="M12 9v9"></path>
                    </svg>
                </div>
                <h4>Pojemność Bufora</h4>
                <p>Przy dużym zładzie (np. rury 20 mm komercyjnie) wymagany jest większy bufor, by zrównoważyć masę wody i zabezpieczyć cykle pracy sprężarki pompy ciepła.</p>
                <div class="po-card-link-text">
                    Czytaj o buforze 
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
                </div>
            </a>

            <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="po-impact-card">
                <div class="po-icon-wrapper">
                    <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="9"></circle>
                        <path d="m12 8-4 4 4 4"></path>
                        <path d="M16 12H8"></path>
                    </svg>
                </div>
                <h4>Krzywa Przepływu</h4>
                <p>Większa masa wody stawia mniejsze opory miejscowe rur, ale wymaga innej krzywej przepływu. Ma to bezpośrednie przełożenie na moc i typ pompy obiegowej.</p>
                <div class="po-card-link-text">
                    Kalkulator pomp 
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
                </div>
            </a>

            <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="po-impact-card">
                <div class="po-icon-wrapper">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <rect x="4" y="6" width="16" height="4" rx="1"></rect>
                        <path d="M8 10v4"></path>
                        <path d="M16 10v4"></path>
                        <rect x="4" y="14" width="16" height="4" rx="1"></rect>
                    </svg>
                </div>
                <h4>Precyzja Dystrybucji</h4>
                <p>Cała woda zbiega się w jednym miejscu budynku. Właściwie wyskalowane rotametry to gwarancja, że zład popłynie do pętli z precyzyjnie zaprojektowaną prędkością.</p>
                <div class="po-card-link-text">
                    Dobór rozdzielacza 
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
                </div>
            </a>

        </div>
    </div>

    <div class="po-tool-transition">
        🧮 Aby ułatwić Ci wizualizację i oszacowanie tych parametrów dla poszczególnych średnic, przygotowałem poniższy symulator zładu.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ---- Zabezpieczenie przed kradzieżą treści ----
    const originHost = window.location.hostname;
    const authHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authHosts.includes(originHost)) {
        const protectionBox = document.getElementById('po-theory-security');
        if (protectionBox) {
            protectionBox.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #fff1f2; border: 2px dashed #e11d48; border-radius: 12px; color: #881337; font-family: sans-serif; margin-bottom: 30px;">
                    <div style="font-size: 24px; font-weight: 800; margin-bottom: 15px;">Uwaga: Naruszenie praw własności</div>
                    <p style="margin-bottom: 20px; font-size: 16px; line-height: 1.5;">Ten moduł edukacyjny jest autorstwa <strong>inż. Roberta Kucharskiego</strong> i należy do portalu Projekt-Ogrzewania.pl. Prosimy nie kopiować cudzej pracy inżynierskiej.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; background: #e11d48; color: white; padding: 12px 25px; text-decoration: none; border-radius: 8px; font-weight: 700; transition: 0.3s;">Czytaj oryginał artykułu</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --sim-primary: #0f172a;
    --sim-accent: #0ea5e9;
    --sim-accent-dark: #0284c7;
    --sim-accent-light: #e0f2fe;
    --sim-bg: #ffffff;
    --sim-panel-bg: #f8fafc;
    --sim-border: #e2e8f0;
    --sim-text: #475569;
    --sim-text-light: #94a3b8;
    --sim-alert-bg: #fef2f2;
    --sim-alert-text: #ef4444;
}

.kucharski-sim-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.sim-intro-text {
    margin-bottom: 30px;
}

.sim-intro-text h2 {
    font-size: 24px;
    font-weight: 800;
    color: var(--sim-primary);
    margin-bottom: 15px;
    letter-spacing: -0.5px;
}

.sim-intro-text p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--sim-text);
    margin-bottom: 15px;
}

.sim-intro-text a {
    color: var(--sim-accent-dark);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: 0.2s ease;
}

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

/* GŁÓWNY KONTENER APLIKACJI */
.sim-app-wrapper {
    background: var(--sim-bg);
    border-radius: 20px;
    box-shadow: 0 10px 40px -10px rgba(14, 165, 233, 0.08);
    border: 1px solid var(--sim-accent-light);
    padding: 40px 50px;
    position: relative;
}

.sim-app-title {
    text-align: center;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: 1.5px;
    color: var(--sim-primary);
    margin-bottom: 40px;
    text-transform: uppercase;
}

.sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

/* KONTROLKI - LEWA STRONA */
.sim-controls {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.sim-control-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.sim-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--sim-text);
}

.sim-label span {
    color: var(--sim-primary);
}

/* Custom Slider */
.sim-slider-wrapper {
    position: relative;
    padding: 10px 0;
}

input[type=range].sim-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].sim-slider:focus {
    outline: none;
}

input[type=range].sim-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #cbd5e1;
    border-radius: 4px;
}

input[type=range].sim-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--sim-accent);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -8px;
    box-shadow: 0 2px 6px rgba(14, 165, 233, 0.4);
    transition: transform 0.1s, background 0.2s;
}

input[type=range].sim-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    background: var(--sim-accent-dark);
}

/* Radio Toggles */
.sim-radio-group {
    display: flex;
    gap: 15px;
}

.sim-radio-group label {
    flex: 1;
    text-align: center;
    background: var(--sim-panel-bg);
    padding: 14px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 700;
    font-size: 15px;
    color: var(--sim-text);
    border: 2px solid transparent;
    transition: all 0.2s ease;
    margin: 0;
}

.sim-radio-group input[type="radio"] {
    display: none;
}

.sim-radio-group input[type="radio"]:checked + label {
    background: var(--sim-accent-light);
    border-color: var(--sim-accent);
    color: var(--sim-accent-dark);
}

.sim-disclaimer {
    font-size: 13px;
    color: var(--sim-text-light);
    line-height: 1.5;
    margin-top: 5px;
}

/* WYNIKI - PRAWA STRONA */
.sim-results-panel {
    background: #fafcff;
    border-radius: 20px;
    padding: 40px 30px;
    text-align: center;
    border: 1px dashed var(--sim-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* SVG Animacja */
.sim-svg-box {
    width: 130px;
    height: 130px;
    margin-bottom: 25px;
    position: relative;
}

.sim-result-number {
    font-size: 56px;
    font-weight: 900;
    color: var(--sim-primary);
    line-height: 1;
    margin-bottom: 8px;
    transition: transform 0.3s;
}

.sim-result-desc {
    font-size: 13px;
    font-weight: 800;
    color: var(--sim-text);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
}

.sim-alert-box {
    background: var(--sim-alert-bg);
    border: 1px solid #fecaca;
    padding: 12px 20px;
    border-radius: 10px;
    color: var(--sim-alert-text);
    font-weight: 700;
    font-size: 14px;
    width: 100%;
}

@media (max-width: 768px) {
    .sim-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .sim-app-wrapper {
        padding: 30px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Interaktywny kalkulator zładu wody w instalacji podłogowej",
    "description": "Narzędzie do precyzyjnego wyliczania objętości wody w układach ogrzewania płaszczyznowego. Symuluje zład dla rur PEX/PERT o średnicach 16mm i 20mm.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T11:07:50+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset",
    "name": "Pojemność wodna pętli grzewczych dla rur PEX i PERT",
    "description": "Dane przeliczeniowe litrażu wody na metr kwadratowy powierzchni w zależności od średnicy zastosowanej rury (16x2.0 oraz 20x2.0).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator zładu wody w podłogówce",
      "ile wody w 100m2 ogrzewania podłogowego",
      "pojemność rury pex 16 kalkulator",
      "ile litrów wody do pompy ciepła",
      "dozowanie inhibitora korozji ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Obliczenia oparte na algorytmie: (Powierzchnia * Średni rozstaw mb) * Pojemność mb rury + 10% naddatku na układ dystrybucyjny.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Przelicznik rury 16x2.0 mm",
        "value": "1.13 L na m2 podłogi (przy rozstawie 10cm)"
      },
      {
        "@type": "PropertyValue",
        "name": "Przelicznik rury 20x2.0 mm",
        "value": "1.346 L na m2 podłogi (przy rozstawie 15cm)"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#simulator",
    "name": "Symulator Zładu Instalacji Podłogowej",
    "description": "Interaktywny suwak pozwalający inwestorom i wykonawcom na błyskawiczne przeliczenie litrażu układu i wyznaczenie precyzyjnej dawki chemii kotłowej.",
    "applicationCategory": "Kalkulator Inżynieryjny HVAC",
    "operatingSystem": "Przeglądarka internetowa (HTML5/JS)",
    "browserRequirements": "Wymaga włączonej obsługi JavaScript do przeliczania zmiennych w czasie rzeczywistym.",
    "softwareVersion": "3.1.0",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="kucharski-sim-container" id="kucharski-auth-wrapper">
    
    <div class="sim-intro-text">
        <h2>Praktyczne obliczenia: Skalibruj swój zład</h2>
        <p>Znajomość parametru określającego <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">ile wody mieści się w rurze PEX/PERT</a> pozwala nam przejść od pojedynczej pętli do perspektywy całego budynku. Zbyt mały zład zagraża cyklom defrostu w pompach ciepła, z kolei zbyt duży wydłuża czas reakcji i rodzi konieczność zastosowania większych naczyń przeponowych.</p>
        <p>Przygotowałem dla Ciebie narzędzie, które natychmiastowo przelicza całkowitą objętość płynu. Uwzględnia ono średni rozstaw montażowy zależny od <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnicy rur w ogrzewaniu podłogowym</a> oraz 10-procentowy margines błędu na podejścia i rozdzielacze. Poda Ci ono również precyzyjną dawkę <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wody demineralizowanej z inhibitorem korozji</a>, aby Twoja armatura przetrwała dekady.</p>
    </div>

    <div class="sim-app-wrapper">
        <div class="sim-app-title">Symulator Zładu Instalacji Podłogowej</div>
        
        <div class="sim-grid">
            <div class="sim-controls">
                
                <div class="sim-control-group">
                    <div class="sim-label">Powierzchnia grzewcza: <span id="dynArea">70</span> m²</div>
                    <div class="sim-slider-wrapper">
                        <input type="range" class="sim-slider" id="sliderAreaVal" min="40" max="250" step="1" value="70">
                    </div>
                </div>

                <div class="sim-control-group">
                    <div class="sim-label">Średnica rury PEX/PERT:</div>
                    <div class="sim-radio-group">
                        <input type="radio" id="pipe16mm" name="pipeDiam" value="16" checked>
                        <label for="pipe16mm">16&#215;2.0 mm</label>
                        
                        <input type="radio" id="pipe20mm" name="pipeDiam" value="20">
                        <label for="pipe20mm">20&#215;2.0 mm</label>
                    </div>
                </div>

                <div class="sim-disclaimer">
                    *Założenia: Rozstaw pętli dla 16mm to śr. 10cm, dla 20mm to śr. 15cm. Obejmuje szacunkowy naddatek na dobiegi i rozdzielacz (10%).
                </div>
            </div>

            <div class="sim-results-panel">
                <div class="sim-svg-box">
                    <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                        <circle cx="50" cy="50" r="44" fill="none" stroke="#cbd5e1" stroke-width="8" />
                        
                        <clipPath id="waterMask">
                            <circle cx="50" cy="50" r="40" />
                        </clipPath>
                        
                        <g clip-path="url(#waterMask)">
                            <circle cx="50" cy="50" r="40" fill="#e0f2fe" />
                            
                            <path fill="#38bdf8" d="M-100,50 Q-75,35 -50,50 T0,50 T50,50 T100,50 T150,50 T200,50 V100 H-100 Z" opacity="0.6">
                                <animate attributeName="d" 
                                         values="M-100,45 Q-75,30 -50,45 T0,45 T50,45 T100,45 T150,45 T200,45 V100 H-100 Z;
                                                 M-100,45 Q-75,60 -50,45 T0,45 T50,45 T100,45 T150,45 T200,45 V100 H-100 Z;
                                                 M-100,45 Q-75,30 -50,45 T0,45 T50,45 T100,45 T150,45 T200,45 V100 H-100 Z" 
                                         dur="4s" repeatCount="indefinite"/>
                            </path>
                            <path fill="#0ea5e9" d="M-100,55 Q-75,45 -50,55 T0,55 T50,55 T100,55 T150,55 T200,55 V100 H-100 Z">
                                <animate attributeName="d" 
                                         values="M-100,52 Q-75,67 -50,52 T0,52 T50,52 T100,52 T150,52 T200,52 V100 H-100 Z;
                                                 M-100,52 Q-75,37 -50,52 T0,52 T50,52 T100,52 T150,52 T200,52 V100 H-100 Z;
                                                 M-100,52 Q-75,67 -50,52 T0,52 T50,52 T100,52 T150,52 T200,52 V100 H-100 Z" 
                                         dur="3.2s" repeatCount="indefinite"/>
                            </path>
                        </g>
                    </svg>
                </div>
                
                <div class="sim-result-number" id="dynVolume">87</div>
                <div class="sim-result-desc">Litrów całkowitego zładu</div>
                
                <div class="sim-alert-box" id="dynInhibitor">
                    Wymagany inhibitor (stęż. 0.5%): <br><b>0.43 L</b>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA ---
    const hostname = window.location.hostname;
    const whitelist = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!whitelist.includes(hostname)) {
        const wrap = document.getElementById('kucharski-auth-wrapper');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fff1f2; border: 2px dashed #e11d48; border-radius: 16px; color: #881337;">
                    <div style="font-size: 22px; font-weight: 800; margin-bottom: 15px; text-transform: uppercase;">Naruszenie praw własności</div>
                    <p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator to autorskie oprogramowanie inż. Roberta Kucharskiego. Został skopiowany bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="background: #e11d48; color: white; padding: 12px 24px; text-decoration: none; border-radius: 8px; font-weight: bold;">Zobacz wersję legalną</a>
                </div>
            `;
        }
        return;
    }

    // --- LOGIKA APLIKACJI ---
    const slider = document.getElementById('sliderAreaVal');
    const areaLabel = document.getElementById('dynArea');
    const pipe16 = document.getElementById('pipe16mm');
    const pipe20 = document.getElementById('pipe20mm');
    
    const resVolume = document.getElementById('dynVolume');
    const resInhibitor = document.getElementById('dynInhibitor');

    function executeSimulation() {
        let area = parseFloat(slider.value);
        areaLabel.textContent = area;

        let volTotal = 0;
        
        // Zgodnie z inżynierskim założeniem
        if (pipe16.checked) {
            // Rura 16mm: śr rozstaw 10cm = 10 mb/m2. Pojemność: 0.113 l/mb.
            let loopsVol = area * 10 * 0.113; // 70 * 1.13 = 79.1
            volTotal = loopsVol * 1.10;       // Naddatek 10% = 87.01
        } else {
            // Rura 20mm: śr rozstaw 15cm = ~6.7 mb/m2. Pojemność: 0.201 l/mb.
            let loopsVol = area * 6.7 * 0.201; 
            volTotal = loopsVol * 1.10;
        }

        // Zaokrąglamy do pełnych litrów zgodnie ze standardami projektowymi
        let finalLiters = Math.round(volTotal);
        
        // Obliczenie inhibitora w stężeniu 0.5% (bezbłędne zaokrąglenie w dół by dopasować do grafiki)
        let inhibitorReq = Math.floor(finalLiters * 0.005 * 100) / 100;
        
        // UI Updates with animation trigger
        resVolume.style.transform = 'scale(1.1)';
        setTimeout(() => {
            resVolume.textContent = finalLiters;
            resVolume.style.transform = 'scale(1)';
        }, 100);

        resInhibitor.innerHTML = `Wymagany inhibitor (stęż. 0.5%):<br><span style="font-size: 18px;">${inhibitorReq.toFixed(2)} L</span>`;
    }

    // Nasłuchiwacze zdarzeń
    slider.addEventListener('input', executeSimulation);
    pipe16.addEventListener('change', executeSimulation);
    pipe20.addEventListener('change', executeSimulation);

    // Initial Trigger
    executeSimulation();
});
</script>



<style>
:root {
    --pex-primary: #0f172a;
    --pex-accent: #0ea5e9;
    --pex-accent-dark: #0284c7;
    --pex-accent-light: #eff6ff;
    --pex-gray: #f8fafc;
    --pex-border: #e2e8f0;
    --pex-text: #475569;
}

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

.pex-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--pex-gray));
    border-bottom: 1px solid var(--pex-border);
    position: relative;
    overflow: hidden;
}

.pex-header::after {
    content: '';
    position: absolute;
    right: -50px;
    top: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.1) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

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

.pex-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--pex-text);
    margin-bottom: 0;
    max-width: 800px;
}

.pex-workspace {
    display: flex;
    min-height: 480px;
}

/* LEWY PANEL - ZAKŁADKI */
.pex-tabs {
    width: 40%;
    background: #ffffff;
    border-right: 1px solid var(--pex-border);
    display: flex;
    flex-direction: column;
    padding: 30px;
    gap: 15px;
}

.pex-tab-hint {
    font-size: 11px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
    margin-bottom: 5px;
}

.pex-btn {
    position: relative;
    width: 100%;
    padding: 20px;
    border-radius: 12px;
    border: 2px solid var(--pex-border);
    background: #ffffff;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    overflow: hidden;
}

.pex-btn::before {
    content: '';
    position: absolute;
    left: 0; top: 0; height: 100%; width: 6px;
    background: #cbd5e1;
    transition: all 0.3s;
}

.pex-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
}

.pex-btn.pex-active {
    border-color: var(--pex-accent);
    background: var(--pex-accent-light);
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.15);
}

.pex-btn.pex-active::before {
    background: var(--pex-accent);
    width: 8px;
}

.pex-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #64748b;
    transition: all 0.3s;
}

.pex-btn.pex-active .pex-icon {
    color: var(--pex-accent-dark);
    transform: scale(1.15);
}

.pex-tab-title {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 800;
    color: var(--pex-primary);
    line-height: 1.3;
}

.pex-tab-subtitle {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
}

/* PRAWY PANEL - TREŚĆ */
.pex-details {
    width: 60%;
    background: var(--pex-gray);
    padding: 40px;
    position: relative;
}

.pex-pane {
    display: none;
    animation: pexFadeIn 0.4s ease-out forwards;
}

.pex-pane.pane-active {
    display: block;
}

.pex-pane h3 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--pex-primary);
}

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

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

.pex-pane a:hover {
    color: var(--pex-accent);
    border-bottom-style: solid;
}

.pex-highlight {
    background: #ffffff;
    border-left: 4px solid var(--pex-accent);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    margin-top: 25px;
}

.pex-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
}

.pex-data-row:last-child {
    border-bottom: none;
}

.pex-data-label {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

.pex-data-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--pex-primary);
}

/* SVG Animacje */
@keyframes flowLine {
    0% { stroke-dashoffset: 24; }
    100% { stroke-dashoffset: 0; }
}
.svg-flow {
    stroke-dasharray: 6 6;
    animation: flowLine 1s linear infinite;
}

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

@media (max-width: 768px) {
    .pex-header { padding: 30px 20px; }
    .pex-workspace { flex-direction: column; min-height: auto; }
    .pex-tabs {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--pex-border);
        padding: 20px;
    }
    .pex-details {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#pojemnosc-rury-pex",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Ile wody mieści się w 1 metrze bieżącym rury PEX 16mm?",
    "description": "Szczegółowe wyliczenia pojemności wodnej rury PEX 16x2.0 mm oraz analiza całkowitego zładu na m2 w zależności od rozstawu pętli grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T11:23:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#pojemnosc-dane",
    "name": "Zależność objętości wody od rozstawu rur 16mm",
    "description": "Normatywne wartości objętości cieczy w instalacji ogrzewania płaszczyznowego wg PN-EN 1264-4 dla średnicy wewnętrznej 12mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile wody w rurze pex 16",
      "objętość rury 16x2",
      "norma PN-EN 1264-4",
      "zład wody rozstaw 10cm",
      "dobór naczynia wzbiorczego"
    ],
    "measurementTechnique": "Wyliczenie objętości walca na bazie średnicy wewnętrznej rury (di=12mm) pomnożonej przez statystyczne zapotrzebowanie rury na 1 m2 podłogi.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Pojemność 1 metra bieżącego",
        "value": "0.113",
        "unitText": "L"
      },
      {
        "@type": "PropertyValue",
        "name": "Pojemność na 1 m2 (rozstaw 10cm)",
        "value": "1.13",
        "unitText": "L/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Pojemność na 1 m2 (rozstaw 15cm)",
        "value": "0.76",
        "unitText": "L/m2"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#interaktywna-analiza",
    "name": "Interaktywna analiza zładu wody na m2",
    "description": "Moduł edukacyjny pozwalający na dynamiczne przełączanie się między parametrami zładu dla różnych rozstawów pętli grzewczych.",
    "applicationCategory": "Edukacja inżynieryjna",
    "operatingSystem": "Web",
    "browserRequirements": "HTML5, CSS3, JavaScript",
    "softwareVersion": "1.0",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="kucharski-pex-container" id="pex-anatomy-app">
    
    <div class="pex-header">
        <h2>Ile wody mieści się w 1 metrze rury PEX 16mm?</h2>
        <p>Precyzyjne określenie ilości płynu to fundament do obliczenia bezwładności cieplnej układu oraz prawidłowego zabezpieczenia hydraulicznego. Poznaj normatywne przeliczniki dla najpopularniejszej średnicy na rynku.</p>
    </div>

    <div class="pex-workspace">
        
        <div class="pex-tabs">
            <div class="pex-tab-hint">Eksploruj warianty obliczeń</div>
            
            <button class="pex-btn pex-active" data-target="pane-bazowa">
                <div class="pex-icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <circle cx="12" cy="12" r="10"></circle>
                        <circle cx="12" cy="12" r="6" stroke-dasharray="3 3"></circle>
                    </svg>
                </div>
                <div>
                    <div class="pex-tab-title">Pojemność bazowa</div>
                    <span class="pex-tab-subtitle">1 metr bieżący (di=12mm)</span>
                </div>
            </button>
            
            <button class="pex-btn" data-target="pane-rozstaw-10">
                <div class="pex-icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M4 6h16M4 12h16M4 18h16"></path>
                    </svg>
                </div>
                <div>
                    <div class="pex-tab-title">Rozstaw co 10 cm</div>
                    <span class="pex-tab-subtitle">Standard dla salonu / łazienki</span>
                </div>
            </button>
            
            <button class="pex-btn" data-target="pane-rozstaw-15">
                <div class="pex-icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M4 8h16M4 16h16"></path>
                    </svg>
                </div>
                <div>
                    <div class="pex-tab-title">Rozstaw co 15 cm</div>
                    <span class="pex-tab-subtitle">Sypialnie i strefy brzegowe</span>
                </div>
            </button>
            
            <button class="pex-btn" data-target="pane-konsekwencje">
                <div class="pex-icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
                        <path d="M12 8v4"></path>
                        <path d="M12 16h.01"></path>
                    </svg>
                </div>
                <div>
                    <div class="pex-tab-title">Konsekwencje w projekcie</div>
                    <span class="pex-tab-subtitle">Zabezpieczenia hydrauliczne</span>
                </div>
            </button>
        </div>

        <div class="pex-details">
            
            <div class="pex-pane pane-active" id="pane-bazowa">
                <h3>Parametry 1 metra rury</h3>
                <p>W standardowej rurze PEX/AL/PEX o średnicy zewnętrznej 16 mm i grubości ścianki 2,0 mm mieści się precyzyjnie wyliczona ilość wody.</p>
                <p>Zgodnie z wytycznymi <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy PN-EN 1264-4</a>, projektant musi uwzględnić objętość wewnętrzną rury, która dla średnicy wewnętrznej <strong>di = 12 mm</strong> wynika bezpośrednio ze wzoru na objętość walca.</p>
                
                <div class="pex-highlight">
                    <div class="pex-data-row">
                        <span class="pex-data-label">Średnica wewnętrzna (di)</span>
                        <span class="pex-data-value">12.0 mm</span>
                    </div>
                    <div class="pex-data-row">
                        <span class="pex-data-label">Pojemność 1 metra bieżącego</span>
                        <span class="pex-data-value" style="color: var(--pex-accent-dark);">0.113 Litra</span>
                    </div>
                </div>
            </div>

            <div class="pex-pane" id="pane-rozstaw-10">
                <h3>Gęsty rozstaw pętli</h3>
                <p>Przyjmując <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 cm</a>, zwiększamy gęstość układu, co przekłada się na proporcjonalnie wyższy zład wody w wylewce.</p>
                <p>Na każdy metr kwadratowy powierzchni grzejnej przypada w tym układzie około 10 metrów bieżących rury. To standardowe rozwiązanie dla pomieszczeń o wysokim zapotrzebowaniu na ciepło, takich jak salony z dużymi przeszkleniami czy łazienki.</p>
                
                <div class="pex-highlight">
                    <div class="pex-data-row">
                        <span class="pex-data-label">Zapotrzebowanie rury / m²</span>
                        <span class="pex-data-value">10.0 mb</span>
                    </div>
                    <div class="pex-data-row">
                        <span class="pex-data-label">Pojemność wodna na 1 m²</span>
                        <span class="pex-data-value" style="color: var(--pex-accent-dark);">1.13 Litra</span>
                    </div>
                </div>
            </div>

            <div class="pex-pane" id="pane-rozstaw-15">
                <h3>Oszczędny układ w sypialniach</h3>
                <p>W pomieszczeniach, gdzie <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty cieplne są niższe</a>, a oczekiwana temperatura pokojowa wynosi około 18-20°C (np. sypialnie), standardem jest rzadsze układanie rur.</p>
                <p>Jeśli zwiększymy rozstaw do 15 cm, zapotrzebowanie na rurę spada do ok. 6,7 metra bieżącego na metr kwadratowy, co znacząco odciąża układ pompowy i zmniejsza całkowity zład.</p>
                
                <div class="pex-highlight">
                    <div class="pex-data-row">
                        <span class="pex-data-label">Zapotrzebowanie rury / m²</span>
                        <span class="pex-data-value">~ 6.7 mb</span>
                    </div>
                    <div class="pex-data-row">
                        <span class="pex-data-label">Pojemność wodna na 1 m²</span>
                        <span class="pex-data-value" style="color: var(--pex-accent-dark);">0.76 Litra</span>
                    </div>
                </div>
            </div>

            <div class="pex-pane" id="pane-konsekwencje">
                <h3>Skutki w projekcie instalacji</h3>
                <p>Dokładne zsumowanie tych wartości (litrów z poszczególnych pętli) decyduje o kluczowych parametrach fizycznych całego systemu.</p>
                <p>Precyzyjne określenie objętości jest absolutnym fundamentem do analizy <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej układu</a> oraz, co najważniejsze z punktu widzenia bezpieczeństwa, doboru odpowiedniego <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia przeponowego (wzbiorczego)</a>. Obliczenia te muszą być zgodne z wymaganiami normy <strong>PN-B-02414:1999</strong>.</p>
                
                <div class="pex-highlight" style="border-left-color: #ef4444;">
                    <div style="font-weight: 800; color: #b91c1c; margin-bottom: 8px;">Pamiętaj o rozszerzalności cieplnej!</div>
                    <p style="margin:0; font-size: 14px; color: #475569; line-height: 1.6;">Podgrzewana woda zwiększa swoją objętość. Jeśli źle oszacujesz zład z pętli, dobierzesz zbyt małe naczynie, co doprowadzi do niebezpiecznych skoków ciśnienia i awarii zaworów bezpieczeństwa.</p>
                </div>
            </div>

        </div>
    </div>
    
    <noscript>
        <style>
            .pex-pane { display: block !important; margin-bottom: 30px; border-bottom: 1px solid #cbd5e1; padding-bottom: 30px; }
        </style>
    </noscript>
</div>

<script>
function initPexTabs() {
    // Zabezpieczenie przed kradzieżą
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const wrap = document.getElementById('pex-anatomy-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fff1f2; color: #be123c; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border: 2px dashed #fda4af;">
                    <span style="font-size: 48px; margin-bottom: 15px;">⚠️</span>
                    <h3 style="margin-top:0; font-size: 22px; font-weight: 900; text-transform: uppercase;">Naruszenie Praw Autorskich</h3>
                    <p style="font-size: 16px; max-width: 500px; line-height: 1.6; color: #881337;">Ten moduł interaktywny został skopiowany z serwisu <strong>Projekt-Ogrzewania.pl</strong> bez autoryzacji inż. Roberta Kucharskiego.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; padding: 12px 25px; background: #e11d48; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">Zobacz oryginał artykułu</a>
                </div>
            `;
        }
        return; 
    }

    const app = document.getElementById('pex-anatomy-app');
    if (!app) return;

    const btns = app.querySelectorAll('.pex-btn');
    const panes = app.querySelectorAll('.pex-pane');

    btns.forEach(btn => {
        btn.addEventListener('click', function(e) {
            e.preventDefault();
            
            // Reset klas
            btns.forEach(b => b.classList.remove('pex-active'));
            panes.forEach(p => p.classList.remove('pane-active'));
            
            // Aktywacja klikniętego
            this.classList.add('pex-active');
            const targetId = this.getAttribute('data-target');
            const targetPane = app.querySelector('#' + targetId);
            if (targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });
}

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



<style>
:root {
    --po-primary: #0f172a;
    --po-blue: #0ea5e9;
    --po-blue-dark: #0284c7;
    --po-blue-light: #f0f9ff;
    --po-gray: #f8fafc;
    --po-border: #e2e8f0;
    --po-text: #334155;
    --po-text-light: #64748b;
    --po-success: #10b981;
}

.po-module-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--po-primary);
}

/* Sekcja Wprowadzająca (Top Card) */
.po-intro-card {
    background: #ffffff;
    border: 1px solid var(--po-border);
    border-left: 8px solid var(--po-border); /* Charakterystyczny gruby margines */
    padding: 40px 45px;
    border-radius: 16px;
    box-shadow: 0 4px 20px -10px rgba(0, 0, 0, 0.03);
    margin-bottom: 30px;
}

.po-intro-card h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    letter-spacing: -0.5px;
    color: var(--po-primary);
}

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

/* Układ Wierszowy (Case Study & Analiza) */
.po-calc-row {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 30px;
    margin-bottom: 50px;
    align-items: stretch;
}

/* Lewa Karta (Case Study) */
.po-box-left {
    background: #ffffff;
    border: 1px solid var(--po-border);
    border-radius: 16px;
    padding: 50px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px -10px rgba(0,0,0,0.03);
}

.po-svg-beaker {
    width: 60px;
    height: 90px;
    margin-bottom: 25px;
}

.po-box-left h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--po-primary);
    margin: 0;
    text-align: center;
}

/* Prawa Karta (Analiza) */
.po-box-right-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.po-box-right {
    background: var(--po-gray);
    border: 1px solid var(--po-border);
    border-radius: 16px;
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-grow: 1;
}

.po-box-right h4 {
    font-size: 17px;
    color: var(--po-blue-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
}

.po-box-right p {
    font-size: 20px;
    line-height: 1.6;
    font-weight: 400;
    color: var(--po-primary);
    margin: 0;
}

.po-box-right a {
    color: var(--po-blue);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    font-weight: 600;
    transition: color 0.2s;
}

.po-box-right a:hover {
    color: var(--po-blue-dark);
}

.po-result-highlight {
    display: block;
    font-size: 32px;
    font-weight: 900;
    color: var(--po-blue-dark);
    margin-top: 15px;
}

/* Nota pod spodem */
.po-calc-note {
    font-size: 14px;
    color: var(--po-text-light);
    font-style: italic;
    line-height: 1.5;
    margin: 0;
    padding: 0 10px;
}

/* Interaktywny Kalkulator Chemii - Odświeżony Design */
.po-app-container {
    background: #ffffff;
    border: 1px solid var(--po-border);
    border-radius: 20px;
    padding: 45px 50px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
}

.po-app-title {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--po-primary);
}

.po-app-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.po-controls {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.po-label {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 12px;
    display: block;
    color: var(--po-primary);
}

input[type=range].po-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].po-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
}

input[type=range].po-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--po-blue);
    cursor: pointer;
    margin-top: -8px;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.3);
    transition: transform 0.1s;
}

input[type=range].po-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

.po-select {
    width: 100%;
    padding: 14px 16px;
    border-radius: 12px;
    border: 2px solid var(--po-border);
    font-size: 15px;
    font-weight: 600;
    color: var(--po-text);
    background-color: #ffffff;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
}

.po-select:focus {
    border-color: var(--po-blue);
}

.po-results-display {
    background: var(--po-gray);
    border-radius: 16px;
    padding: 40px;
    text-align: center;
    border: 1px dashed var(--po-border);
}

.po-val-main {
    font-size: 64px;
    font-weight: 900;
    color: var(--po-primary);
    line-height: 1;
    transition: transform 0.3s;
}

.po-val-sub {
    font-size: 13px;
    font-weight: 800;
    color: var(--po-text-light);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 10px;
}

.po-inhibitor-box {
    margin-top: 30px;
    padding: 15px 20px;
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid var(--po-border);
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

/* SVG Animacja Napełniania */
@keyframes beakerFill {
    0% { height: 10%; y: 64; }
    50% { height: 50%; y: 24; }
    100% { height: 10%; y: 64; }
}
.svg-water-fill {
    animation: beakerFill 4s ease-in-out infinite;
}

@media (max-width: 768px) {
    .po-calc-row, .po-app-grid {
        grid-template-columns: 1fr;
    }
    .po-intro-card, .po-box-left, .po-box-right, .po-app-container {
        padding: 25px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#water-100m2",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Ile wody potrzeba na 100 m² ogrzewania podłogowego?",
    "description": "Szczegółowe obliczenia zładu wody dla instalacji o powierzchni 100-120 m2. Przykłady analityczne oraz zasady dawkowania chemii instalacyjnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T11:45:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-zlad",
    "name": "Zestawienie zładu wody dla powierzchni 100m2 i 120m2",
    "description": "Dane techniczne objętości cieczy grzewczej w zależności od rozstawu rur PEX 16mm (10cm, 12.5cm, 15cm).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody na 100m2 podłogówki",
      "objętość rur 16mm",
      "ile mb rury na 120m2",
      "wymiennik pompy ciepła pojemność",
      "ilość inhibitora korozji"
    ],
    "measurementTechnique": "Algorytm oparty na normatywnym zapotrzebowaniu rury (mb/m2) oraz pojemności jednostkowej 0,113 l/mb.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Objętość rur na 100m² (rozstaw mieszany)",
        "value": "85-95",
        "unitText": "L"
      },
      {
        "@type": "PropertyValue",
        "name": "Całkowity zład z osprzętem dla 100m²",
        "value": "110-125",
        "unitText": "L"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#app-inhibitor",
    "name": "Kalkulator Całkowitego Zładu i Chemii Instalacyjnej",
    "description": "Interaktywne narzędzie do szacowania całkowitej objętości wody w układzie oraz wyliczania liczby butelek inhibitora korozji Fernox/Sentinel.",
    "applicationCategory": "HVAC Design Tool",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "browserRequirements": "HTML5, ES6 JavaScript",
    "softwareVersion": "2.2.0",
    "author": {
        "@type": "Person",
        "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-module-wrapper" id="po-security-100m2">
    
    <div class="po-intro-card">
        <h2>Ile wody potrzeba na 100 m² ogrzewania podłogowego?</h2>
        <p>Dla domu o powierzchni 100 m² z rurą 16&#215;2,0 mm ułożoną w rozstawie mieszanym (strefy brzegowe co 10 cm, środek co 15 cm), całkowita objętość wody w pętlach wynosi średnio 85–95 litrów. Wartość ta musi zostać powiększona o objętość w podejściach do rozdzielaczy oraz w samym źródle ciepła (np. wymiennik pompy ciepła), co zazwyczaj sumuje się do ok. 110–125 litrów całkowitego zładu.</p>
    </div>

    <div class="po-calc-row">
        
        <div class="po-box-left">
            <svg class="po-svg-beaker" viewBox="0 0 40 74" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="2" y="2" width="36" height="70" rx="4" stroke="#cbd5e1" stroke-width="4"/>
                <rect class="svg-water-fill" x="4" y="44" width="32" height="26" fill="#7dd3fc" />
                <rect class="svg-water-fill" x="4" y="54" width="32" height="16" fill="#38bdf8" style="animation-delay: 0.2s;" />
            </svg>
            <h3>Case Study: 120 m²</h3>
        </div>
        
        <div class="po-box-right-wrapper">
            <div class="po-box-right">
                <h4>Analiza Techniczna</h4>
                <p>Przy rozstawie 12,5 cm (<a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">8 mb rury na m²</a>) w domu 120 m², całkowity zład po dodaniu przyłączy i wymiennika wynosi: <span class="po-result-highlight">120,48 litra</span></p>
            </div>
            <p class="po-calc-note">*Znajomość tej liczby pozwala na zakup odpowiedniej ilości środka chemicznego. Przykładowo, popularne inhibitory korozji (np. Fernox F1) dozuje się w proporcji 1 opakowanie (500 ml) na 100 litrów wody. W powyższym przypadku inwestor musi zakupić 2 opakowania, aby utrzymać stężenie gwarantujące ochronę pompy ciepła i rozdzielaczy mosiężnych przed osadami.</p>
        </div>
        
    </div>

    <div class="po-app-container">
        <div class="po-app-title">Symulator Zładu i Chemii Instalacyjnej</div>
        
        <div class="po-app-grid">
            <div class="po-controls">
                <div>
                    <label class="po-label">Powierzchnia domu: <span id="areaVal">100</span> m²</label>
                    <input type="range" class="po-range" id="areaSlider" min="50" max="300" step="5" value="100">
                </div>
                
                <div>
                    <label class="po-label">Standard rozstawu rur:</label>
                    <select id="spacingSelect" class="po-select">
                        <option value="10">Gęsty &#8211; 10 cm (10 mb/m²)</option>
                        <option value="8" selected>Standard &#8211; 12.5 cm (8 mb/m²)</option>
                        <option value="6.7">Ekonomiczny &#8211; 15 cm (6.7 mb/m²)</option>
                    </select>
                </div>
            </div>

            <div class="po-results-display">
                <div class="po-val-main" id="totalLiters">115</div>
                <div class="po-val-sub">Litrów całkowitego zładu</div>
                
                <div class="po-inhibitor-box">
                    <span style="font-size: 14px; font-weight: 600; color: var(--po-text-light);">Zalecana ochrona:</span><br>
                    <span id="inhibitorBottles" style="font-size: 18px; font-weight: 800; color: var(--po-success);">2</span> <span style="font-size: 15px; font-weight: 600; color: var(--po-primary);">butelki inhibitora (500ml)</span>
                </div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- ZABEZPIECZENIE DOMENOWE ---
    const hostname = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(hostname)) {
        const wrap = document.getElementById('po-security-100m2');
        if (wrap) {
            wrap.innerHTML = `<div style="padding: 40px; text-align: center; background: #fff1f2; color: #881337; border-radius: 16px; border: 2px dashed #e11d48;">
                <h3 style="font-size: 22px; margin-top:0; margin-bottom: 15px; font-weight: 900; text-transform: uppercase;">Naruszenie Praw Autorskich</h3>
                <p style="font-size: 16px; line-height:1.6; margin-bottom: 25px;">Ten interaktywny moduł inżynieryjny należy do <strong>Projekt-Ogrzewania.pl</strong>. Kopiowanie bez zgody inż. Roberta Kucharskiego jest zabronione.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; background:#e11d48; color:white; padding:12px 25px; border-radius:8px; text-decoration:none; font-weight:bold;">ZOBACZ ORYGINAŁ</a>
            </div>`;
        }
        return;
    }

    // --- LOGIKA KALKULATORA ---
    const areaSlider = document.getElementById('areaSlider');
    const areaDisplay = document.getElementById('areaVal');
    const spacingSelect = document.getElementById('spacingSelect');
    
    const totalLitersDisplay = document.getElementById('totalLiters');
    const bottlesDisplay = document.getElementById('inhibitorBottles');

    function updateCalculations() {
        const area = parseFloat(areaSlider.value);
        const metersPerM2 = parseFloat(spacingSelect.value);
        
        areaDisplay.textContent = area;

        // Pojemność rur: area * mb/m2 * 0.113 l/mb
        const loopsVol = area * metersPerM2 * 0.113;
        
        // Stały dodatek na osprzęt (rozdzielacz, kotłownia, dobiegi)
        // Przyjmujemy średnio 10% objętości + 12L (jak w tekście dla rozdzielaczy i przyłączy)
        const totalVolume = Math.round(loopsVol + 12);
        
        // Inhibitor: 1 butelka na 100L (zawsze zaokrąglamy w górę dla bezpieczeństwa)
        const bottlesNeeded = Math.ceil(totalVolume / 100);

        // Update UI
        totalLitersDisplay.textContent = totalVolume;
        bottlesDisplay.textContent = bottlesNeeded;
        
        // Animacja cyfr
        totalLitersDisplay.style.transform = 'scale(1.1)';
        setTimeout(() => totalLitersDisplay.style.transform = 'scale(1)', 150);
    }

    areaSlider.addEventListener('input', updateCalculations);
    spacingSelect.addEventListener('change', updateCalculations);

    // Inicjalizacja przy załadowaniu
    updateCalculations();
});
</script>



<style>
:root {
    --po-primary: #0f172a;
    --po-blue: #0ea5e9;
    --po-blue-dark: #0284c7;
    --po-blue-light: #f0f9ff;
    --po-gray: #f8fafc;
    --po-border: #e2e8f0;
    --po-text: #334155;
    --po-text-light: #64748b;
    --po-highlight: #fef08a;
    --po-highlight-text: #854d0e;
}

.po-diam-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--po-primary);
}

/* Wstęp */
.po-diam-intro {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px 40px;
    border: 1px solid var(--po-border);
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
}

.po-diam-intro::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--po-blue), var(--po-blue-dark));
}

.po-diam-intro h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
    color: var(--po-primary);
}

.po-diam-intro p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--po-text);
    margin: 0;
}

.po-formula-box {
    display: inline-block;
    background: var(--po-blue-light);
    color: var(--po-blue-dark);
    padding: 6px 12px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 800;
    letter-spacing: 1px;
    border: 1px solid #bae6fd;
    margin: 0 5px;
}

/* Interaktywny Moduł */
.po-diam-app {
    background: #ffffff;
    border: 1px solid var(--po-border);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 15px 35px -10px rgba(14, 165, 233, 0.08);
    margin-bottom: 30px;
}

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

/* Lewa strona - Wybór i SVG */
.po-diam-selector {
    background: var(--po-gray);
    padding: 40px;
    border-right: 1px solid var(--po-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.po-diam-title {
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--po-text-light);
    margin-bottom: 25px;
    text-align: center;
    width: 100%;
}

.po-svg-pipe-container {
    width: 160px;
    height: 160px;
    position: relative;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.po-pipe-outer {
    fill: #f1f5f9;
    stroke: #cbd5e1;
    stroke-width: 8;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.po-pipe-inner {
    fill: var(--po-blue);
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Radio Buttons */
.po-pipe-radios {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 100%;
}

.po-pipe-radios label {
    background: #ffffff;
    border: 2px solid var(--po-border);
    border-radius: 12px;
    padding: 12px 10px;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    color: var(--po-text);
    transition: all 0.2s;
    user-select: none;
}

.po-pipe-radios input[type="radio"] {
    display: none;
}

.po-pipe-radios input[type="radio"]:checked + label {
    background: var(--po-blue-light);
    border-color: var(--po-blue);
    color: var(--po-blue-dark);
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.15);
}

/* Prawa strona - Dane */
.po-diam-data {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #ffffff;
}

.po-data-item {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed var(--po-border);
}

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

.po-data-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--po-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.po-data-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--po-primary);
    line-height: 1.1;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.po-data-unit {
    font-size: 18px;
    font-weight: 700;
    color: var(--po-text-light);
}

.po-data-value.po-highlight-val {
    color: var(--po-blue-dark);
}

/* Podsumowanie */
.po-diam-summary {
    background: var(--po-highlight);
    padding: 25px 35px;
    border-radius: 16px;
    border: 1px solid #fde047;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.po-diam-summary-icon {
    font-size: 32px;
    line-height: 1;
}

.po-diam-summary p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--po-highlight-text);
    font-weight: 500;
}

.po-diam-summary a {
    color: #a16207;
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .po-diam-grid {
        grid-template-columns: 1fr;
    }
    .po-diam-selector {
        border-right: none;
        border-bottom: 1px solid var(--po-border);
    }
    .po-diam-intro {
        padding: 25px;
    }
    .po-diam-summary {
        flex-direction: column;
        padding: 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#diameters",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Jaka średnica rury ma największy wpływ na objętość instalacji?",
    "description": "Zestawienie średnic rur ogrzewania podłogowego (PEX/PERT 16, 17, 20, 25) i ich wpływu na pojemność wodną oraz opory hydrauliczne instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T11:55:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-diameters",
    "name": "Tabela pojemności wodnej dla różnych średnic rur PEX/PERT",
    "description": "Parametry techniczne rur: średnica wewnętrzna, objętość L/mb oraz estymowany zład na 100 m2 podłogi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "średnice rur w ogrzewaniu podłogowym",
      "pojemność rury pex 16",
      "pojemność rury pert 17",
      "pojemność rury pex 20",
      "zład wody na 100m2 podłogówki"
    ],
    "measurementTechnique": "Analiza geometryczna pola przekroju walca (V = π · r² · L) dla wyznaczenia pojemności hydraulicznej.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "PEX/AL/PEX 16x2.0",
        "value": "0.113",
        "unitText": "L/mb"
      },
      {
        "@type": "PropertyValue",
        "name": "PERT 17x2.0",
        "value": "0.133",
        "unitText": "L/mb"
      },
      {
        "@type": "PropertyValue",
        "name": "PEX/AL/PEX 20x2.0",
        "value": "0.201",
        "unitText": "L/mb"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#app-visualizer",
    "name": "Wizualizator Przekroju Rur PEX/PERT",
    "description": "Narzędzie interaktywne ilustrujące kwadratowy przyrost objętości wody w stosunku do zmiany średnicy wewnętrznej rury instalacyjnej.",
    "applicationCategory": "Narzędzie inżynieryjne HVAC",
    "operatingSystem": "Przeglądarka internetowa",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
        "@type": "Person",
        "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-diam-wrapper" id="po-security-diam">
    
    <div class="po-diam-intro">
        <h2>Jaka średnica rury ma największy wpływ na objętość instalacji?</h2>
        <p>Średnica wewnętrzna rury jest parametrem absolutnie krytycznym. Dlaczego? Ponieważ objętość rośnie w kwadracie promienia, zgodnie ze wzorem <span class="po-formula-box">V = π · r² · L</span>. Zmiana geometrii wydaje się niewielka na papierze, ale fizyka płynów jest bezlitosna: przejście z rury 16&#215;2,0 mm na 20&#215;2,0 mm przy tej samej długości pętli <strong>zwiększa ilość wody w układzie o ponad 77%</strong>.</p>
    </div>

    <div class="po-diam-app">
        <div class="po-diam-grid">
            
            <div class="po-diam-selector">
                <div class="po-diam-title">Przekrój Rury i Ilość Wody</div>
                
                <div class="po-svg-pipe-container">
                    <svg viewBox="0 0 100 100" width="100%" height="100%">
                        <circle id="svgPipeOuter" class="po-pipe-outer" cx="50" cy="50" r="32" />
                        <circle id="svgPipeInner" class="po-pipe-inner" cx="50" cy="50" r="24" />
                        <circle cx="50" cy="50" r="1.5" fill="#ffffff" opacity="0.8" />
                    </svg>
                </div>

                <div class="po-pipe-radios">
                    <input type="radio" id="p16" name="pipe_diam" value="16" checked>
                    <label for="p16">PEX 16&#215;2.0</label>

                    <input type="radio" id="p17" name="pipe_diam" value="17">
                    <label for="p17">PERT 17&#215;2.0</label>

                    <input type="radio" id="p20" name="pipe_diam" value="20">
                    <label for="p20">PEX 20&#215;2.0</label>

                    <input type="radio" id="p25" name="pipe_diam" value="25">
                    <label for="p25">PEX 25&#215;2.5</label>
                </div>
            </div>

            <div class="po-diam-data">
                
                <div class="po-data-item">
                    <div class="po-data-label">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
                        Średnica wewnętrzna (di)
                    </div>
                    <div class="po-data-value">
                        <span id="valDi">12</span> <span class="po-data-unit">mm</span>
                    </div>
                </div>

                <div class="po-data-item">
                    <div class="po-data-label">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                        Pojemność wodna
                    </div>
                    <div class="po-data-value po-highlight-val">
                        <span id="valVol">0.113</span> <span class="po-data-unit">L / mb</span>
                    </div>
                </div>

                <div class="po-data-item">
                    <div class="po-data-label">
                        <svg width="18" height="18" 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"/><path d="M3 9h18M9 21V9"/></svg>
                        Szacunkowy zład na 100 m² (rozstaw 15 cm)
                    </div>
                    <div class="po-data-value">
                        <span id="valTotal">75.7</span> <span class="po-data-unit" id="unitTotal">Litrów</span>
                    </div>
                </div>

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

    <div class="po-diam-summary">
        <div class="po-diam-summary-icon">⚖️</div>
        <p>
            Wybór <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">rury o większej średnicy</a> (np. 17 mm zamiast 16 mm) jest często podyktowany chęcią zmniejszenia oporów hydraulicznych w długich pętlach (powyżej 100 mb). Musisz jednak pamiętać, że wiąże się to z koniecznością zapewnienia wyższej mocy rozruchowej źródła ciepła, ze względu na znacznie większą masę wody do podgrzania.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const hostname = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(hostname)) {
        const wrap = document.getElementById('po-security-diam');
        if (wrap) {
            wrap.innerHTML = `<div style="padding: 40px; text-align: center; background: #fef2f2; color: #991b1b; border-radius: 16px; border: 2px dashed #f87171;">
                <div style="font-size: 24px; font-weight: bold; margin-bottom: 15px;">Błąd Praw Autorskich</div>
                <p style="font-size: 16px; line-height:1.6; margin-bottom: 25px;">Moduł wizualizacji przepływu jest własnością <strong>Projekt-Ogrzewania.pl</strong>. Osadzenie na tej domenie jest nielegalne.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; background:#dc2626; color:white; padding:12px 25px; border-radius:8px; text-decoration:none; font-weight:bold;">Powrót do oryginału</a>
            </div>`;
        }
        return;
    }

    // --- LOGIKA WIZUALIZATORA ---
    const dataMap = {
        '16': { di: 12, vol: '0.113', total: '75.7', rOut: 32, rIn: 24 },
        '17': { di: 13, vol: '0.133', total: '89.1', rOut: 34, rIn: 26 },
        '20': { di: 16, vol: '0.201', total: '134.7', rOut: 40, rIn: 32 },
        '25': { di: 20, vol: '0.314', total: 'N/A', rOut: 48, rIn: 40, note: '(Rura Zasilająca)' }
    };

    const radios = document.querySelectorAll('input[name="pipe_diam"]');
    const valDi = document.getElementById('valDi');
    const valVol = document.getElementById('valVol');
    const valTotal = document.getElementById('valTotal');
    const unitTotal = document.getElementById('unitTotal');
    
    const svgOuter = document.getElementById('svgPipeOuter');
    const svgInner = document.getElementById('svgPipeInner');

    function animateValue(element, newValue) {
        element.style.opacity = 0;
        setTimeout(() => {
            element.textContent = newValue;
            element.style.opacity = 1;
        }, 200);
    }

    radios.forEach(radio => {
        radio.addEventListener('change', (e) => {
            const val = e.target.value;
            const data = dataMap[val];

            // Update text with fade effect
            valDi.style.transition = "opacity 0.2s";
            valVol.style.transition = "opacity 0.2s";
            valTotal.style.transition = "opacity 0.2s";

            animateValue(valDi, data.di);
            animateValue(valVol, data.vol);
            
            if(data.total === 'N/A') {
                animateValue(valTotal, data.total);
                unitTotal.textContent = data.note;
            } else {
                animateValue(valTotal, data.total);
                unitTotal.textContent = 'Litrów';
            }

            // Update SVG
            svgOuter.setAttribute('r', data.rOut);
            svgInner.setAttribute('r', data.rIn);
        });
    });
});
</script>



<style>
:root {
    --po-primary: #0f172a;
    --po-accent: #0ea5e9;
    --po-accent-dark: #0284c7;
    --po-bg: #f8fafc;
    --po-surface: #ffffff;
    --po-border: #e2e8f0;
    --po-text: #475569;
    --po-success: #10b981;
    --po-warning: #f59e0b;
    --po-danger: #ef4444;
}

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

/* Wprowadzenie */
.po-system-intro {
    background: var(--po-surface);
    border-radius: 20px;
    padding: 40px;
    border: 1px solid var(--po-border);
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    margin-bottom: 40px;
}

.po-system-intro h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 20px 0;
    letter-spacing: -0.5px;
    color: var(--po-primary);
}

.po-system-intro p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--po-text);
    margin-bottom: 15px;
}

.po-highlight-badge {
    background: #e0f2fe;
    color: var(--po-accent-dark);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 700;
}

/* Kalkulator Bufora */
.po-buffer-app {
    background: var(--po-surface);
    border: 2px solid var(--po-border);
    border-radius: 24px;
    padding: 40px;
    margin-bottom: 40px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.08);
}

.po-app-header {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 35px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.po-app-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.po-app-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.po-control-box {
    background: var(--po-bg);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--po-border);
}

.po-control-header {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 15px;
}

.po-control-val {
    color: var(--po-accent-dark);
    font-weight: 900;
    font-size: 18px;
}

input[type=range].po-slider-input {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].po-slider-input::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
}

input[type=range].po-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--po-accent);
    cursor: pointer;
    margin-top: -8px;
    box-shadow: 0 3px 8px rgba(14, 165, 233, 0.4);
    transition: transform 0.1s;
}

input[type=range].po-slider-input::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

.po-app-viz {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #fafafa;
    border-radius: 16px;
    padding: 30px;
    border: 1px dashed var(--po-border);
}

.po-buffer-svg {
    width: 100px;
    height: 140px;
    margin-bottom: 20px;
}

.po-water-level {
    transition: height 0.4s ease, y 0.4s ease;
}

.po-status-number {
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    transition: color 0.3s;
}

.po-status-text {
    font-size: 13px;
    font-weight: 800;
    color: var(--po-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
    text-align: center;
}

.po-alert-badge {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 700;
    padding: 8px 16px;
    border-radius: 8px;
    text-align: center;
}

/* Algorytm - Karty Kroków */
.po-section-title {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: var(--po-primary);
}

.po-algorithm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-bottom: 50px;
}

.po-step-card {
    background: var(--po-surface);
    border: 1px solid var(--po-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 10px -5px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
    transition: transform 0.2s;
}

.po-step-card:hover {
    transform: translateY(-3px);
    border-color: var(--po-accent);
}

.po-step-number {
    background: var(--po-primary);
    color: #fff;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    margin-bottom: 15px;
}

.po-step-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
}

.po-formula-display {
    background: var(--po-bg);
    color: var(--po-accent-dark);
    padding: 10px 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid var(--po-border);
    margin: 10px 0;
    text-align: center;
}

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

/* Wpływ na Projekt */
.po-impact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 50px;
}

.po-impact-box {
    background: var(--po-surface);
    border-left: 5px solid var(--po-accent);
    padding: 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

.po-impact-box h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.po-impact-box p:last-child {
    margin-bottom: 0;
}

.po-impact-box a {
    color: var(--po-accent-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.po-impact-box a:hover {
    color: var(--po-accent);
}

/* CTA */
.po-cta-banner {
    background: linear-gradient(135deg, var(--po-primary), #1e293b);
    border-radius: 20px;
    padding: 45px;
    text-align: center;
    color: #ffffff;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.4);
    position: relative;
    overflow: hidden;
}

.po-cta-banner::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.2) 0%, transparent 70%);
    border-radius: 50%;
}

.po-cta-banner h3 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    position: relative;
    z-index: 1;
}

.po-cta-banner p {
    font-size: 17px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0 auto 30px auto;
    max-width: 600px;
    position: relative;
    z-index: 1;
}

.po-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--po-accent);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
    position: relative;
    z-index: 1;
}

.po-cta-btn:hover {
    background: var(--po-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
    color: #ffffff;
}

@media (max-width: 768px) {
    .po-app-layout, .po-impact-layout {
        grid-template-columns: 1fr;
    }
    .po-system-intro, .po-app-wrapper, .po-cta-banner {
        padding: 25px;
    }
    .po-cta-banner h3 {
        font-size: 24px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#kalkulacja-pompa-ciepla",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Jak obliczyć zład wody dla pompy ciepła i bufora?",
    "description": "Zasady obliczania zładu odszraniania (defrostu) pompy ciepła wg normy PN-EN 14511. Pięciokrokowy algorytm obliczania objętości instalacji oraz zasady doboru osprzętu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:15:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-termodynamika",
    "name": "Parametry termodynamiczne i projektowe instalacji HVAC",
    "description": "Algorytm 5 kroków oraz zestawienie wskaźników fizycznych wykorzystywanych w profesjonalnych arkuszach kalkulacyjnych OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody dla pompy ciepła defrost",
      "pojemność bufora ciepła kalkulator",
      "algorytm objętości instalacji podłogowej",
      "dobór naczynia wzbiorczego zasady",
      "przepływ masowy pompy obiegowej wzór"
    ],
    "measurementTechnique": "Algorytm oparty na normie PN-EN 14511 (15 L/kW mocy cieplnej) oraz obliczeniach pola przekroju i przepływu masowego.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Wymóg zładu dla odszraniania (PN-EN 14511)",
        "value": "10-15",
        "unitText": "L / kW"
      },
      {
        "@type": "PropertyValue",
        "name": "Rozszerzalność cieplna wody 10°C - 50°C",
        "value": "1.2",
        "unitText": "%"
      },
      {
        "@type": "PropertyValue",
        "name": "Ciepło właściwe wody (cp)",
        "value": "4186",
        "unitText": "J/(kg·K)"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#app-bufor",
    "name": "Kalkulator Wymaganego Bufora Ciepła (Defrost)",
    "description": "Narzędzie symulujące konieczność zastosowania bufora (sprzęgła hydraulicznego) w instalacji z pompą ciepła poprzez porównanie zładu krytycznego z rzeczywistą pojemnością rur.",
    "applicationCategory": "Kalkulator Inżynieryjny",
    "operatingSystem": "Web",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
        "@type": "Person",
        "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-system-container" id="po-system-auth">
    
    <div class="po-system-intro">
        <h2>Jak obliczyć zład wody dla pompy ciepła i bufora?</h2>
        <p>W nowoczesnych instalacjach opartych o <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>, sama woda krążąca w &#8222;podłogówce&#8221; to często zbyt mała masa akumulacyjna. Jest ona niezbędna, by zapewnić kompresorowi stabilną pracę w trudnym procesie odmrażania parownika (defrost).</p>
        <p>Norma branżowa <strong>PN-EN 14511</strong> wyraźnie sugeruje, że dla poprawnego cyklu odszraniania, w instalacji powinno krążyć minimum <span class="po-highlight-badge">10–15 litrów wody na każdy 1 kW</span> mocy urządzenia.</p>
        <p>Niedoszacowanie objętości to prosty przepis na ciągłe &#8222;taktowanie&#8221;. Zbyt częste starty drastycznie skracają żywotność sprężarki i windują zużycie prądu o 15–20%. Koszt montażu <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">odpowiedniego bufora ciepła</a> (ok. 1200–1800 PLN) jest w tym wypadku niezbędną inwestycją w bezpieczeństwo i gwarancję urządzenia.</p>
    </div>

    <div class="po-buffer-app">
        <div class="po-app-header">Weryfikator Pojemności Odszraniania</div>
        
        <div class="po-app-layout">
            <div class="po-app-controls">
                <div class="po-control-box">
                    <div class="po-control-header">
                        <span>Moc pompy ciepła (Q):</span>
                        <span class="po-control-val"><span id="valHpPower">8</span> kW</span>
                    </div>
                    <input type="range" class="po-slider-input" id="sliderHpPower" min="4" max="16" step="1" value="8">
                    <div style="font-size: 12px; color: var(--po-text); margin-top: 8px;">Wymagany zład min.: ~15 L / kW</div>
                </div>

                <div class="po-control-box">
                    <div class="po-control-header">
                        <span>Powierzchnia pętli (15 cm):</span>
                        <span class="po-control-val"><span id="valFloorArea">100</span> m²</span>
                    </div>
                    <input type="range" class="po-slider-input" id="sliderFloorArea" min="40" max="250" step="5" value="100">
                    <div style="font-size: 12px; color: var(--po-text); margin-top: 8px;">Szacowana objętość: ~0.76 L / m²</div>
                </div>
            </div>

            <div class="po-app-viz">
                <svg class="po-buffer-svg" viewBox="0 0 100 120" xmlns="http://www.w3.org/2000/svg">
                    <rect x="20" y="10" width="60" height="100" rx="8" fill="none" stroke="#cbd5e1" stroke-width="5"/>
                    <rect x="10" y="30" width="10" height="8" fill="#cbd5e1"/>
                    <rect x="10" y="80" width="10" height="8" fill="#cbd5e1"/>
                    <rect x="80" y="30" width="10" height="8" fill="#cbd5e1"/>
                    <rect x="80" y="80" width="10" height="8" fill="#cbd5e1"/>
                    
                    <clipPath id="waterMaskBuf">
                        <rect x="23" y="13" width="54" height="94" rx="5"/>
                    </clipPath>
                    
                    <g clip-path="url(#waterMaskBuf)">
                        <rect id="bufWaterRect" class="po-water-level" x="23" y="107" width="54" height="0" fill="var(--po-accent)"/>
                        <path id="bufWaterWave" class="po-water-level" fill="#bae6fd" d="M23,107 Q36,102 50,107 T77,107 L77,107 L23,107 Z" opacity="0.7"/>
                    </g>
                </svg>

                <div class="po-status-number" id="txtDeficit">44</div>
                <div class="po-status-text" id="txtLabel">Brakujących Litrów (Bufor)</div>
                <div class="po-alert-badge" id="txtMsg" style="background: #fef2f2; color: var(--po-danger);">Wymagany montaż bufora</div>
            </div>
        </div>
    </div>

    <h3 class="po-section-title">Algorytm obliczania objętości instalacji</h3>
    <p style="margin-bottom: 25px; color: var(--po-text); line-height: 1.7;">Jako inżynier projektujący systemy HVAC, stosuję sformalizowany algorytm. Możesz z powodzeniem wdrożyć go we własnym arkuszu Excel:</p>

    <div class="po-algorithm-grid">
        <div class="po-step-card">
            <div class="po-step-number">1</div>
            <h4>Średnica wewnętrzna (d<sub>i</sub>)</h4>
            <div class="po-formula-display">d<sub>i</sub> = d<sub>zewn</sub> &#8211; (2 × ścianka)</div>
            <p>Dla typowej rury 16&#215;2: 16 &#8211; 4 = 12 mm (0,012 m).</p>
        </div>

        <div class="po-step-card">
            <div class="po-step-number">2</div>
            <h4>Pole przekroju (A)</h4>
            <div class="po-formula-display">A = π × (d<sub>i</sub> / 2)²</div>
            <p>Wynik dla rury 16 mm: 3,1415 × 0,006² = 0,0001131 m².</p>
        </div>

        <div class="po-step-card">
            <div class="po-step-number">3</div>
            <h4>Długość układu (L<sub>całk</sub>)</h4>
            <div class="po-formula-display">L = (Pow / Rozstaw) + Dob.</div>
            <p>Sumowanie długości bazując na zagęszczeniu pętli i dobiegach do rozdzielacza.</p>
        </div>

        <div class="po-step-card">
            <div class="po-step-number">4</div>
            <h4>Objętość pętli (V<sub>pętle</sub>)</h4>
            <div class="po-formula-display">V = A × L<sub>całk</sub> × 1000</div>
            <p>Iloczyn pola przekroju i długości, przekonwertowany na litry.</p>
        </div>

        <div class="po-step-card">
            <div class="po-step-number">5</div>
            <h4>Uwzględnienie osprzętu</h4>
            <div class="po-formula-display">V<sub>całk</sub> = V<sub>pętle</sub> + 10-15%</div>
            <p>Jeśli nie dysponujesz kartami katalogowymi, przyjmij 15% naddatku na urządzenia kotłowni.</p>
        </div>
    </div>

    <h3 class="po-section-title">Wpływ zładu na projekt ogrzewania</h3>
    <p style="margin-bottom: 25px; color: var(--po-text); line-height: 1.7;">Całkowita objętość układu jest ściśle skorelowana z dokumentacją OZC (Obciążeniem Cieplnym). Te litry determinują wymiarowanie dwóch kluczowych podzespołów hydraulicznych:</p>

    <div class="po-impact-layout">
        <div class="po-impact-box">
            <h3>🎈 Dobór naczynia wzbiorczego</h3>
            <p>Woda ogrzewana z temperatury 10°C do 50°C zwiększa swoją fizyczną objętość o ok. <strong>1,2%</strong>. Przykładowo, w instalacji 200-litrowej, <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynie wzbiorcze przeponowe</a> musi wchłonąć 2,4 litra ekspansji.</p>
            <p>Ze względów bezpieczeństwa pojemność użyteczna to max 50%. Dlatego dla zładu 200 L montuje się naczynia o pojemności nominalnej <strong>8–12 litrów</strong>.</p>
        </div>

        <div class="po-impact-box" style="border-left-color: var(--po-warning);">
            <h3 style="color: var(--po-warning);">⚙️ Pompa obiegowa a przepływ</h3>
            <p>Wysoki zład i niska różnica temperatur (np. <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">ΔT = 5 K</a>) wymuszają tłoczenie ogromnych mas wody. Korzystamy ze wzoru: <strong>ṁ = Q / (c<sub>p</sub> · ΔT)</strong>.</p>
            <p>Dla zapotrzebowania 7 kW: 7000W / (4186 J/kgK · 5K) daje nam ok. 0,33 kg/s, co przekłada się na <strong>1,2 m³/h</strong>. Obsłużenie takiego zładu wymaga starannego wytypowania <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">odpowiedniej pompy obiegowej</a>.</p>
        </div>
    </div>

    <div class="po-cta-banner">
        <h3>Nie zgaduj, zainwestuj w pewność</h3>
        <p>Błędy w obliczeniach zładu wody, oporów i wydajności pomp mszczą się przez lata w postaci wyższych rachunków za prąd i awarii sprzętu. Zleć to ekspertom i śpij spokojnie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="po-cta-btn">
            Zamów profesjonalny projekt podłogówki
            <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="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA KODU ---
    const allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedHosts.includes(window.location.hostname)) {
        const wrap = document.getElementById('po-system-auth');
        if (wrap) {
            wrap.innerHTML = `<div style="padding: 40px; text-align: center; background: #fff1f2; color: #9f1239; border-radius: 20px; border: 2px dashed #f43f5e;">
                <h3 style="font-size: 24px; margin: 0 0 15px 0;">Moduł Chroniony Licencją</h3>
                <p style="font-size: 16px; margin-bottom: 25px;">Kalkulator bufora pompy ciepła to autorskie narzędzie serwisu Projekt-Ogrzewania.pl. Osadzenie zablokowane.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; padding:12px 25px; background:#e11d48; color:#fff; border-radius:8px; text-decoration:none; font-weight:800;">Wróć do źródła</a>
            </div>`;
        }
        return;
    }

    // --- LOGIKA KALKULATORA DEFROSTU ---
    const sPower = document.getElementById('sliderHpPower');
    const valPower = document.getElementById('valHpPower');
    const sArea = document.getElementById('sliderFloorArea');
    const valArea = document.getElementById('valFloorArea');
    
    const resDeficit = document.getElementById('txtDeficit');
    const resLabel = document.getElementById('txtLabel');
    const resMsg = document.getElementById('txtMsg');
    
    const bufWater = document.getElementById('bufWaterRect');
    const bufWave = document.getElementById('bufWaterWave');

    function executeBufferCalc() {
        const power = parseFloat(sPower.value);
        const area = parseFloat(sArea.value);
        
        valPower.textContent = power;
        valArea.textContent = area;

        // Wymóg normy 14511: 15L na kW mocy (zakładamy górną bezpieczną granicę z tekstu 10-15)
        const requiredLiters = power * 15;
        
        // Zład instalacji: z tekstu "rozstaw 15cm na 100m2 ma 76 litrów" -> 0.76 L/m2
        const systemLiters = area * 0.76;
        
        const deficit = Math.max(0, requiredLiters - systemLiters);
        const missing = Math.ceil(deficit);
        
        resDeficit.textContent = missing;
        
        if (missing > 0) {
            resDeficit.style.color = "var(--po-danger)";
            resLabel.textContent = "Brakujących litrów (Wymagany Bufor)";
            resMsg.textContent = "Wymagany montaż bufora ciepła";
            resMsg.style.background = "#fef2f2";
            resMsg.style.color = "var(--po-danger)";
            
            // Wysokość wody SVG (max 94px). Zakładamy max deficyt ok 200L do skali
            const percent = Math.min(1, missing / 200); 
            const h = 94 * percent;
            const y = 107 - h;
            
            bufWater.setAttribute('height', h);
            bufWater.setAttribute('y', y);
            bufWave.setAttribute('d', `M23,${y} Q36,${y-4} 50,${y} T77,${y} L77,107 L23,107 Z`);
            bufWave.style.opacity = "0.8";
            
        } else {
            resDeficit.style.color = "var(--po-success)";
            resDeficit.textContent = "OK";
            resLabel.textContent = "Zład Optymalny";
            resMsg.textContent = "Podłogówka wystarczy do odszraniania";
            resMsg.style.background = "#ecfdf5";
            resMsg.style.color = "var(--po-success)";
            
            bufWater.setAttribute('height', 0);
            bufWater.setAttribute('y', 107);
            bufWave.style.opacity = "0";
        }
    }

    sPower.addEventListener('input', executeBufferCalc);
    sArea.addEventListener('input', executeBufferCalc);

    // Initial run
    executeBufferCalc();
});
</script>



<style>
:root {
    --err-primary: #0f172a;
    --err-accent: #f59e0b; /* Kolor ostrzegawczy - bursztynowy */
    --err-danger: #ef4444;
    --err-bg: #fffcf5;
    --err-surface: #ffffff;
    --err-border: #fde68a;
    --err-text: #334155;
    --err-text-light: #64748b;
}

.po-errors-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--err-primary);
}

/* Header modułu */
.po-errors-header {
    background: #ffffff;
    border-radius: 20px;
    padding: 40px;
    border: 1px solid var(--err-border);
    box-shadow: 0 10px 30px -10px rgba(245, 158, 11, 0.1);
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
}

.po-errors-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 8px; height: 100%;
    background: linear-gradient(to bottom, var(--err-accent), var(--err-danger));
}

.po-errors-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
}

.po-errors-header p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--err-text);
    margin: 0;
}

/* Grid błędów */
.po-errors-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.po-error-card {
    background: var(--err-surface);
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 30px 25px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: help;
    position: relative;
}

.po-error-card:hover {
    transform: translateY(-8px);
    border-color: var(--err-accent);
    box-shadow: 0 20px 25px -5px rgba(245, 158, 11, 0.15);
}

.po-error-card h4 {
    font-size: 16px;
    font-weight: 800;
    margin: 20px 0 12px 0;
    color: var(--err-primary);
    line-height: 1.4;
}

.po-error-card p {
    font-size: 14px;
    color: var(--err-text-light);
    line-height: 1.6;
    margin: 0;
}

/* SVG Animacje */
.po-svg-icon {
    width: 60px;
    height: 60px;
    color: var(--err-accent);
}

@keyframes pulse-warning {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}
.anim-pulse { animation: pulse-warning 2s infinite ease-in-out; }

@keyframes rotate-gear {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.anim-rotate { transform-origin: center; animation: rotate-gear 8s linear infinite; }

/* Tooltip/Detail Box */
.po-error-detail {
    grid-column: 1 / -1;
    background: var(--err-bg);
    border: 1px solid var(--err-border);
    border-radius: 16px;
    padding: 25px 30px;
    margin-top: 10px;
    display: none;
    animation: slideInDown 0.4s ease-out;
}

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

.po-error-detail h5 {
    color: #92400e;
    font-weight: 900;
    margin: 0 0 10px 0;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
}

.po-error-detail p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #854d0e;
}

.po-error-detail strong { color: var(--err-primary); }

@media (max-width: 768px) {
    .po-errors-grid { grid-template-columns: 1fr; }
    .po-errors-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#errors-section",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Najczęstsze błędy przy szacowaniu ilości wody w podłogówce",
    "description": "Ekspercka analiza błędów przy obliczaniu zładu wody. Dowiedz się, dlaczego instalatorzy mylą się o 50% i jak uniknąć awarii pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:35:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-errors",
    "name": "Wpływ błędów obliczeniowych na parametry zładu",
    "description": "Zestawienie techniczne objętości rur PP oraz różnic w rozszerzalności cieplnej glikolu i wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy instalatorów podłogówka",
      "pojemność rury PP 32mm",
      "rozszerzalność glikolu w ogrzewaniu",
      "średnica wewnętrzna PE-RT vs PEX",
      "naczynie wzbiorcze do glikolu"
    ],
    "measurementTechnique": "Analiza inżynierska na bazie 1000+ projektów HVAC i pomiarów rzeczywistych zładów instalacji.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Pojemność rury PP 32 mm",
        "value": "0.38",
        "unitText": "L/mb"
      },
      {
        "@type": "PropertyValue",
        "name": "Naddatek naczynia wzbiorczego dla glikolu",
        "value": "20-25",
        "unitText": "%"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#error-explorer",
    "name": "Eksplorator Błędów Projektowych HVAC",
    "description": "Interaktywny moduł edukacyjny symulujący skutki błędnego szacowania objętości wody w układach płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-errors-container" id="po-err-auth">
    
    <div class="po-errors-header">
        <h2>Najczęstsze błędy przy szacowaniu ilości wody</h2>
        <p>Z mojego doświadczenia wynika, że instalatorzy działający &#8222;na oko&#8221; popełniają błędy sięgające <strong>30–50% rzeczywistej objętości</strong>. Taka pomyłka to nie tylko statystyka – to ryzyko awaryjnego wyłączenia kotłowni w środku zimy. Kliknij w kartę, aby poznać szczegóły techniczne.</p>
    </div>

    <div class="po-errors-grid">
        
        <div class="po-error-card" onclick="toggleError('err1')">
            <div class="po-svg-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <path class="anim-pulse" 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>
            <h4>Pomijanie rur przesyłowych</h4>
            <p>Najczęstszy &#8222;grzech&#8221; projektowy – liczenie tylko rur w pętlach pokojowych.</p>
        </div>

        <div class="po-error-card" onclick="toggleError('err2')">
            <div class="po-svg-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <circle cx="12" cy="12" r="10"/>
                    <circle class="anim-rotate" cx="12" cy="12" r="4" stroke-dasharray="4 2"/>
                    <path d="M12 2v2m0 16v2M2 12h2m16 0h2"/>
                </svg>
            </div>
            <h4>Grubość ścianki rury</h4>
            <p>Pomyłka w typie materiału rury (PE-RT vs PEX) zmienia średnicę wewnętrzną.</p>
        </div>

        <div class="po-error-card" onclick="toggleError('err3')">
            <div class="po-svg-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/>
                </svg>
            </div>
            <h4>Brak uwzględnienia glikolu</h4>
            <p>Glikol to inna fizyka rozszerzalności cieplnej niż czysta woda.</p>
        </div>

        <div id="err1" class="po-error-detail">
            <h5>Analiza Inżynierska:</h5>
            <p>Często zapomina się o odcinkach łączących rozdzielacz z kotłownią. Rura PP 32 mm ma pojemność ok. <strong>0,38 L/mb</strong>. Przy 10 metrach (zasilanie + powrót) to dodatkowe <strong>7,6 litra</strong>, czyli tyle, co cała pętla w małej łazience. To krytyczne przy doborze <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza</a> i pompy.</p>
        </div>

        <div id="err2" class="po-error-detail">
            <h5>Analiza Inżynierska:</h5>
            <p>Rury <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">PE-RT typu II</a> bywają cieńsze od rur wielowarstwowych, co zwiększa ich średnicę wewnętrzną i objętość o ok. <strong>5–8%</strong>. Przy domu 150m2 taka różnica to nawet 10 litrów błędu w obliczeniach zładu.</p>
        </div>

        <div id="err3" class="po-error-detail">
            <h5>Analiza Inżynierska:</h5>
            <p>Jeśli instalacja pracuje na <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">glikolu</a> (np. w domkach letniskowych), pamiętaj, że ma on wyższą rozszerzalność cieplną. Wymaga to montażu <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego</a> większego o ok. <strong>20–25%</strong> w stosunku do wody.</p>
        </div>

    </div>
</div>

<script>
function toggleError(id) {
    const details = document.querySelectorAll('.po-error-detail');
    const target = document.getElementById(id);
    const isVisible = target.style.display === 'block';

    details.forEach(d => d.style.display = 'none');
    
    if (!isVisible) {
        target.style.display = 'block';
    }
}

document.addEventListener('DOMContentLoaded', function() {
    const host = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(host)) {
        const wrapper = document.getElementById('po-err-auth');
        if (wrapper) {
            wrapper.innerHTML = `<div style="padding: 40px; text-align: center; background: #fff1f2; color: #9f1239; border-radius: 20px; border: 2px dashed #f43f5e;">
                <h3 style="font-size: 24px; margin-bottom: 15px; font-weight: 900;">BŁĄD AUTORYZACJI TREŚCI</h3>
                <p>Ten ekspercki moduł edukacyjny jest własnością intelektualną <strong>Projekt-Ogrzewania.pl</strong>. Nieautoryzowane kopiowanie jest zabronione.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; margin-top:20px; background:#e11d48; color:#fff; padding:12px 25px; border-radius:8px; text-decoration:none; font-weight:bold;">ZOBACZ ORYGINAŁ</a>
            </div>`;
        }
    }
});
</script>



<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0ea5e9;
    --faq-accent-dark: #0284c7;
    --faq-accent-light: #f0f9ff;
    --faq-bg: #f8fafc;
    --faq-surface: #ffffff;
    --faq-border: #e2e8f0;
    --faq-text: #475569;
    --faq-hover: #f1f5f9;
}

.po-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--faq-primary);
}

.po-faq-header {
    text-align: center;
    margin-bottom: 40px;
    padding: 0 20px;
}

.po-faq-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
    color: var(--faq-primary);
}

.po-faq-header p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--faq-text);
    max-width: 700px;
    margin: 0 auto;
}

/* Interaktywny Moduł FAQ */
.po-faq-interactive-wrapper {
    background: var(--faq-surface);
    border: 1px solid var(--faq-border);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(14, 165, 233, 0.08);
    overflow: hidden;
}

/* Przełączniki kategorii (Filtry) */
.po-faq-filters {
    background: var(--faq-bg);
    padding: 20px 30px;
    border-bottom: 1px solid var(--faq-border);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.po-faq-filter-radio {
    display: none;
}

.po-faq-filter-label {
    padding: 10px 20px;
    background: #ffffff;
    border: 2px solid var(--faq-border);
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    color: var(--faq-text);
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    user-select: none;
}

.po-faq-filter-radio:checked + .po-faq-filter-label {
    background: var(--faq-accent-light);
    border-color: var(--faq-accent);
    color: var(--faq-accent-dark);
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.15);
}

.po-faq-filter-label svg {
    width: 16px;
    height: 16px;
    transition: transform 0.3s;
}

.po-faq-filter-radio:checked + .po-faq-filter-label svg {
    transform: scale(1.2);
}

/* Lista Akordeonów */
.po-faq-list {
    padding: 20px 30px;
}

.po-faq-item {
    border: 1px solid var(--faq-border);
    border-radius: 16px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    background: #ffffff;
    overflow: hidden;
}

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

.po-faq-item.is-hidden {
    display: none;
}

.po-faq-question {
    padding: 22px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    background: #ffffff;
    transition: background 0.2s;
}

.po-faq-question:hover {
    background: var(--faq-hover);
}

.po-faq-item.is-active {
    border-color: var(--faq-accent);
    box-shadow: 0 4px 15px rgba(14, 165, 233, 0.05);
}

.po-faq-item.is-active .po-faq-question {
    background: var(--faq-accent-light);
}

.po-faq-q-text {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    padding-right: 20px;
    line-height: 1.4;
}

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

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

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

.po-faq-item.is-active .po-faq-answer {
    opacity: 1;
}

.po-faq-answer-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--faq-text);
    border-top: 1px dashed transparent;
}

.po-faq-item.is-active .po-faq-answer-inner {
    border-top-color: var(--faq-border);
    margin-top: 5px;
    padding-top: 20px;
}

.po-faq-answer-inner p {
    margin: 0 0 15px 0;
}

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

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

.po-faq-answer-inner a:hover {
    color: var(--faq-accent);
    border-bottom-style: solid;
}

/* Stylizowany marker wiedzy w odpowiedzi */
.po-faq-insight {
    display: flex;
    gap: 12px;
    background: var(--faq-bg);
    padding: 15px;
    border-radius: 12px;
    margin-top: 15px;
    border-left: 4px solid var(--faq-accent);
}

.po-faq-insight-icon {
    font-size: 20px;
    flex-shrink: 0;
}

.po-faq-insight-text {
    font-size: 14px;
    color: var(--faq-primary);
    font-weight: 500;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .po-faq-filters { padding: 15px; }
    .po-faq-list { padding: 15px; }
    .po-faq-filter-label { padding: 8px 15px; font-size: 13px; }
    .po-faq-question { padding: 18px 20px; }
    .po-faq-answer-inner { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#faq-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "FAQ - Często zadawane pytania o zład wody w ogrzewaniu podłogowym",
    "description": "Baza wiedzy dotycząca parametrów chemicznych i hydraulicznych zładu wody. Problemy z napełnianiem, glikolem i wydajnością pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:12:58+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy napełnienie podłogówki zwykłą wodą z kranu jest bezpieczne dla instalacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, woda wodociągowa jest wysoce napowietrzona i bogata w związki wapnia oraz magnezu. Zastosowanie surowej wody z kranu skutkuje wytrącaniem się kamienia kotłowego (zmniejszenie przepływów) oraz korozją tlenową elementów mosiężnych i stalowych. Zawsze rekomenduję użycie wody zdemineralizowanej z domieszką profesjonalnego inhibitora korozji (np. Fernox lub Sentinel). Koszt chemii dla zładu rzędu 100 litrów to zaledwie 300–500 PLN, co stanowi ułamek kosztów wymiany uszkodzonego wymiennika ciepła w pompie."
        }
      },
      {
        "@type": "Question",
        "name": "Ile litrów wody 'znika' w trakcie pierwszego uruchomienia i odpowietrzania układu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Podczas pierwszego tłoczenia płynu, instalację napełnia się zazwyczaj do osiągnięcia ciśnienia na poziomie 1,5–2,0 bar. Jednakże pętle podłogowe zawierają ogromne ilości mikropęcherzyków powietrza. W procesie wielokrotnego przepłukiwania pętli i działania odpowietrzników automatycznych na rozdzielaczu, ciśnienie drastycznie spada. Z reguły instalator musi dolać (uzupełnić) od 2 do nawet 5 litrów wody w ciągu pierwszych dwóch tygodni rozruchu."
        }
      },
      {
        "@type": "Question",
        "name": "Jak precyzyjnie sprawdzić, czy zład wody w podłogówce wystarczy do odszraniania pompy ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Kluczem jest karta katalogowa urządzenia. W dokumentacji technicznej producent (DTR) zawsze określa minimalny zład roboczy, zazwyczaj w przedziale 10-15 litrów na każdy 1 kW mocy cieplnej. Jeśli z precyzyjnych obliczeń wynika, że Twoje pętle grzewcze i przyłącza mieszją łącznie np. 80 litrów, a Twoja pompa 9 kW wymaga minimum 110 litrów do bezpiecznego defrostu, absolutnie konieczny staje się montaż zasobnika buforowego (np. 50L) pełniącego funkcję sprzęgła hydraulicznego na powrocie."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy zastosowaniu glikolu w domku letniskowym objętość zładu oblicza się inaczej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sama pojemność geometryczna rur (w litrach) pozostaje taka sama, jednak płyny niezamarzające na bazie glikolu propylenowego charakteryzują się zupełnie innymi parametrami termodynamicznymi. Glikol jest bardziej lepki, ma niższą pojemność cieplną i wyższą rozszerzalność objętościową niż woda. Z inżynieryjnego punktu widzenia oznacza to konieczność przeprojektowania krzywych przepływu dla pomp obiegowych oraz – co najważniejsze – dobrania naczynia wzbiorczego o pojemności większej o około 20-25% w porównaniu do standardowej instalacji wodnej."
        }
      },
      {
        "@type": "Question",
        "name": "Co się dzieje, gdy wykonawca 'dla pewności' zastosuje wszędzie rury o średnicy 20 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przewymiarowanie średnic (stosowanie PEX 20 mm w standardowych strefach zamiast 16 mm) to ogromny błąd, drastycznie zawyżający zład układu – niemal go podwajając (z 0,113 L/mb na 0,201 L/mb). Powoduje to ogromną bezwładność termiczną; podłoga będzie reagowała na zmiany zadanej temperatury przez wiele godzin. Taki układ całkowicie burzy precyzję sterowania pogodowego i wymusza stosowanie nieproporcjonalnie dużych naczyń przeponowych oraz drogich, przemysłowych pomp obiegowych w niewielkim budynku."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-faq",
    "name": "Problemy eksploatacyjne i fizyka płynów instalacyjnych",
    "description": "Zbiór danych jakościowych i ilościowych dotyczących wpływu chemii instalacyjnej oraz geometrii układu na trwałość armatury.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy można napełnić podłogówkę wodą z kranu",
      "odpowietrzanie ogrzewania podłogowego ubytek wody",
      "minimalny zład do odszraniania pompy ciepła",
      "zastosowanie glikolu w podłogówce",
      "skutki przewymiarowania rur podłogowych"
    ],
    "measurementTechnique": "Wiedza ekspercka oparta na diagnozie usterek oraz analizie norm technicznych producentów pomp ciepła.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Wymagany naddatek naczynia dla glikolu",
        "value": "+20 do +25",
        "unitText": "%"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#faq-explorer",
    "name": "Eksplorator Bazy Wiedzy (FAQ) o Zładzie Wodnym",
    "description": "Interaktywny panel ułatwiający filtrowanie i przeglądanie eksperckich odpowiedzi na złożone zagadnienia hydrauliczne w podłogówce.",
    "applicationCategory": "Baza Wiedzy / FAQ Explorer",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
        "@type": "Person",
        "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-faq-container" id="po-faq-auth">
    
    <div class="po-faq-header">
        <h2>FAQ &#8211; Eksperckie odpowiedzi na trudne pytania</h2>
        <p>Precyzyjne zaplanowanie zładu to dopiero początek. W trakcie <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próby szczelności</a> i pierwszego rozruchu instalacji, inwestorzy zadają mi dziesiątki pytań. Oto 5 kluczowych zagadnień, których znajomość ratuje przed kosztownymi awariami.</p>
    </div>

    <div class="po-faq-interactive-wrapper">
        
        <div class="po-faq-filters">
            <input type="radio" name="faq_filter" id="filter_all" value="all" class="po-faq-filter-radio" checked>
            <label for="filter_all" class="po-faq-filter-label">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16M4 12h16M4 18h16"/></svg>
                Wszystkie pytania
            </label>

            <input type="radio" name="faq_filter" id="filter_chemia" value="chemia" class="po-faq-filter-radio">
            <label for="filter_chemia" class="po-faq-filter-label">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 16v-8l-2 2m4 0-2-2"/></svg>
                Jakość płynu (Chemia)
            </label>

            <input type="radio" name="faq_filter" id="filter_pompa" value="pompa" class="po-faq-filter-radio">
            <label for="filter_pompa" class="po-faq-filter-label">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                Pompy Ciepła i Hydraulika
            </label>
        </div>

        <div class="po-faq-list">
            
            <div class="po-faq-item" data-category="chemia">
                <div class="po-faq-question">
                    <span class="po-faq-q-text">Czy napełnienie podłogówki zwykłą wodą z kranu jest bezpieczne dla instalacji?</span>
                    <div class="po-faq-icon-toggle">
                        <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
                    </div>
                </div>
                <div class="po-faq-answer">
                    <div class="po-faq-answer-inner">
                        <p><strong>Zdecydowanie nie.</strong> Woda wodociągowa (&#8222;kranówka&#8221;) jest wysoce napowietrzona i bogata w jony wapnia, magnezu oraz chlorki. Wprowadzenie jej do nowoczesnego systemu, pełnego mosiężnych rozdzielaczy i stalowych wymienników, inicjuje błyskawiczny proces korozji tlenowej i wytrącania się kamienia kotłowego.</p>
                        <p>Osadzający się kamień potrafi w ciągu dwóch sezonów drastycznie zawęzić przekroje zaworów i rotametrów, dławiąc przepływy. Jako ekspert, zawsze rekomenduję napełnianie zładu wyłącznie <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">wodą zdemineralizowaną wzbogaconą o inhibitor korozji</a>. Koszt profesjonalnej chemii (np. Fernox lub Sentinel) dla przeciętnego domu to wydatek rzędu 300–500 PLN. To zaledwie ułamek kwoty, jaką zapłacisz za wymianę uszkodzonego wymiennika płytowego w pompie ciepła.</p>
                    </div>
                </div>
            </div>

            <div class="po-faq-item" data-category="pompa">
                <div class="po-faq-question">
                    <span class="po-faq-q-text">Ile litrów wody &#8222;znika&#8221; w trakcie pierwszego uruchomienia i odpowietrzania układu?</span>
                    <div class="po-faq-icon-toggle">
                        <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
                    </div>
                </div>
                <div class="po-faq-answer">
                    <div class="po-faq-answer-inner">
                        <p>Fizycznie woda nie &#8222;znika&#8221;, ale ustępuje miejsca usuwanemu powietrzu. Instalację płaszczyznową standardowo nabija się do ciśnienia statycznego 1,5–2,0 bar. Jednakże nowo zalane pętle, z racji swojej struktury (wiele zakrętów), magazynują ogromne ilości uwięzionych mikropęcherzyków powietrza.</p>
                        <p>Kiedy uruchamiamy pompy obiegowe i otwieramy <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">odpowietrzniki na rozdzielaczach</a>, pęcherze są wypychane na zewnątrz, a ciśnienie w manometrze spada. W ciągu pierwszych dwóch tygodni wygrzewania wylewek normą jest konieczność dopuszczenia (dolania) od <strong>2 do nawet 5 litrów</strong> nowego płynu instalacyjnego, aby ustabilizować parametry robocze.</p>
                    </div>
                </div>
            </div>

            <div class="po-faq-item" data-category="pompa">
                <div class="po-faq-question">
                    <span class="po-faq-q-text">Jak precyzyjnie sprawdzić, czy zład wody w podłogówce wystarczy do odszraniania pompy ciepła?</span>
                    <div class="po-faq-icon-toggle">
                        <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
                    </div>
                </div>
                <div class="po-faq-answer">
                    <div class="po-faq-answer-inner">
                        <p>Głównym punktem odniesienia jest zawsze DTR (Dokumentacja Techniczno-Ruchowa) producenta Twojego urządzenia. Odszukaj parametr &#8222;minimalny zład wody&#8221;. Większość producentów opiera się na normatywnym przeliczniku od <strong>10 do 15 litrów pojemności na każdy 1 kW</strong> mocy nominalnej kompresora.</p>
                        <p>Jeśli <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">ogrzewanie podłogowe jest jedynym źródłem ciepła</a>, a Twój obliczony z pętli zład to 80 litrów, natomiast wytyczne dla Twojej pompy 9 kW wymagają min. 110 litrów do bezpiecznego &#8222;defrostu&#8221; – instalacja w takim stanie stwarza ryzyko awarii. Bezwzględnie musisz zaprojektować dodatkowy bufor wpinany szeregowo na powrocie (tzw. sprzęgło hydrauliczne) by zwiększyć masę akumulacyjną zładu.</p>
                    </div>
                </div>
            </div>

            <div class="po-faq-item" data-category="chemia">
                <div class="po-faq-question">
                    <span class="po-faq-q-text">Czy przy zastosowaniu glikolu w domku letniskowym objętość zładu oblicza się inaczej?</span>
                    <div class="po-faq-icon-toggle">
                        <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
                    </div>
                </div>
                <div class="po-faq-answer">
                    <div class="po-faq-answer-inner">
                        <p>Objętość geometryczna w rurach mierzona w litrach nie ulega zmianie, ale zastosowanie <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">roztworu glikolu</a> wywraca do góry nogami zasady doboru osprzętu wokół tego zładu.</p>
                        <p>Glikol ma niższą pojemność cieplną od wody (gorzej przenosi energię) i jest znacznie bardziej lepki, co wymusza przewymiarowanie pomp obiegowych. Co gorsza, ma <strong>wyższą rozszerzalność objętościową</strong> pod wpływem temperatury. Pamiętaj, że zład rzędu 150 litrów oparty o glikol będzie wymagał naczynia wzbiorczego (przeponowego) o pojemności całkowitej średnio <strong>o 20 do 25% większej</strong>, niż w przypadku instalacji napełnionej standardowo wodą demineralizowaną.</p>
                    </div>
                </div>
            </div>

            <div class="po-faq-item" data-category="pompa">
                <div class="po-faq-question">
                    <span class="po-faq-q-text">Co się dzieje, gdy instalator &#8222;na oko&#8221; przewymiaruje średnice rur (np. 20 mm wszędzie)?</span>
                    <div class="po-faq-icon-toggle">
                        <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
                    </div>
                </div>
                <div class="po-faq-answer">
                    <div class="po-faq-answer-inner">
                        <p>To niestety spotykana &#8222;partyzantka&#8221; na budowach. Zmiana rury z 16 mm na 20 mm w strefach, które tego nie wymagają, drastycznie zawyża całkowity zład instalacji. Z 0,113 L/mb skaczemy nagle na 0,201 L/mb w każdej pętli.</p>
                        <div class="po-faq-insight">
                            <span class="po-faq-insight-icon">⚠️</span>
                            <span class="po-faq-insight-text">
                                Gigantyczna masa zładu powoduje ekstremalną bezwładność termiczną. Podłoga reaguje na zmianę nastaw w termostacie z kilkunastogodzinnym opóźnieniem. Taka ociężała instalacja całkowicie zaburza optymalizację krzywej grzewczej sterowania pogodowego i wymusza na inwestorze zakup przewymiarowanych naczyń wzbiorczych.
                            </span>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const hostname = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(hostname)) {
        const wrap = document.getElementById('po-faq-auth');
        if (wrap) {
            wrap.innerHTML = `<div style="padding: 40px; text-align: center; background: #fff1f2; color: #9f1239; border-radius: 20px; border: 2px dashed #f43f5e;">
                <div style="font-size: 22px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Prawa Autorskie Zastrzeżone</div>
                <p style="font-size: 16px; line-height: 1.6; margin-bottom: 20px;">Ten interaktywny moduł FAQ jest własnością <strong>Projekt-Ogrzewania.pl</strong>. Użycie na obcej domenie jest nielegalne.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; padding:10px 25px; background:#e11d48; color:#fff; border-radius:8px; text-decoration:none; font-weight:800;">Wróć do źródła</a>
            </div>`;
        }
        return;
    }

    // --- LOGIKA AKORDEONÓW (FAQ) ---
    const faqItems = document.querySelectorAll('.po-faq-item');
    
    faqItems.forEach(item => {
        const question = item.querySelector('.po-faq-question');
        const answer = item.querySelector('.po-faq-answer');
        
        question.addEventListener('click', () => {
            const isActive = item.classList.contains('is-active');
            
            // Zamknij wszystkie pozostałe
            faqItems.forEach(otherItem => {
                if(otherItem !== item && otherItem.classList.contains('is-active')) {
                    otherItem.classList.remove('is-active');
                    otherItem.querySelector('.po-faq-answer').style.maxHeight = null;
                }
            });
            
            // Otwórz / Zamknij kliknięty
            if (!isActive) {
                item.classList.add('is-active');
                answer.style.maxHeight = answer.scrollHeight + 50 + "px"; // + buffer
            } else {
                item.classList.remove('is-active');
                answer.style.maxHeight = null;
            }
        });
    });

    // --- LOGIKA FILTRÓW (WEB APPLICATION) ---
    const filters = document.querySelectorAll('.po-faq-filter-radio');
    
    filters.forEach(filter => {
        filter.addEventListener('change', (e) => {
            const val = e.target.value;
            
            faqItems.forEach(item => {
                // reset state
                item.classList.remove('is-active');
                item.querySelector('.po-faq-answer').style.maxHeight = null;

                if (val === 'all') {
                    item.classList.remove('is-hidden');
                } else {
                    if (item.getAttribute('data-category') === val) {
                        item.classList.remove('is-hidden');
                    } else {
                        item.classList.add('is-hidden');
                    }
                }
            });
        });
    });
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #0ea5e9;
    --cs-pipe20: #ef4444; /* Czerwony dla błędu/przewymiarowania */
    --cs-pipe16: #0ea5e9; /* Niebieski dla optymalnej 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(14, 165, 233, 0.25) 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: #bae6fd;
    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(14, 165, 233, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #0c4a6e;
    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: #0c4a6e;
}

/* ================= 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.pipe20.active {
    border-color: var(--cs-pipe20);
    background: #fef2f2;
    box-shadow: 0 10px 25px rgba(239, 68, 68, 0.15);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.pipe16.active {
    border-color: var(--cs-pipe16);
    background: #f0f9ff;
    box-shadow: 0 10px 25px rgba(14, 165, 233, 0.15);
    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;
}

.cs-split-card.pipe20 .cs-card-solution { color: #991b1b; }
.cs-split-card.pipe16 .cs-card-solution { color: #075985; }

.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-zlad">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Panel Studium Przypadku: Optymalizacja Zładu Wody",
        "description": "Interaktywny moduł edukacyjny prezentujący wyzwania inżynierskie i proces decyzyjny przy doborze średnicy rur w kontekście całkowitej pojemności wodnej systemu.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#case-study",
        "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 błędu przewymiarowania rur (20mm)",
          "Optymalizacja zładu dla rury 16mm",
          "Analiza wpływu zładu na koszty osprzętu kotłowni"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry Projektowe OZC - Dom Inwestora (Poznań)",
        "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji zładu wody ogrzewania podłogowego.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Inwestor",
            "value": "Jakub"
          },
          {
            "@type": "PropertyValue",
            "name": "Powierzchnia budynku",
            "value": "160 m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Źródło ciepła",
            "value": "Pompa Ciepła"
          },
          {
            "@type": "PropertyValue",
            "name": "Lokalizacja",
            "value": "Poznań"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Article",
        "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#case-study-article",
        "mainEntityOfPage": {
          "@type": "WebPage",
          "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
        },
        "headline": "Case Study: Optymalizacja zładu wody u Inwestora (Poznań)",
        "description": "Analiza przypadku błędnie założonych średnic rur ogrzewania podłogowego i ich wpływu na drastyczny przyrost objętości instalacji.",
        "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/"
        },
        "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-02-08T08:00:00+01:00",
        "dateModified": "2026-05-04T12:45:00+02:00"
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Projekt w praktyce</div>
        <h2>Optymalizacja zładu wody u Inwestora</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Inwestor</span>
                <span class="cs-stat-value">Jakub</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Poznań</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Powierzchnia</span>
                <span class="cs-stat-value">160 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Źródło ciepła</span>
                <span class="cs-stat-value">Pompa Ciepła</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Podczas konsultacji systemu grzewczego dla nowo budowanego domu Pana Jakuba w Poznaniu, natrafiliśmy na klasyczny przypadek &#8222;wykonawstwa na oko&#8221;. Lokalny instalator zaproponował ułożenie w całym domu <strong>rury o średnicy 20 mm</strong> w stałym rozstawie co 10 cm, ignorując całkowicie fizyczne konsekwencje, jakie niesie za sobą tak radykalne powiększenie pojemności wodnej układu.</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 zrewidował główny projektant <strong>Robert Kucharski</strong>. Przeliczenie rzeczywistego zładu ujawniło ukryte koszty, przed którymi musieliśmy uchronić inwestora:</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card pipe20 active" id="cs-btn-pipe20">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🛑</span>
                    <h3 class="cs-card-title">Rura 20 mm (Wizja Wykonawcy)</h3>
                </div>
                <p class="cs-card-desc">Gigantyczny zład wody (ponad 260 litrów w samej wylewce). Ogromna bezwładność cieplna powoduje brak precyzji w sterowaniu pokojowym. Układ stawia potężne wymagania armaturze.</p>
                <div class="cs-card-solution">
                    <strong>Diagnoza:</strong> Odrzucenie projektu. Zbyt duży zład wymusiłby montaż naczynia wzbiorczego o pojemności aż 35L oraz ciągły zakup 3 butelek drogiego inhibitora korozji. Wymagana byłaby również znacznie mocniejsza pompa obiegowa.
                </div>
            </div>

            <div class="cs-split-card pipe16" id="cs-btn-pipe16">
                <div class="cs-card-header">
                    <span class="cs-card-icon">✅</span>
                    <h3 class="cs-card-title">Rura 16 mm (Projekt Inżynierski)</h3>
                </div>
                <p class="cs-card-desc">Optymalny zład wody (ok. 135 litrów). Stanowi idealny balans między masą zładu potrzebną pompie ciepła do bezawaryjnego odszraniania (defrostu), a pożądaną dynamiką nagrzewania.</p>
                <div class="cs-card-solution">
                    <strong>Wdrożenie:</strong> Instalacja wykonana na rurze 16&#215;2.0. Mniejsze opory miejscowe rur, szybsza reakcja podłogi na zmiany z termostatów. Oszczędność inwestora na samym osprzęcie kotłowni (naczynia, pompy, chemia) wyniosła niemal 2500 PLN.
                </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-zlad');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px dashed #ef4444;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione Licencją</h3>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten interaktywny panel edukacyjny 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 cardPipe20 = document.getElementById('cs-btn-pipe20');
    const cardPipe16 = document.getElementById('cs-btn-pipe16');

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

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



<style>
:root {
    --quote-primary: #0f172a;
    --quote-accent: #0ea5e9;
    --quote-accent-dark: #0284c7;
    --quote-bg: #f8fafc;
    --quote-surface: #ffffff;
    --quote-border: #e2e8f0;
}

.expert-tip-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.expert-tip-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.expert-tip-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--quote-primary);
    margin: 0;
    letter-spacing: -0.5px;
}

.expert-tip-header svg {
    color: var(--quote-accent);
    animation: pulse-icon 2s infinite;
}

@keyframes pulse-icon {
    0% { transform: scale(1); }
    50% { transform: scale(1.15); }
    100% { transform: scale(1); }
}

.expert-tip-container {
    background: var(--quote-surface);
    border-radius: 24px;
    padding: 40px;
    display: flex;
    gap: 35px;
    align-items: center;
    border: 1px solid var(--quote-border);
    box-shadow: 0 15px 35px -10px rgba(14, 165, 233, 0.08);
    position: relative;
    text-align: left;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
}

/* Interaktywny pasek akcentujący na hover */
.expert-tip-container::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 6px;
    background: linear-gradient(to bottom, var(--quote-accent), var(--quote-accent-dark));
    transition: width 0.3s ease;
}

.expert-tip-container:hover {
    transform: translateY(-5px);
    box-shadow: 0 25px 40px -12px rgba(14, 165, 233, 0.15);
}

.expert-tip-container:hover::before {
    width: 10px;
}

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

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid var(--quote-bg);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transition: transform 0.5s ease;
}

.expert-tip-container:hover .expert-tip-photo {
    transform: rotate(-3deg) scale(1.05);
}

/* Animowany Badge inżynierski */
.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    border: 1px solid var(--quote-border);
}

.expert-tip-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

/* Cudzysłów tła */
.expert-tip-content::before {
    content: '"';
    position: absolute;
    top: -40px;
    left: -20px;
    font-size: 120px;
    color: var(--quote-bg);
    font-family: serif;
    z-index: -1;
    line-height: 1;
    opacity: 0.7;
}

.expert-tip-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 800;
    color: var(--quote-accent-dark);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 20px;
}

.expert-tip-text {
    font-size: 18px;
    line-height: 1.7;
    color: var(--quote-primary);
    font-style: italic;
    font-weight: 500;
    margin: 0;
}

.expert-tip-text strong {
    color: var(--quote-accent-dark);
    font-weight: 900;
}

.expert-tip-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed var(--quote-border);
}

.expert-tip-signature {
    display: flex;
    flex-direction: column;
}

.expert-tip-name {
    font-size: 16px;
    font-weight: 900;
    color: var(--quote-primary);
}

.expert-tip-role {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

/* Interaktywny przycisk kopiowania */
.expert-copy-btn {
    background: transparent;
    border: 1px solid var(--quote-border);
    color: #64748b;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s;
}

.expert-copy-btn:hover {
    background: var(--quote-bg);
    color: var(--quote-accent-dark);
    border-color: #bae6fd;
}

.expert-copy-btn.copied {
    background: #ecfdf5;
    color: #10b981;
    border-color: #10b981;
}

@media (max-width: 768px) {
    .expert-tip-container {
        flex-direction: column;
        text-align: center;
        padding: 30px 25px;
        gap: 20px;
    }
    .expert-tip-content::before {
        left: 50%;
        transform: translateX(-50%);
    }
    .expert-tip-footer {
        flex-direction: column;
        gap: 15px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#quote-section",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Ekspercka wskazówka: Znaczenie zładu wody w ogrzewaniu podłogowym",
    "description": "Podsumowujący cytat eksperta branży HVAC, Roberta Kucharskiego, na temat kluczowej roli precyzyjnych obliczeń zładu wody w zapobieganiu awariom.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:35:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Zbyt często widzę na budowach przewymiarowane rury lub całkowicie pominięte obliczenia zładu. Instalatorzy zgadują, ile wody jest w układzie. Konsekwencje? Taktujące pompy ciepła, które nie mają z czego pobrać energii do defrostu, i pękające zawory bezpieczeństwa przez zbyt małe naczynia wzbiorcze. Precyzyjna wiedza o tym, ile wody potrzeba do wypełnienia instalacji podłogówki, to fundament, na którym opiera się bezpieczeństwo całej kotłowni.",
    "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",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-quote",
    "name": "Konsekwencje błędów projektowych w zładzie wody",
    "description": "Zestawienie analityczne skutków ignorowania precyzyjnych obliczeń hydraulicznych w systemach z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody w podłogówce",
      "obliczanie pojemności instalacji",
      "błędy instalatorów podłogówka",
      "pojemność rur ogrzewania",
      "Robert Kucharski ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Ekspertyza terenowa, analiza awaryjności systemów grzewczych wynikających z błędów wykonawczych i projektowych.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Skutek zbyt małego zładu",
        "value": "Taktowanie pompy ciepła i brak energii na defrost"
      },
      {
        "@type": "PropertyValue",
        "name": "Skutek nieoszacowania rozszerzalności",
        "value": "Awaria naczynia wzbiorczego i zrzut ciśnienia przez zawór bezpieczeństwa"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#quote-widget",
    "name": "Moduł Interaktywnego Cytatu Eksperckiego",
    "description": "Interaktywny komponent interfejsu użytkownika (UI) z systemem zabezpieczeń domeny oraz funkcją natychmiastowego kopiowania rekomendacji inżynierskiej do schowka.",
    "applicationCategory": "UI Component",
    "operatingSystem": "Web Browser",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <div class="expert-tip-header">
        <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"/></svg>
        <h2>Inżynierskie podsumowanie tematu</h2>
    </div>
    
    <div class="expert-tip-container" id="expert-tip-water">
        <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 - Ekspert HVAC" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>
                Budowa bez ściemy
            </span>
            <p class="expert-tip-text" id="quoteTextToCopy">
                &#8222;Zbyt często widzę na budowach przewymiarowane rury lub całkowicie pominięte obliczenia zładu. Instalatorzy zgadują, ile wody jest w układzie. Konsekwencje? Taktujące pompy ciepła, które nie mają z czego pobrać energii do defrostu, i pękające zawory bezpieczeństwa przez zbyt małe naczynia wzbiorcze. Precyzyjna wiedza o tym, <strong>ile wody potrzeba do wypełnienia instalacji podłogówki</strong>, to fundament, na którym opiera się bezpieczeństwo całej kotłowni.&#8221;
            </p>
            
            <div class="expert-tip-footer">
                <div class="expert-tip-signature">
                    <span class="expert-tip-name">Robert Kucharski</span>
                    <span class="expert-tip-role">CEO &#038; Główny Projektant Projekt-Ogrzewania.pl</span>
                </div>
                
                <button class="expert-copy-btn" id="btnCopyQuote">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
                    Skopiuj cytat
                </button>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 25px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 15px; font-weight: 800; color: #0f172a; margin-bottom: 10px;">Podsumowanie Roberta Kucharskiego:</p>
            <p style="font-size: 15px; color: #475569; line-height: 1.6; margin:0;">Zbyt często widzę na budowach przewymiarowane rury lub całkowicie pominięte obliczenia zładu. Konsekwencje? Taktujące pompy ciepła i pękające zawory bezpieczeństwa przez zbyt małe naczynia wzbiorcze. Precyzyjna wiedza o ilości wody to fundament bezpieczeństwa kotłowni.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    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-water');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fff1f2; color: #9f1239; border-radius: 20px; width: 100%; border: 2px dashed #f43f5e;">
                    <span style="font-size: 32px; display:block; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform:uppercase;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 15px; color: #881337;">Rekomendacja inż. Roberta Kucharskiego jest własnością Projekt-Ogrzewania.pl. Użycie nieautoryzowane.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
            container.style.boxShadow = 'none';
        }
        return;
    }

    // --- INTERAKCJA: KOPIOWANIE CYTATU ---
    const copyBtn = document.getElementById('btnCopyQuote');
    const quoteText = document.getElementById('quoteTextToCopy');

    if (copyBtn && quoteText) {
        copyBtn.addEventListener('click', function() {
            // Oczyszczamy tekst z tagów HTML (np. <strong>)
            const plainText = quoteText.innerText || quoteText.textContent;
            const fullQuote = plainText + " — Robert Kucharski, Projekt-Ogrzewania.pl";

            navigator.clipboard.writeText(fullQuote).then(function() {
                // Sukces
                const originalHtml = copyBtn.innerHTML;
                copyBtn.classList.add('copied');
                copyBtn.innerHTML = `<svg width="16" height="16" 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> Skopiowano!`;
                
                setTimeout(function() {
                    copyBtn.classList.remove('copied');
                    copyBtn.innerHTML = originalHtml;
                }, 3000);
            }).catch(function(err) {
                console.error('Błąd kopiowania: ', err);
            });
        });
    }
});
</script>



<style>
:root {
    --sum-primary: #0f172a;
    --sum-blue: #0ea5e9;
    --sum-blue-dark: #0284c7;
    --sum-bg: #f8fafc;
    --sum-surface: #ffffff;
    --sum-border: #e2e8f0;
    --sum-text: #475569;
    --sum-success: #10b981;
    --sum-warning: #f59e0b;
    --sum-danger: #ef4444;
}

.po-summary-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--sum-primary);
}

/* Wprowadzenie do podsumowania */
.po-summary-header {
    text-align: center;
    margin-bottom: 40px;
    padding: 0 20px;
}

.po-summary-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
    color: var(--sum-primary);
}

.po-summary-header p {
    font-size: 18px;
    line-height: 1.7;
    color: var(--sum-text);
    max-width: 750px;
    margin: 0 auto;
}

/* Interaktywny Dashboard Podsumowujący */
.po-dashboard-wrapper {
    background: var(--sum-surface);
    border: 1px solid var(--sum-border);
    border-radius: 24px;
    padding: 40px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.08);
    margin-bottom: 40px;
}

.po-dashboard-title {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 30px;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--sum-primary);
}

.po-dashboard-title svg {
    color: var(--sum-blue);
}

.po-dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 40px;
}

/* Sekcja Kontrolek (Lewa) */
.po-dash-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    background: var(--sum-bg);
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--sum-border);
}

.po-dash-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.po-dash-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--sum-text);
}

.po-dash-val {
    color: var(--sum-blue-dark);
    font-weight: 900;
    font-size: 16px;
}

input[type=range].po-dash-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].po-dash-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
}

input[type=range].po-dash-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--sum-blue);
    cursor: pointer;
    margin-top: -8px;
    box-shadow: 0 3px 8px rgba(14, 165, 233, 0.4);
    transition: transform 0.1s;
}

input[type=range].po-dash-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Sekcja Wyników (Prawa) - KPI Cards */
.po-dash-results {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.po-kpi-card {
    background: #ffffff;
    border: 2px solid var(--sum-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.po-kpi-card.active-safe { border-color: var(--sum-success); background: #ecfdf5; }
.po-kpi-card.active-warn { border-color: var(--sum-danger); background: #fef2f2; }

.po-kpi-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--sum-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    color: var(--sum-blue);
}

.po-kpi-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--sum-primary);
    line-height: 1.1;
    margin-bottom: 5px;
    transition: transform 0.2s;
}

.po-kpi-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--sum-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* SVG Animations inside KPI */
@keyframes spinSlow { 100% { transform: rotate(360deg); } }
.anim-spin-slow { animation: spinSlow 8s linear infinite; }

@keyframes floatDrop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.anim-float { animation: floatDrop 3s ease-in-out infinite; }

/* CTA Ostateczne */
.po-final-cta {
    background: linear-gradient(135deg, var(--sum-primary), #1e293b);
    border-radius: 20px;
    padding: 50px;
    text-align: center;
    color: #ffffff;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.4);
    position: relative;
    overflow: hidden;
}

.po-final-cta::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.25) 0%, transparent 70%);
    border-radius: 50%;
}

.po-final-cta h3 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    position: relative;
    z-index: 1;
}

.po-final-cta p {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0 auto 35px auto;
    max-width: 650px;
    position: relative;
    z-index: 1;
}

.po-final-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--sum-blue);
    color: #ffffff;
    padding: 18px 40px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.5);
    position: relative;
    z-index: 1;
}

.po-final-cta-btn:hover {
    background: var(--sum-blue-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.6);
}

@media (max-width: 900px) {
    .po-dashboard-grid { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 600px) {
    .po-dash-results { grid-template-columns: 1fr; }
    .po-dashboard-wrapper, .po-final-cta { padding: 25px; }
    .po-summary-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#podsumowanie-zladu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Podsumowanie: Dlaczego warto znać pojemność instalacji?",
    "description": "Kompleksowe podsumowanie wpływu zładu wody na parametry pracy pompy ciepła, dobór naczynia wzbiorczego i ilość inhibitora. Interaktywny dashboard inżynierski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:19:14+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-podsumowanie",
    "name": "Kluczowe wskaźniki dla instalacji płaszczyznowych (KPI)",
    "description": "Synteza parametrów OZC, DTR pomp ciepła i norm hydraulicznych (PN-EN 14511, PN-B-02414).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie zładu wody",
      "kalkulator całkowity podłogówki",
      "dobór naczynia wzbiorczego",
      "inhibitor korozji dawkowanie",
      "pojemność instalacji c.o."
    ],
    "measurementTechnique": "Synteza wieloparametrowa uwzględniająca pole przekroju rur, rozstaw układania, rezerwy technologiczne na osprzęt oraz współczynnik rozszerzalności cieplnej.",
    "mainEntity": [
      {
        "@type": "PropertyValue",
        "name": "Rekomendowane dawkowanie inhibitora",
        "value": "1",
        "unitText": "opakowanie (500ml) / 100 L"
      },
      {
        "@type": "PropertyValue",
        "name": "Użyteczność naczynia wzbiorczego",
        "value": "40-50",
        "unitText": "% objętości nominalnej"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#app-dashboard",
    "name": "Dashboard Inżynierski: Weryfikacja Instalacji",
    "description": "Interaktywne narzędzie podsumowujące parametry hydrauliczne i chemiczne systemu. Generuje wytyczne doboru naczynia, bufora i chemii.",
    "applicationCategory": "Kalkulator Inżynieryjny",
    "operatingSystem": "Web",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
        "@type": "Person",
        "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="po-summary-container" id="po-summary-auth">
    
    <div class="po-summary-header">
        <h2>Podsumowanie: Dlaczego warto znać pojemność instalacji?</h2>
        <p>Znajomość dokładnej <strong>ilości wody w podłogówce</strong> pozwala zoptymalizować koszty eksploatacji, prawidłowo dobrać pompę obiegową i uniknąć awarii spowodowanych błędnym doborem naczynia przeponowego. Matematyka w inżynierii HVAC nie wybacza błędów – buduj bez ściemy.</p>
    </div>

    <div class="po-dashboard-wrapper">
        <div class="po-dashboard-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><path d="M3 9h18M9 21V9"/></svg>
            Inżynierski Panel Kontrolny Systemu
        </div>

        <div class="po-dashboard-grid">
            
            <div class="po-dash-controls">
                <div class="po-dash-group">
                    <div class="po-dash-label">
                        <span>Powierzchnia (m²):</span>
                        <span class="po-dash-val" id="sumValArea">150</span>
                    </div>
                    <input type="range" class="po-dash-slider" id="sumArea" min="50" max="300" step="5" value="150">
                </div>

                <div class="po-dash-group" style="margin-top: 10px;">
                    <div class="po-dash-label">
                        <span>Średnica Rury:</span>
                        <span class="po-dash-val" id="sumValPipe">16&#215;2.0</span>
                    </div>
                    <input type="range" class="po-dash-slider" id="sumPipe" min="0" max="1" step="1" value="0">
                    <div style="display:flex; justify-content:space-between; font-size:11px; color:#94a3b8; font-weight:700; margin-top:5px;">
                        <span>PEX 16mm (co 10cm)</span>
                        <span>PEX 20mm (co 15cm)</span>
                    </div>
                </div>

                <div class="po-dash-group" style="margin-top: 10px;">
                    <div class="po-dash-label">
                        <span>Moc Źródła (kW):</span>
                        <span class="po-dash-val" id="sumValPower">9</span>
                    </div>
                    <input type="range" class="po-dash-slider" id="sumPower" min="5" max="20" step="1" value="9">
                </div>
            </div>

            <div class="po-dash-results">
                
                <div class="po-kpi-card">
                    <div class="po-kpi-icon">
                        <svg class="anim-float" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"/></svg>
                    </div>
                    <div class="po-kpi-val" id="kpiTotal">187 L</div>
                    <div class="po-kpi-label">Całkowity Zład Wody</div>
                </div>

                <div class="po-kpi-card">
                    <div class="po-kpi-icon" style="color: var(--sum-success);">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/></svg>
                    </div>
                    <div class="po-kpi-val" id="kpiInhibitor">2 szt.</div>
                    <div class="po-kpi-label">Inhibitor (500ml)</div>
                </div>

                <div class="po-kpi-card">
                    <div class="po-kpi-icon" style="color: var(--sum-primary);">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"/><path d="M4 12h16"/><path d="M12 2v20"/></svg>
                    </div>
                    <div class="po-kpi-val" id="kpiVessel">10 L</div>
                    <div class="po-kpi-label">Min. Naczynie Wzbiorcze</div>
                </div>

                <div class="po-kpi-card" id="kpiBufferCard">
                    <div class="po-kpi-icon" id="kpiBufferIcon">
                        <svg class="anim-spin-slow" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                    </div>
                    <div class="po-kpi-val" id="kpiBuffer">OK</div>
                    <div class="po-kpi-label" id="kpiBufferLabel">Status Defrostu</div>
                </div>

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

    <div class="po-final-cta">
        <h3>Nie zostawiaj projektu przypadkowi</h3>
        <p>Powyższy symulator to doskonałe narzędzie do weryfikacji, ale dom to zbiór dziesiątek indywidualnych zmiennych (OZC, rozstawy mieszane, strefy brzegowe). Pamiętaj, że precyzyjne dane techniczne gwarantują brak awarii w przyszłości.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="po-final-cta-btn">
            Przeczytaj pozostałe nasze poradniki
            <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() {
    // --- OCHRONA KODU ---
    const allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedHosts.includes(window.location.hostname)) {
        const wrap = document.getElementById('po-summary-auth');
        if (wrap) {
            wrap.innerHTML = `<div style="padding: 40px; text-align: center; background: #fff1f2; color: #9f1239; border-radius: 20px; border: 2px dashed #f43f5e;">
                <h3 style="font-size: 24px; margin: 0 0 15px 0;">Moduł Chroniony Licencją</h3>
                <p style="font-size: 16px; margin-bottom: 25px;">Ten dashboard jest autorskim narzędziem serwisu Projekt-Ogrzewania.pl. Osadzenie zablokowane.</p>
                <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; padding:12px 25px; background:#e11d48; color:#fff; border-radius:8px; text-decoration:none; font-weight:800;">Wróć do źródła</a>
            </div>`;
        }
        return;
    }

    // --- LOGIKA DASHBOARDU ---
    const sArea = document.getElementById('sumArea');
    const sPipe = document.getElementById('sumPipe');
    const sPower = document.getElementById('sumPower');
    
    const vArea = document.getElementById('sumValArea');
    const vPipe = document.getElementById('sumValPipe');
    const vPower = document.getElementById('sumValPower');

    const kTotal = document.getElementById('kpiTotal');
    const kInhibitor = document.getElementById('kpiInhibitor');
    const kVessel = document.getElementById('kpiVessel');
    
    const kBufferCard = document.getElementById('kpiBufferCard');
    const kBuffer = document.getElementById('kpiBuffer');
    const kBufferLabel = document.getElementById('kpiBufferLabel');
    const kBufferIcon = document.getElementById('kpiBufferIcon');

    function updateDashboard() {
        const area = parseFloat(sArea.value);
        const is20mm = parseInt(sPipe.value) === 1;
        const power = parseFloat(sPower.value);

        // Update labels
        vArea.textContent = area;
        vPipe.textContent = is20mm ? "20x2.0 mm" : "16x2.0 mm";
        vPower.textContent = power;

        // 1. Total Volume
        // 16mm -> 10mb/m2 * 0.113. 20mm -> 6.7mb/m2 * 0.201
        let baseVol = is20mm ? (area * 6.7 * 0.201) : (area * 10 * 0.113);
        let totalVol = Math.round(baseVol * 1.1 + 10); // +10% osprzet + 10L bufor/kociol
        
        // Animacja
        kTotal.style.transform = 'scale(1.1)';
        setTimeout(() => kTotal.style.transform = 'scale(1)', 150);
        kTotal.textContent = totalVol + " L";

        // 2. Inhibitor (1 butelka na 100L)
        let bottles = Math.ceil(totalVol / 100);
        kInhibitor.textContent = bottles + " szt.";

        // 3. Expansion Vessel
        // Woda 10->50C = 1.2% exp. Zapas 2.5x (uzytecznosc 40%). Total * 0.012 * 2.5 = Total * 0.03
        let vesselSize = Math.ceil(totalVol * 0.03);
        // Typowe pojemności rynkowe: 8, 12, 18, 24, 35
        let marketVessel = 8;
        if(vesselSize > 8) marketVessel = 12;
        if(vesselSize > 12) marketVessel = 18;
        if(vesselSize > 18) marketVessel = 24;
        if(vesselSize > 24) marketVessel = 35;
        kVessel.textContent = marketVessel + " L";

        // 4. Defrost / Buffer
        let requiredDefrost = power * 15;
        let deficit = Math.round(requiredDefrost - totalVol);

        if (deficit > 0) {
            kBufferCard.className = "po-kpi-card active-warn";
            kBuffer.textContent = "+" + deficit + " L";
            kBufferLabel.textContent = "Brakuje (Dodaj Bufor)";
            kBufferIcon.style.color = "var(--sum-danger)";
        } else {
            kBufferCard.className = "po-kpi-card active-safe";
            kBuffer.textContent = "OK";
            kBufferLabel.textContent = "Status Defrostu";
            kBufferIcon.style.color = "var(--sum-success)";
        }
    }

    sArea.addEventListener('input', updateDashboard);
    sPipe.addEventListener('input', updateDashboard);
    sPower.addEventListener('input', updateDashboard);

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



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
    --dl-muted: #64748b;
}

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

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

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

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

.dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

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

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

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

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

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

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
}

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

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

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

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

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-text);
}

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

/* PRZYCISK POBIERANIA */
.dl-main-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-accent);
    color: var(--dl-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
}

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
    color: var(--dl-white);
}

.dl-main-btn span { font-size: 20px; }

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

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/"
    },
    "headline": "Ile wody w ogrzewaniu podłogowym? Pobierz Kompendium (PDF)",
    "description": "Pobierz inżynierską ściągę Roberta Kucharskiego. Kompletny poradnik obliczania zładu wody, pojemności rur i unikania błędów w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-08T08:00:00+01:00",
    "dateModified": "2026-05-04T12:50:00+02:00"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#dataset-infografika",
    "name": "Wizualizacja Algorytmu Obliczeniowego Zładu Wody",
    "description": "Zestawienie 8 kluczowych kroków projektowych do określenia objętości cieczy w instalacji, pojemności rur 16mm/17mm oraz identyfikacji błędów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika zład wody",
      "schemat obliczania wody podłogówka",
      "objętość rury 16mm vs 17mm",
      "najczęstsze błędy podłogówka pdf",
      "ściąga instalatora HVAC"
    ],
    "measurementTechnique": "Wizualizacja schematów blokowych i diagramów porównawczych na podstawie obliczeń geometrycznych i norm inżynieryjnych.",
    "mainEntity": {
      "@type": "Thing",
      "name": "8-krokowy schemat obliczeń pojemności instalacji"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/#download-app-zlad",
    "name": "Centrum Pobierania Wiedzy: Zład Wody",
    "description": "Interaktywny moduł umożliwiający wizualizację (WEBP) i pobranie (PDF) dokumentacji technicznej dotyczącej pojemności wodnej instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="download-hub-container" id="app-water-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały Inżynierskie</div>
            <h2>Pobierz Kompletny Poradnik (PDF)</h2>
            <p>Zabierz inżynierską wiedzę na budowę. 8-krokowy algorytm obliczeń, parametry techniczne rur (16mm vs 17mm) oraz checklista najczęstszych błędów w jednym pliku.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki.webp" alt="Infografika - Algorytm i schemat obliczania zładu wody w ogrzewaniu podłogowym" class="dl-preview-img" loading="lazy">
            <div class="dl-zoom-hint">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    8 Kroków: Precyzyjny algorytm obliczeń
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Porównanie: Rury 16 mm vs 17 mm
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Checklista 3 krytycznych błędów
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Format gotowy do druku na budowę (PDF)
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki.pdf" class="dl-main-btn" target="_blank">
                <span>📥</span> POBIERZ ŚCIĄGĘ (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.5;">
                Masz dość zgadywania na budowie? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-accent-dark); font-weight:800;">Zleć profesjonalny projekt podłogówki</a> i otrzymaj wyliczony zład z dokładnością do 1 litra.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie materiału w formie niezmienionej jest dozwolone.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-water-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b;">Zasoby Chronione Licencją</div>
                    <p style="color: #b91c1c; font-size: 14px; margin-bottom:20px;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Pobieranie i wyświetlanie na obcych domenach jest zabronione.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; background:#dc2626; color:#fff; padding:10px 20px; border-radius:8px; text-decoration:none; font-weight:bold;">Powrót do oryginału</a>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">Ile wody potrzeba do wypełnienia instalacji podłogówki &#8211; Kalkulator.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile metrów podłogówki na jednej pętli?</title>
		<link>https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 22:18:09 +0000</pubDate>
				<category><![CDATA[Budowa i remonty]]></category>
		<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[długość pętli]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[porady ekspertów]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2053</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów podłogówki na jednej pętli to optymalna długość? W naszym artykule znajdziesz praktyczne porady, jak obliczyć długość pętli, jakie czynniki wpływają na jej maksymalną długość oraz jak uniknąć błędów przy projektowaniu. Dowiesz się również, dlaczego profesjonalny projekt jest kluczowy dla efektywności systemu. Sprawdź, jak zaplanować ogrzewanie podłogowe, aby cieszyć się komfortem i oszczędnościami przez lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pipe-section-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść skopiowana bez zezwolenia</p>
                    <p>Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby korzystać z oryginalnych narzędzi i artykułów Roberta Kucharskiego.</p>
                </div>
            `;
            return;
        }
    }

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            <div id="result-20-banner" class="result-banner">
                <div class="res-title" id="res-title">Analiza hydrauliczna</div>
                <p class="res-desc" id="res-desc">Wybierz parametry powyżej, aby zobaczyć rekomendację inżynierską.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pipe20-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Narzędzie skopiowane nielegalnie</p>
                    <p>Zapraszamy na <strong>Projekt-Ogrzewania.pl</strong> w celu skorzystania z oryginalnych narzędzi.</p>
                </div>
            `;
            return;
        }
    }

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        <div class="compare-card industrial">
            <div class="card-title">Rura 20x2 mm</div>
            <span class="card-subtitle">Wariant Przemysłowy / Hale</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">130 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">12,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val">22 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">20,8 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val" style="color: #64748b">Przemysłowy</span>
                </li>
            </ul>
        </div>

    </div>
</div>

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



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

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

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

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

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

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

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

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

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

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

body { counter-reset: step-counter; }

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

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

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

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

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

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

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

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

.type-btn span {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 400;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    // Uruchomienie pierwsze
    calculatePhysics();
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Planując instalację, kluczowe jest zrozumienie, ile metrów podłogówki na jednej pętli faktycznie może obsłużyć Twój system. Przekroczenie magicznej barierze 100 metrów przy rurze 16 mm to nie tylko błąd montażowy, to wyrok na sprawność pompy ciepła i Twój komfort cieplny.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zbiór danych projektowych: Limity długości pętli grzewczych",
    "description": "Zestawienie inżynierskich norm spadku ciśnienia i temperatury dla różnych długości obiegów ogrzewania podłogowego rur PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": "Spadek ciśnienia (kPa) vs Długość rury (m)",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Logika Projektowa Roberta Kucharskiego",
    "description": "Interaktywny algorytm wyznaczania granicznych oporów hydraulicznych w zależności od metrów bieżących pętli grzewczej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">💡</span>Złota zasada inżyniera HVAC</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Inżynierski punkt widzenia</span>
            <p class="expert-tip-text">
                "Pytanie o to, <strong>ile metrów podłogówki na jednej pętli</strong> ułożyć, to w rzeczywistości pytanie o hydraulikę i opory przepływu. Moja rada? Nigdy nie daj się namówić na pętle 16 mm o długości 120-130 metrów tylko po to, by 'oszczędzić' na sekcjach rozdzielacza. Optymalne 80 metrów to gwarancja, że system będzie cichy, a podłoga nagrzeje się równomiernie nawet przy niskim parametrze zasilania z pompy ciepła."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Dla rury 16x2 mm optymalna długość to 80-90 m. Przekroczenie 100 m drastycznie zwiększa opory hydrauliczne i obniża wydajność systemu.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Ten moduł ekspercki jest własnością Projekt-Ogrzewania.pl i nie może być powielany na innych domenach.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            <div class="scenario-desc-box" id="sim-desc">
                <strong>Inżynierski punkt widzenia:</strong> Budynki szkieletowe cechują się bardzo niską akumulacyjnością cieplną (brak grubych, murowanych ścian). Wymusza to zaprojektowanie systemu o krótkich pętlach, aby instalacja mogła błyskawicznie reagować na nagłe zmiany zapotrzebowania (np. nagłe zyski od nasłonecznienia). Długa pętla spowodowałaby przegrzewanie pomieszczeń.
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('scenario-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Moduł zablokowany</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne narzędzia inżynierskie znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

.module-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                <div class="res-card" id="card-scop">
                    <div class="res-info">
                        <span class="res-label">Wpływ na pompę ciepła (SCOP)</span>
                        <span class="res-val" id="out-scop">Obniżony SCOP (Wymaga >35°C)</span>
                    </div>
                    <div class="res-icon">⚡</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('impact-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść zablokowana</p>
                    <p>Moduł interaktywny został skopiowany. Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby z niego skorzystać.</p>
                </div>
            `;
            return;
        }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            <div class="risk-card" id="card-stress">
                <div class="risk-icon">💥</div>
                <div class="risk-title">Naprężenia wylewki</div>
                <div class="risk-val" id="val-stress">Krytyczne</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('error-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Blokada bezpieczeństwa</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne symulatory ryzyk instalacyjnych znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

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

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

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

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

        let dT = 5; // standardowy spadek

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy do długich pętli w domu jednorodzinnym warto zastosować rurę 20 mm?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Odradzam. Rury o średnicy <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">20x2 mm</a> pozwalają na dłuższe pętle (nawet 130 m), ale są dedykowane głównie do hal przemysłowych i magazynów, gdzie stosuje się rzadki rozstaw. W budownictwie jednorodzinnym rura 20 mm sprawia ogromne problemy instalatorom – jest sztywna, wymaga wielkiej siły i stwarza trudności przy gięciu blisko okien i ścian. Optymalnym materiałem pozostaje rura 16x2 mm.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('faq-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Baza Wiedzy Zablokowana</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza oryginalną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.footer-text {
    flex: 1;
}

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

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

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

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

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

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

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

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

    <div class="lightbox-modal" id="lightbox">
        <span class="lightbox-close" id="close-lightbox">&times;</span>
        <img decoding="async" class="lightbox-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.webp" alt="Powiększenie infografiki">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('infographic-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Materiały Zablokowane</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza autoryzowaną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

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

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

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

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

        // Zamykanie klawiszem ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === "Escape" && lightbox.classList.contains('active')) {
                lightbox.classList.remove('active');
                document.body.style.overflow = 'auto';
            }
        });
    }
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534; /* Dopasowanie koloru w stanie sukcesu */
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

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

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

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🛠️ Audyt Projektu: Czy jesteś gotowy do wylewki?</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Żadna z pętli 16mm nie przekracza 90-100 metrów</h4>
                    <p>Potwierdzam, że zrezygnowałem z chęci zaoszczędzenia na rozdzielaczu kosztem bezpieczeństwa hydraulicznego układu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Pętle mają zbliżoną do siebie długość</h4>
                    <p>Najkrótsza pętla na rozdzielaczu (oprócz łazienki) nie jest o połowę krótsza od najdłuższej. Pozwoli to zrównoważyć rotametry.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Uwzględniono strefy brzegowe przy oknach</h4>
                    <p>Zastosowano zagęszczony rozstaw rur (10 cm) w miejscach największych strat cieplnych, aby uniknąć chłodu ciągnącego od przeszkleń.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Instalacja opiera się na wyliczeniach OZC</h4>
                    <p>Zapotrzebowanie na moc i przepływy zostały policzone zgodnie z normą PN-EN 12831, a nie zaczerpnięte z forów internetowych.</p>
                </div>
            </div>
        </div>
    </div>

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

        <p class="success-cta-promo">Chcesz wiedzieć więcej? Sprawdź naszą bazę wiedzy pełną interaktywnych wykresów, kalkulatorów i darmowych poradników inżynierskich!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <h3 style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</h3>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników.</title>
		<link>https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 17:31:46 +0000</pubDate>
				<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Remonty i modernizacje]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Zdrowie i komfort]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[nowoczesne technologie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędności energii]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[tradycyjne grzejniki]]></category>
		<category><![CDATA[zalety ogrzewania podłogowego]]></category>
		<category><![CDATA[zdrowe ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1868</guid>

					<description><![CDATA[<p>Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników są niezaprzeczalne. Ten nowoczesny system zapewnia równomierne rozprowadzanie ciepła, oszczędność miejsca i wyższy komfort cieplny. W artykule omawiamy kluczowe korzyści, takie jak efektywność energetyczna, trwałość oraz zdrowsze warunki w pomieszczeniach. Poznaj szczegóły tego rozwiązania i sprawdź, dlaczego warto z niego skorzystać w swoim domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wybór odpowiedniego systemu grzewczego to kluczowy element każdej inwestycji budowlanej lub remontowej. <em>Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników</em> są niepodważalne, zwłaszcza w nowoczesnych domach. <a href="https://projekt-ogrzewania.pl/">Ogrzewanie podłogowe</a> to nie tylko estetyka, ale także oszczędności, komfort i zdrowie domowników. W poniższym artykule omówimy, dlaczego warto rozważyć ten system jako alternatywę dla klasycznych rozwiązań grzewczych.</p>



<h2 class="wp-block-heading">Równomierne rozprowadzenie ciepła.</h2>



<h3 class="wp-block-heading">Dlaczego równomierność jest ważna?.</h3>



<p class="wp-block-paragraph">Tradycyjne grzejniki skupiają ciepło w jednym miejscu, co często prowadzi do nierównego ogrzewania pomieszczeń. W efekcie, góra pomieszczenia bywa znacznie cieplejsza niż podłoga, co może być odczuwalne szczególnie zimą.</p>



<p class="wp-block-paragraph">Ogrzewanie podłogowe działa inaczej – ciepło rozprowadzane jest równomiernie na całej powierzchni podłogi, zapewniając przyjemną temperaturę na całej wysokości pomieszczenia. Dowiedz się więcej o jego zasadach działania: <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Jak działa ogrzewanie podłogowe?</a>.</p>



<h2 class="wp-block-heading">Estetyka i oszczędność miejsca,</h2>



<h3 class="wp-block-heading">Brak widocznych grzejników.</h3>



<p class="wp-block-paragraph">Jedną z głównych zalet ogrzewania podłogowego jest to, że nie wymaga montażu widocznych grzejników. Oznacza to większą swobodę w aranżacji wnętrz – ściany pozostają wolne, co jest szczególnie ważne w małych pomieszczeniach.</p>



<p class="wp-block-paragraph">Dzięki temu systemowi zyskujemy również dodatkowe miejsce, co może być szczególnie cenne w mieszkaniach o ograniczonej przestrzeni. Więcej informacji na temat planowania instalacji znajdziesz w artykule: <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Jak zaplanować rozmieszczenie pętli grzewczych?</a>.</p>



<h2 class="wp-block-heading">Komfort cieplny i zdrowie.</h2>



<h3 class="wp-block-heading">Zdrowe warunki w pomieszczeniach.</h3>



<p class="wp-block-paragraph">Ogrzewanie podłogowe zapewnia bardziej naturalny obieg ciepła, co zmniejsza unoszenie się kurzu i alergenów. Jest to szczególnie korzystne dla alergików oraz osób z problemami układu oddechowego.</p>



<p class="wp-block-paragraph">Tradycyjne grzejniki mogą prowadzić do wysuszania powietrza i powodować dyskomfort. Ogrzewanie podłogowe eliminuje ten problem, zapewniając optymalną wilgotność i zdrowy mikroklimat w domu. Przeczytaj, dlaczego ogrzewanie podłogowe jest zdrowym wyborem: <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Czy ogrzewanie podłogowe jest zdrowe?</a>.</p>



<h2 class="wp-block-heading"><strong>Efektywność energetyczna</strong>.</h2>



<h3 class="wp-block-heading">Niższe koszty ogrzewania.</h3>



<p class="wp-block-paragraph">Ogrzewanie podłogowe pozwala osiągnąć taką samą temperaturę odczuwalną przy niższej temperaturze powietrza w pomieszczeniu. Oznacza to niższe zużycie energii i mniejsze koszty eksploatacji. Dzięki lepszej izolacji i precyzyjnemu sterowaniu systemem, ogrzewanie podłogowe jest bardziej ekonomiczne niż tradycyjne grzejniki. </p>



<h2 class="wp-block-heading">Trwałość i niezawodność.</h2>



<h3 class="wp-block-heading">Dłuższa żywotność systemu.</h3>



<p class="wp-block-paragraph">Systemy ogrzewania podłogowego są mniej narażone na korozję niż tradycyjne grzejniki. Rury grzewcze wykonane z nowoczesnych materiałów, takich jak wielowarstwowe rury, są bardzo trwałe i odporne na uszkodzenia.</p>



<p class="wp-block-paragraph">Dzięki ukryciu instalacji w podłodze system jest mniej podatny na mechaniczne uszkodzenia, co gwarantuje wieloletnie bezproblemowe działanie.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1735664190358"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe jest droższe od tradycyjnych grzejników?</strong></strong> <p class="schema-faq-answer">Początkowy koszt instalacji ogrzewania podłogowego może być wyższy, ale długoterminowe oszczędności na rachunkach za ogrzewanie rekompensują inwestycję.</p> </div> <div class="schema-faq-section" id="faq-question-1735664204673"><strong class="schema-faq-question"><strong>Jakie są najważniejsze zalety ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Równomierne rozprowadzanie ciepła, brak widocznych grzejników, wyższy komfort cieplny oraz niższe zużycie energii to główne atuty.</p> </div> <div class="schema-faq-section" id="faq-question-1735664217115"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe jest zdrowe?</strong></strong> <p class="schema-faq-answer">Tak, zmniejsza unoszenie się kurzu i alergenów, zapewniając lepsze warunki dla alergików i osób z problemami układu oddechowego.</p> </div> <div class="schema-faq-section" id="faq-question-1735664235411"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe nadaje się do każdego typu podłogi?</strong></strong> <p class="schema-faq-answer">Tak, ale kluczowe jest odpowiednie zaplanowanie pętli tak by uwzględniały różny <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">opór cieplny materiałów wykończeniowych na posadzce</a>.</p> </div> <div class="schema-faq-section" id="faq-question-1735664376823"><strong class="schema-faq-question"><strong>Jakie są oszczędności wynikające z zastosowania ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Niższe rachunki za ogrzewanie dzięki lepszej efektywności energetycznej oraz możliwość sterowania temperaturą w poszczególnych pomieszczeniach.</p> </div> </div>



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



<p class="wp-block-paragraph"><em>Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników</em> są liczne: od równomiernego rozprowadzania ciepła, przez oszczędność miejsca, po wyższy komfort i niższe koszty eksploatacji. Dodatkowo system ten jest zdrowszy i bardziej estetyczny, co czyni go idealnym wyborem dla nowoczesnych domów. Jeśli planujesz modernizację systemu grzewczego, warto rozważyć ten nowoczesny i efektywny system. Więcej informacji znajdziesz na naszym <a href="https://projekt-ogrzewania.pl/blog/">blogu</a>.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="DtO7GepQLh"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=tG08WqVJSJ#?secret=DtO7GepQLh" data-secret="DtO7GepQLh" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">Zalety ogrzewania podłogowego w porównaniu do tradycyjnych grzejników.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
