<?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 Materiały do podłogówki - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/materialy-do-podlogowki/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/materialy-do-podlogowki/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 21 Jun 2026 08:55:12 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Materiały do podłogówki - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/materialy-do-podlogowki/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Rura z barierą antydyfuzyjną (EVOH).</title>
		<link>https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 26 Jan 2026 09:43:12 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[Rury grzewcze]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[Wybór materiałów do podłogówki]]></category>
		<category><![CDATA[bariera antydyfuzyjna]]></category>
		<category><![CDATA[dyfuzja tlenu]]></category>
		<category><![CDATA[hydraulika budowlana]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pe-rt evoh]]></category>
		<category><![CDATA[pex evoh]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rura evoh]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3316</guid>

					<description><![CDATA[<p>W instalacjach grzewczych nie ma miejsca na przypadek. To, co dziś jest niewidoczne w posadzce, przez kolejne dekady decyduje o sprawności całego systemu. Rura z barierą antydyfuzyjną (EVOH) to rozwiązanie, które od lat stanowi technologiczny standard w wodnym ogrzewaniu podłogowym – nie z mody, lecz z fizyki i doświadczenia. W artykule pokazujemy, dlaczego dyfuzja tlenu jest realnym zagrożeniem, jak działa EVOH, jakie parametry mają znaczenie przy doborze rur oraz dlaczego profesjonalny projekt i montaż są kluczowe dla trwałości instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">Rura z barierą antydyfuzyjną (EVOH).</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light: #f0f9ff;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray: #64748b;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
    --rk-intro-gold: #f59e0b;
}

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

.rk-intro-container * {
    box-sizing: border-box;
    /* Zgodnie z poleceniem: całkowity brak animacji i płynnych przejść w tym bloku */
    transition: none !important;
    animation: none !important;
}

/* Sekcja Hooka i Tytułu */
.rk-intro-hero {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
    text-align: center;
}

.rk-intro-badge {
    display: inline-block;
    background: var(--rk-intro-blue);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-intro-hero h2 {
    font-size: 36px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-intro-hook {
    font-size: 18px;
    font-weight: 500;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    border-left: 4px solid var(--rk-intro-gold);
    text-align: left;
}

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

/* Interaktywny Panel Główny (Jedna Kolumna) */
.rk-intro-main {
    background: #ffffff;
    padding: 40px 50px;
}

/* Nawigacja Górna (Zakładki Poziome) */
.rk-intro-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--rk-intro-border);
    padding-bottom: 15px;
}

.rk-intro-tab-btn {
    flex: 1;
    text-align: center;
    background: #f8fafc;
    border: 2px solid var(--rk-intro-border);
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-intro-tab-btn:hover {
    border-color: #cbd5e1;
    color: var(--rk-intro-dark);
}

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

.rk-intro-tab-btn svg {
    flex-shrink: 0;
}

/* Prawa Kolumna - Treść (Teraz pełna szerokość) */
.rk-intro-content {
    display: none;
}

.rk-intro-content.active {
    display: block;
}

/* Treść: Szybka Odpowiedź */
.rk-qa-box {
    background: var(--rk-intro-light);
    border: 2px solid #bae6fd;
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
}

.rk-qa-title {
    font-size: 14px;
    font-weight: 900;
    color: var(--rk-intro-blue);
    text-transform: uppercase;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-qa-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    line-height: 1.6;
    margin: 0;
}

.rk-intro-text p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

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

.rk-intro-text a {
    color: var(--rk-intro-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Treść: Narzędzia */
.rk-tools-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 10px;
}

.rk-tool-card {
    border: 2px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    background: #ffffff;
}

.rk-tool-icon {
    width: 48px;
    height: 48px;
    background: #f1f5f9;
    color: var(--rk-intro-blue);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.rk-tool-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-tool-desc {
    font-size: 14px;
    color: var(--rk-intro-gray);
    margin: 0;
    line-height: 1.6;
}

@media (max-width: 850px) {
    .rk-tools-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .rk-intro-hero { padding: 35px 20px; }
    .rk-intro-hero h2 { font-size: 28px; }
    .rk-intro-main { padding: 25px 20px; }
    
    /* Na mobile przyciski układają się jeden pod drugim */
    .rk-intro-nav { flex-direction: column; border-bottom: none; gap: 10px; }
    .rk-intro-tab-btn { justify-content: flex-start; padding: 15px 20px; margin-bottom: 0;}
    
    .rk-qa-box { padding: 20px; }
    .rk-qa-text { font-size: 16px; }
    .rk-tool-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Rura z barierą antydyfuzyjną (EVOH) – Najważniejszy element podłogówki",
    "description": "Czym jest rura z barierą EVOH? Kompletny przewodnik i szybka odpowiedź dla inwestorów. Poznaj wpływ bariery tlenowej na trwałość kotła i pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-wstep",
    "name": "Zestawienie Narzędzi i Kalkulatorów Instalacyjnych EVOH",
    "description": "Wykaz interaktywnych narzędzi udostępnionych w artykule, wspomagających decyzję o wyborze rury do ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rura z barierą antydyfuzyjną",
      "co to jest rura EVOH",
      "kalkulator zładu wody",
      "symulator korozji podłogówki",
      "rura pex-a czy pe-rt evoh"
    ],
    "measurementTechnique": "Agregacja dostępnych modułów inżynierskich obliczających opory hydrauliczne, przepływy, dyfuzję tlenu oraz ROI inwestycji w barierę EVOH.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moduł Szybkiej Odpowiedzi (Quick Answer) dla wyszukiwarek.",
        "Kalkulator parametrów hydraulicznych i zładu wodnego pętli.",
        "Symulator niszczenia kotła z powodu braku bariery EVOH."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-wstep-przewodnik",
    "name": "Interaktywny Przewodnik Inwestora EVOH",
    "description": "Panel startowy ułatwiający nawigację po narzędziach i bezpośrednio odpowiadający na kluczowe pytania inwestorów dotyczące rur z powłoką antydyfuzyjną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-panel">
    
    <div class="rk-intro-hero">
        <span class="rk-intro-badge">Baza Wiedzy Inwestora</span>
        <h2>Rura z barierą antydyfuzyjną (EVOH) – Najważniejszy element podłogówki</h2>
        <p class="rk-intro-hook">
            Wyobraź sobie, że oszczędzasz 500 zł na tańszej rurze, a po 3 latach musisz wydać 8 000 zł na naprawę pompy ciepła i płukanie całej posadzki. <strong>To nie mit sprzedażowy, to bezwzględna fizyka budowli.</strong> Zobacz dlaczego.
        </p>
    </div>

    <div class="rk-intro-main">
        
        <div class="rk-intro-nav">
            <button class="rk-intro-tab-btn active" data-target="intro-qa">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Szybka Odpowiedź
            </button>
            
            <button class="rk-intro-tab-btn" data-target="intro-tools">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                Kalkulatory w Artykule
            </button>
        </div>

        <div class="rk-intro-content-wrapper">
            
            <div class="rk-intro-content active" id="intro-qa">
                
                <div class="rk-qa-box">
                    <div class="rk-qa-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        Szybka Odpowiedź
                    </div>
                    <p class="rk-qa-text">
                        Czym jest rura z barierą antydyfuzyjną EVOH? To najczęściej 5-warstwowa rura wykonana z PEX lub PE-RT, w której umieszczono mikroskopijną powłokę kopolimeru EVOH. Jej jedynym zadaniem jest <strong>całkowite zablokowanie wnikania tlenu</strong> z zewnątrz do wody instalacyjnej.
                    </p>
                </div>
                
                <div class="rk-intro-text">
                    <p>
                        Brak tej warstwy sprawia, że rura z tworzywa sztucznego działa jak gąbka dla gazów. Tlen łączy się z żelazem w instalacji, tworząc szlam magnetytowy (rdzę), który błyskawicznie niszczy <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotły gazowe</a> oraz zatyka nowoczesne pompy obiegowe. 
                    </p>
                    <p>
                        W tym kompleksowym kompendium przeanalizujemy ten temat od strony inżynierskiej, opierając się na normach DIN 4726 i twardych wyliczeniach.
                    </p>
                </div>

            </div>

            <div class="rk-intro-content" id="intro-tools">
                <div class="rk-intro-text">
                    <p><strong>Czego dowiesz się w dalszej części tekstu?</strong></p>
                    <p>Zrezygnowaliśmy z teoretyzowania. W poniższym artykule znajdziesz interaktywne narzędzia, które pomogą Ci podjąć najbezpieczniejszą decyzję materiałową dla Twojego domu:</p>
                </div>

                <div class="rk-tools-grid">
                    <div class="rk-tool-card">
                        <div class="rk-tool-icon">
                            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>
                        </div>
                        <h4 class="rk-tool-title">Mikroskop Dyfuzji</h4>
                        <p class="rk-tool-desc">Zobacz struktury 3-warstwowe i 5-warstwowe w powiększeniu i zrozum proces blokady tlenu.</p>
                    </div>

                    <div class="rk-tool-card">
                        <div class="rk-tool-icon">
                            <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="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line></svg>
                        </div>
                        <h4 class="rk-tool-title">Symulator Awarii</h4>
                        <p class="rk-tool-desc">Kalkulator ryzyka. Zobacz ile rdzy (szlamu) wygeneruje Twój układ, jeśli pominiesz barierę EVOH.</p>
                    </div>

                    <div class="rk-tool-card">
                        <div class="rk-tool-icon">
                            <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"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        </div>
                        <h4 class="rk-tool-title">Kalkulator Hydrauliki</h4>
                        <p class="rk-tool-desc">Moduł do wyliczenia przepływów (m/s) i spadków ciśnienia (kPa) dla najdłuższej pętli grzewczej.</p>
                    </div>

                    <div class="rk-tool-card">
                        <div class="rk-tool-icon">
                            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <h4 class="rk-tool-title">Decyzjomat ROI</h4>
                        <p class="rk-tool-desc">Zestawienie dopłaty do markowej rury z gwarantowanymi kosztami ewentualnej naprawy kotłowni.</p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-intro-tab-btn');
    const tabContents = document.querySelectorAll('.rk-intro-content');

    // Brak animacji - natychmiastowe przełączenie klas (Display: block/none)
    for (let i = 0; i < tabBtns.length; i++) {
        tabBtns[i].addEventListener('click', function() {
            
            // Usunięcie stanu aktywnego
            for (let j = 0; j < tabBtns.length; j++) {
                tabBtns[j].classList.remove('active');
            }
            for (let k = 0; k < tabContents.length; k++) {
                tabContents[k].classList.remove('active');
            }

            // Nadanie stanu aktywnego 
            this.classList.add('active');
            let targetId = this.getAttribute('data-target');
            let targetPanel = document.getElementById(targetId);
            
            let isFound = false;
            if (targetPanel) {
                isFound = true;
            }

            if (isFound) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-def-dark: #0f172a;
    --rk-def-blue: #0284c7;
    --rk-def-light: #f0f9ff;
    --rk-def-accent: #0ea5e9;
    --rk-def-green: #10b981;
    --rk-def-red: #ef4444;
    --rk-def-gray: #64748b;
    --rk-def-border: #e2e8f0;
    --rk-def-bg: #ffffff;
    
    /* Kolory warstw polimerów */
    --rk-poly-pex: #94a3b8;
    --rk-poly-evoh: #0284c7;
    --rk-poly-glue: #fcd34d;
}

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

.rk-def-container * {
    box-sizing: border-box;
}

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

.rk-def-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-def-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-def-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Interaktywny Symulator Przekroju (Mikroskop) */
.rk-def-interactive {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-def-border);
}

.rk-def-int-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-def-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Selektor z wypełnieniem kolorystycznym zamiast ruchomego tła */
.rk-layer-selector {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
    gap: 6px; /* Odstęp między przyciskami */
}

.rk-layer-btn {
    flex: 1;
    height: 46px; 
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-def-gray); /* Ciemno szary domyślnie */
    background: transparent; /* Brak tła przed kliknięciem */
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin: 0;
}

.rk-layer-btn:hover {
    color: var(--rk-def-dark);
    background: rgba(255, 255, 255, 0.5);
}

/* Aktywny przycisk przyjmuje niebieskie tło i biały tekst */
.rk-layer-btn.active {
    background: var(--rk-def-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

/* Animacje i obszar SVG */
.rk-microscope-box {
    background: #ffffff;
    border: 2px solid var(--rk-def-border);
    border-radius: 20px;
    padding: 30px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-wrapper {
    position: relative;
    width: 100%;
    height: 180px;
    background: #f1f5f9;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #cbd5e1;
}

.rk-layer-info {
    padding-left: 20px;
    border-left: 3px solid var(--rk-def-accent);
}

.rk-layer-info h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-def-dark);
    margin: 0 0 10px 0;
}

.rk-layer-info p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-def-gray);
    margin: 0;
}

/* Część teoretyczna */
.rk-def-theory {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-def-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

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

.rk-def-theory a {
    color: var(--rk-def-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-def-theory a:hover {
    color: #0369a1;
}

.rk-def-highlight-box {
    background: var(--rk-def-light);
    border: 1px solid #bae6fd;
    border-left: 4px solid var(--rk-def-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-formula-clean {
    font-family: monospace;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-def-dark);
    display: block;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    margin-top: 10px;
    border: 1px dashed #cbd5e1;
}

/* Animacje O2 */
.anim-o2-pass {
    animation: moveO2Pass 3s linear infinite;
}

.anim-o2-bounce {
    animation: moveO2Bounce 3s ease-in-out infinite;
}

@keyframes moveO2Pass {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(300px, 0); opacity: 0; }
}

@keyframes moveO2Bounce {
    0% { transform: translate(0, 0); opacity: 0; }
    20% { opacity: 1; }
    50% { transform: translate(140px, 0); opacity: 1; } /* Uderzenie w barierę */
    80% { opacity: 1; }
    100% { transform: translate(0, 50px); opacity: 0; } /* Odbicie */
}

@media (max-width: 850px) {
    .rk-microscope-box { grid-template-columns: 1fr; gap: 20px; }
    .rk-layer-info { border-left: none; border-top: 3px solid var(--rk-def-accent); padding-left: 0; padding-top: 20px; }
}

@media (max-width: 600px) {
    .rk-def-header, .rk-def-interactive, .rk-def-theory { padding: 30px 20px; }
    .rk-def-header h2 { font-size: 26px; }
    
    /* Na mobile przyciski układają się jeden pod drugim */
    .rk-layer-selector { 
        flex-direction: column; 
    }
    .rk-layer-btn {
        width: 100%;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-czym-jest-evoh",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Czym jest bariera antydyfuzyjna EVOH w rurach do podłogówki?",
    "description": "Budowa i zasada działania bariery tlenowej w rurach grzewczych. Porównanie struktury 3-warstwowej i 5-warstwowej w odniesieniu do normy DIN 4726.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-evoh-struktura",
    "name": "Parametry fizyczne bariery antydyfuzyjnej EVOH i przenikalność tlenu",
    "description": "Baza danych określająca gęstość molekularną kopolimeru oraz graniczne wartości przenikania tlenu wg wytycznych instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "co to jest bariera evoh",
      "rury 5-warstwowe do podłogówki",
      "norma DIN 4726 tlen",
      "struktura rury pex",
      "budowa rury pe-rt evoh pe-rt"
    ],
    "measurementTechnique": "Analiza mikroskopowa przekroju rury, badanie przenikalności O2 w temp. 40°C wg rygorystycznej normy DIN 4726 (paragraf 4.1).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Grubość bariery EVOH: 10 do 50 mikrometrów.",
        "Maksymalna przenikalność wg DIN 4726: poniżej 0,1 mg/(l·doba) w 40°C.",
        "Zalecana struktura rynkowa: Rura 5L (PE-RT / Klej / EVOH / Klej / PE-RT)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-struktura-rury",
    "name": "Interaktywny Mikroskop Rury Grzewczej",
    "description": "Symulator przekroju rur instalacyjnych obrazujący proces blokowania dyfuzji cząsteczek tlenu przez warstwy kopolimeru EVOH oraz ryzyka dla rur 3-warstwowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-def-container" id="rk-def-app">
    <div class="rk-def-header">
        <div class="rk-def-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>
            Struktura Molekularna
        </div>
        <h2>Czym jest bariera antydyfuzyjna EVOH w rurach do podłogówki?</h2>
        <p>
            Wyobraź sobie warstwę kopolimeru cieńszą niż ludzki włos (od 10 do 50 mikrometrów). To właśnie EVOH – technologiczna tarcza, która decyduje o przetrwaniu całej kotłowni.
        </p>
    </div>

    <div class="rk-def-interactive">
        <div class="rk-def-int-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Interaktywny Mikroskop: Proces Dyfuzji
        </div>
        
        <div class="rk-layer-selector" id="pipeViewSelector">
            <div class="rk-layer-btn active" data-view="pex">Zwykły PEX/PE-RT</div>
            <div class="rk-layer-btn" data-view="3l">Rura 3-Warstwowa (3L)</div>
            <div class="rk-layer-btn" data-view="5l">Rura 5-Warstwowa (5L)</div>
        </div>

        <div class="rk-microscope-box">
            <div class="rk-svg-wrapper" id="svgDisplayArea">
                </div>
            
            <div class="rk-layer-info" id="layerInfoArea">
                </div>
        </div>
    </div>

    <div class="rk-def-theory">
        <h3>Fizyka przenikania: Jak tlen pokonuje polietylen?</h3>
        <p>
            Polietyleny jednorodne (czysty <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">PE-RT</a> czy <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX</a>) wykazują budowę krystaliczną o wysokim stopniu porowatości międzycząsteczkowej. Siłą napędową procesu dyfuzji jest <strong>różnica ciśnień cząstkowych tlenu</strong> pomiędzy otoczeniem (powietrzem atmosferycznym, betonem jastrychu o wilgotności resztkowej) a wnętrzem rury, gdzie ciśnienie cząstkowe rozpuszczonego tlenu nieustannie dąży do zera.
        </p>

        <p>
            EVOH posiada skrajnie gęstą strukturę molekularną z silnymi wiązaniami wodorowymi, co tworzy barierę mechaniczną dla mikroskopijnych cząsteczek gazu O₂.
        </p>

        <div class="rk-def-highlight-box">
            <strong>Rygorystyczna Norma DIN 4726 (paragraf 4.1)</strong><br>
            Zgodnie z wymogami inżynieryjnymi, w tym niemiecką normą <a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726 w ogrzewaniu podłogowym</a>, skuteczna osłona antydyfuzyjna musi zredukować przenikanie tlenu (O₂) do poziomu granicznego w temperaturze roboczej 40°C:
            <span class="rk-formula-clean">Max przenikanie &lt; 0,1 mg/(l·doba)</span>
        </div>

        <h3>Dlaczego 5L to rynkowy standard?</h3>
        <p>
            Współczesny standard to rury 5-warstwowe (5L). Struktura ta pozwala umieścić ultracienką barierę EVOH centralnie, bezpiecznie w rdzeniu rury. Chroni to powłokę przed uszkodzeniami fizycznymi. Układ wygląda następująco:
            <span class="rk-formula-clean">PE-RT / Klej / EVOH / Klej / PE-RT</span>
        </p>
        <p>
            Rozwiązania starsze, 3-warstwowe (3L), gdzie EVOH znajdowało się na samym zewnątrz, były silnie podatne na <strong>mechaniczne zdrapanie bariery</strong> podczas układania i przesuwania przewodów na chropowatym styropianie oraz przy wbijaniu spinek montażowych (tacker).
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Dane dla poszczególnych widoków mikroskopu
    const viewsDB = {
        pex: {
            title: "Czysty polimer",
            desc: "Pory w strukturze PE-RT/PEX są tak duże (w skali cząsteczkowej), że tlen bez oporów wnika do środka instalacji, nasycając zład wody.",
            svg: `
                <svg width="100%" height="100%" viewBox="0 0 300 180" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="0" width="100" height="180" fill="#e2e8f0"/>
                    <text x="10" y="20" fill="#64748b" font-size="12" font-weight="bold">Zewnątrz</text>
                    
                    <rect x="100" y="0" width="100" height="180" fill="#94a3b8" opacity="0.6"/>
                    <line x1="150" y1="0" x2="150" y2="180" stroke="#ffffff" stroke-width="2" stroke-dasharray="10 10"/>
                    
                    <rect x="200" y="0" width="100" height="180" fill="#bae6fd"/>
                    <text x="210" y="20" fill="#0284c7" font-size="12" font-weight="bold">Woda</text>

                    <g class="anim-o2-pass" style="animation-delay: 0s;">
                        <circle cx="50" cy="50" r="6" fill="#ef4444"/>
                        <text x="44" y="54" fill="#ffffff" font-size="8" font-weight="bold">O₂</text>
                    </g>
                    <g class="anim-o2-pass" style="animation-delay: 1.5s;">
                        <circle cx="50" cy="130" r="6" fill="#ef4444"/>
                        <text x="44" y="134" fill="#ffffff" font-size="8" font-weight="bold">O₂</text>
                    </g>
                </svg>
            `
        },
        '3l': {
            title: "Struktura 3-Warstwowa",
            desc: "Bariera EVOH jest na wierzchu. Narażona na przetarcia (np. od spinek tackera) ulega zniszczeniu, otwierając drogę tlenowi do wnętrza.",
            svg: `
                <svg width="100%" height="100%" viewBox="0 0 300 180" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="0" width="100" height="180" fill="#e2e8f0"/>
                    
                    <rect x="100" y="0" width="15" height="180" fill="#0284c7"/>
                    <rect x="115" y="0" width="5" height="180" fill="#fcd34d"/>
                    <rect x="120" y="0" width="80" height="180" fill="#94a3b8" opacity="0.6"/>
                    <polygon points="95,70 115,80 95,90" fill="#e2e8f0"/>
                    
                    <rect x="200" y="0" width="100" height="180" fill="#bae6fd"/>

                    <g class="anim-o2-bounce" style="animation-delay: 0s;">
                        <circle cx="20" cy="30" r="6" fill="#ef4444"/>
                        <text x="14" y="34" fill="#ffffff" font-size="8">O₂</text>
                    </g>
                    <g class="anim-o2-pass" style="animation-delay: 1s;">
                        <circle cx="20" cy="80" r="6" fill="#ef4444"/>
                        <text x="14" y="84" fill="#ffffff" font-size="8">O₂</text>
                    </g>
                </svg>
            `
        },
        '5l': {
            title: "Struktura 5-Warstwowa",
            desc: "Bariera EVOH bezpiecznie osłonięta przez zewn. polietylen. 100% ochrona mechaniczna i totalna blokada dyfuzji. Standard branżowy.",
            svg: `
                <svg width="100%" height="100%" viewBox="0 0 300 180" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="0" width="100" height="180" fill="#e2e8f0"/>
                    
                    <rect x="100" y="0" width="30" height="180" fill="#94a3b8" opacity="0.6"/>
                    <rect x="130" y="0" width="5" height="180" fill="#fcd34d"/>
                    <rect x="135" y="0" width="15" height="180" fill="#0284c7"/>
                    <rect x="150" y="0" width="5" height="180" fill="#fcd34d"/>
                    <rect x="155" y="0" width="45" height="180" fill="#94a3b8" opacity="0.6"/>
                    
                    <rect x="200" y="0" width="100" height="180" fill="#bae6fd"/>

                    <g class="anim-o2-bounce" style="animation-delay: 0s;">
                        <circle cx="20" cy="50" r="6" fill="#ef4444"/>
                        <text x="14" y="54" fill="#ffffff" font-size="8">O₂</text>
                    </g>
                    <g class="anim-o2-bounce" style="animation-delay: 1.5s;">
                        <circle cx="20" cy="120" r="6" fill="#ef4444"/>
                        <text x="14" y="124" fill="#ffffff" font-size="8">O₂</text>
                    </g>
                </svg>
            `
        }
    };

    const buttons = document.querySelectorAll('.rk-layer-btn');
    const svgArea = document.getElementById('svgDisplayArea');
    const infoArea = document.getElementById('layerInfoArea');

    function updateView(key) {
        let data = viewsDB[key];
        
        // Zmiana treści z płynnym efektem zanikania
        infoArea.style.opacity = '0';
        svgArea.style.opacity = '0';
        
        setTimeout(function() {
            infoArea.innerHTML = `<h4>${data.title}</h4><p>${data.desc}</p>`;
            svgArea.innerHTML = data.svg;
            
            infoArea.style.transition = 'opacity 0.3s';
            svgArea.style.transition = 'opacity 0.3s';
            infoArea.style.opacity = '1';
            svgArea.style.opacity = '1';
        }, 150);
    }

    // Inicjalizacja pierwszej rury
    updateView('pex');

    // Obsługa kliknięć
    for (let i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            
            // Usunięcie klasy 'active'
            for (let j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            
            // Dodanie klasy 'active' na wybranym
            this.classList.add('active');
            let targetKey = this.getAttribute('data-view');
            
            updateView(targetKey);
        });
    }
});
</script>



<style>
:root {
    --rk-corr-dark: #0f172a;
    --rk-corr-blue: #0284c7;
    --rk-corr-light: #f0f9ff;
    --rk-corr-red: #ef4444;
    --rk-corr-rust: #9a3412; /* Kolor rdzy/szlamu */
    --rk-corr-rust-light: #ffedd5;
    --rk-corr-gray: #64748b;
    --rk-corr-border: #e2e8f0;
    --rk-corr-bg: #ffffff;
}

.rk-corr-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-corr-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(154, 52, 18, 0.15);
    border: 1px solid #fdba74;
    overflow: hidden;
}

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

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

.rk-corr-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-corr-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Proces Chemiczny (Infografika - Elastyczna) */
.rk-corr-chain {
    background: var(--rk-corr-rust-light);
    padding: 25px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #fdba74;
}

.rk-chain-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 90px;
}

.rk-chain-icon {
    width: 48px; height: 48px;
    background: #ffffff;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-corr-rust);
    font-size: 16px;
    font-weight: 900;
    box-shadow: 0 4px 10px rgba(154, 52, 18, 0.15);
    margin-bottom: 10px;
}

.rk-chain-text {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-corr-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-chain-arrow {
    color: var(--rk-corr-rust);
    font-weight: 900;
    font-size: 20px;
    transition: transform 0.3s;
}

/* Interaktywny Symulator Zniszczeń */
.rk-corr-interactive {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-corr-int-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-corr-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-damage-selector {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-dmg-btn {
    flex: 1;
    padding: 15px;
    border: 2px solid var(--rk-corr-border);
    border-radius: 16px;
    background: #f8fafc;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-dmg-btn:hover {
    background: #e2e8f0;
}

.rk-dmg-btn.active {
    border-color: var(--rk-corr-rust);
    background: var(--rk-corr-rust-light);
    box-shadow: 0 10px 20px -5px rgba(154, 52, 18, 0.2);
}

.rk-dmg-icon {
    width: 48px; height: 48px;
    background: #ffffff;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-corr-gray);
    transition: all 0.3s;
}

.rk-dmg-btn.active .rk-dmg-icon {
    color: var(--rk-corr-rust);
}

.rk-dmg-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-corr-dark);
    text-align: center;
}

/* Karta Ze Szczegółami Awarii */
.rk-dmg-display {
    background: var(--rk-corr-dark);
    border-radius: 20px;
    padding: 35px;
    color: #ffffff;
    display: grid;
    grid-template-columns: 1fr 250px;
    gap: 30px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.rk-dmg-display::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; width: 300px;
    background: radial-gradient(circle at right, rgba(154, 52, 18, 0.3) 0%, transparent 70%);
}

.rk-dmg-info { position: relative; z-index: 2; }
.rk-dmg-cost { 
    position: relative; z-index: 2;
    background: rgba(0,0,0,0.4);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(253, 186, 116, 0.2);
    text-align: center;
}

.rk-dmg-info h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #fdba74;
}

.rk-dmg-info p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
}

.rk-cost-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 8px;
}

.rk-cost-val {
    font-size: 32px;
    font-weight: 900;
    color: #ef4444;
}

/* Chemia i Teoria */
.rk-corr-theory {
    padding: 40px 50px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-corr-border);
}

.rk-corr-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

.rk-corr-theory strong { color: var(--rk-corr-dark); font-weight: 800; }
.rk-corr-theory a { color: var(--rk-corr-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rk-corr-theory a:hover { color: #0369a1; }

.rk-chem-box {
    background: #ffffff;
    border: 1px solid var(--rk-corr-border);
    border-left: 4px solid var(--rk-corr-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
    font-family: monospace;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-corr-dark);
}

.rk-chem-row { margin-bottom: 10px; }
.rk-chem-row:last-child { margin-bottom: 0; }
.rk-chem-desc { color: var(--rk-corr-gray); font-size: 13px; font-family: 'Inter', sans-serif; display: block; margin-top: 4px; }

/* Stopka z Autorem (E-E-A-T) */
.rk-author-footer {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 35px;
    padding-top: 25px;
    border-top: 1px solid var(--rk-corr-border);
}

.rk-author-footer img {
    width: 56px; 
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--rk-corr-blue);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

.rk-author-details strong { 
    color: var(--rk-corr-dark); 
    display: block; 
    font-size: 16px; 
    margin-bottom: 2px;
}
.rk-author-details span { 
    color: var(--rk-corr-gray); 
    font-size: 12px; 
    font-weight: 800; 
    text-transform: uppercase; 
    letter-spacing: 0.5px;
}

@media (max-width: 850px) {
    .rk-dmg-display { grid-template-columns: 1fr; text-align: center; }
}

@media (max-width: 600px) {
    .rk-corr-header, .rk-corr-interactive, .rk-corr-theory { padding: 30px 20px; }
    .rk-corr-header h2 { font-size: 26px; }
    
    /* Zmiana układu łańcucha na pionowy */
    .rk-corr-chain { 
        flex-direction: column; 
        gap: 10px; 
        padding: 30px 20px;
    }
    .rk-chain-step { flex-direction: row; gap: 15px; align-items: center; width: 100%; text-align: left; }
    .rk-chain-icon { margin-bottom: 0; width: 40px; height: 40px; font-size: 14px; flex-shrink: 0; }
    .rk-chain-arrow { transform: rotate(90deg); margin: 5px 0; }

    .rk-damage-selector { flex-direction: column; gap: 10px; }
    .rk-dmg-btn { flex-direction: row; justify-content: flex-start; padding: 15px; }
    .rk-dmg-icon { width: 40px; height: 40px; margin-right: 10px; }
    .rk-dmg-display { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-korozja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Jak brak bariery tlenowej niszczy kocioł gazowy i pompę ciepła?",
    "description": "Mechanizm powstawania szlamu magnetytowego (Fe3O4) z powodu braku bariery EVOH. Koszty awarii wymienników ciepła, pomp obiegowych PWM i rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-koszty-awarii",
    "name": "Kalkulacja kosztów awarii kotłowni z powodu braku EVOH (2026)",
    "description": "Zestawienie kosztów wymiany uszkodzonych przez szlam magnetytowy komponentów kotłowni: wymienników kotłów gazowych, pomp PWM oraz elementów regulacyjnych rozdzielaczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "korozja galwaniczna w instalacji",
      "magnetyt w instalacji grzewczej",
      "zacieranie pompy obiegowej",
      "uszkodzenie wymiennika kotła koszty",
      "koszty naprawy ogrzewania podłogowego",
      "stężenie tlenu norma PN-EN 12828"
    ],
    "measurementTechnique": "Szacowanie rynkowych kosztów serwisu i wymiany zablokowanych komponentów w wyniku odkładania się tlenków żelaza (szlamu).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymiennik ciepła (Kocioł): Perforacja szczelin 1.5mm, koszt do 60% wartości kotła (ok. 3000-8000 PLN).",
        "Pompa obiegowa: Zablokowanie wirnika z magnesami trwałymi PWM, koszt (ok. 1000-2500 PLN).",
        "Rozdzielacz: Zablokowanie rotametrów i grzybków termostatycznych, brak regulacji (ok. 800-1500 PLN)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-symulator-awarii",
    "name": "Symulator Awarii Kotłowni (Brak EVOH)",
    "description": "Interaktywny panel prezentujący mechanizm niszczenia poszczególnych komponentów układu hydraulicznego (kocioł, pompa, rozdzielacz) z szacunkowymi kosztami napraw.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-corr-container" id="rk-corr-app">
    <div class="rk-corr-header">
        <div class="rk-corr-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Degradacja Systemu
        </div>
        <h2>Jak brak bariery tlenowej niszczy kocioł gazowy i pompę ciepła?</h2>
        <p>
            Brak bariery tlenowej powoduje korozję galwaniczną oraz wżerową elementów metalowych. To nie jest kwestia "czy", tylko "kiedy" instalacja ulegnie awarii, generując koszty napraw awaryjnych rzędu od 2 500 PLN do 8 000 PLN.
        </p>
    </div>

    <div class="rk-corr-chain">
        <div class="rk-chain-step">
            <div class="rk-chain-icon">1</div>
            <div class="rk-chain-text">Brak EVOH</div>
        </div>
        <div class="rk-chain-arrow">➔</div>
        <div class="rk-chain-step">
            <div class="rk-chain-icon">O₂</div>
            <div class="rk-chain-text">Przenikanie</div>
        </div>
        <div class="rk-chain-arrow">➔</div>
        <div class="rk-chain-step">
            <div class="rk-chain-icon">Fe</div>
            <div class="rk-chain-text">Utlenianie</div>
        </div>
        <div class="rk-chain-arrow">➔</div>
        <div class="rk-chain-step">
            <div class="rk-chain-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><circle cx="12" cy="12" r="10"></circle></svg>
            </div>
            <div class="rk-chain-text">Szlam</div>
        </div>
        <div class="rk-chain-arrow">➔</div>
        <div class="rk-chain-step">
            <div class="rk-chain-icon" style="color: #ef4444;">!</div>
            <div class="rk-chain-text">Awaria</div>
        </div>
    </div>

    <div class="rk-corr-interactive">
        <div class="rk-corr-int-title">Wybierz urządzenie, aby sprawdzić skutki braku EVOH:</div>
        
        <div class="rk-damage-selector" id="dmgSelector">
            <div class="rk-dmg-btn active" data-target="wymiennik">
                <div class="rk-dmg-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line></svg>
                </div>
                <div class="rk-dmg-name">Kocioł / Wymiennik</div>
            </div>
            <div class="rk-dmg-btn" data-target="pompa">
                <div class="rk-dmg-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <div class="rk-dmg-name">Pompa Obiegowa</div>
            </div>
            <div class="rk-dmg-btn" data-target="rozdzielacz">
                <div class="rk-dmg-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="9" x2="20" y2="9"></line><line x1="4" y1="15" x2="20" y2="15"></line><line x1="10" y1="3" x2="8" y2="21"></line><line x1="16" y1="3" x2="14" y2="21"></line></svg>
                </div>
                <div class="rk-dmg-name">Rozdzielacz</div>
            </div>
        </div>

        <div class="rk-dmg-display" id="dmgDisplay">
            </div>
    </div>

    <div class="rk-corr-theory">
        <p>
            Norma <strong>PN-EN 12828</strong> jednoznacznie definiuje maksymalne stężenie tlenu w wodzie grzewczej dla instalacji zamkniętych na poziomie <strong>0,1 mg/l</strong>. Przekroczenie tej wartości uruchamia destrukcyjny mechanizm powstawania czarnego szlamu.
        </p>

        <div class="rk-chem-box">
            <div class="rk-chem-row">
                1. Utlenianie: Fe + 2H₂O + O₂ ➔ Fe(OH)₂
                <span class="rk-chem-desc">Tlen wchodzi w reakcję z żelazem tworząc wodorotlenek żelaza.</span>
            </div>
            <div class="rk-chem-row">
                2. Formowanie szlamu: 3Fe(OH)₂ ➔ Fe₃O₄ + 2H₂O + H₂
                <span class="rk-chem-desc">Powstaje magnetyt (Fe₃O₄), czyli gęsty, czarny i ciężki osad.</span>
            </div>
        </div>

        <p>
            Konsekwencje braku bariery to nie tylko koszty, to również gigantyczny spadek komfortu. Jeśli ominiesz stosowanie <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów montażowych</a> i wybierzesz szczelną rurę, uchronisz swój <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> i układ hydrauliczny przed całkowitą degradacją w pierwszych latach użytkowania.
        </p>

        <div class="rk-author-footer">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" loading="lazy">
            <div class="rk-author-details">
                <strong>Robert Kucharski</strong>
                <span>Specjalista HVAC / Projekt-Ogrzewania.pl</span>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Baza danych awarii
    const dmgDB = {
        wymiennik: {
            title: "Perforacja wymiennika ciepła",
            desc: "W kotłach kondensacyjnych szczeliny w wymiennikach ze stali nierdzewnej (lub Al-Si) mają często szerokość poniżej 1,5 mm. Szlam magnetytowy zatyka je w strefie najwyższych temperatur, powodując miejscowe przegrzanie materiału, naprężenia i pęknięcia.",
            cost: "~ 60% kotła",
            costLabel: "Szacowany koszt naprawy"
        },
        pompa: {
            title: "Zacieranie pompy (klasa A)",
            desc: "Nowoczesne pompy obiegowe (PWM) posiadają wirniki z magnesami trwałymi. Fizyka jest bezlitosna: magnes przyciąga drobiny magnetytu (rdzy) krążące w wodzie, co błyskawicznie prowadzi do zablokowania wirnika i spalenia elektroniki.",
            cost: "1500 - 2500 zł",
            costLabel: "Koszt nowej pompy + wymiana"
        },
        rozdzielacz: {
            title: "Blokada zaworów i rotametrów",
            desc: "Lepki szlam odkłada się na grzybkach zaworów termostatycznych oraz zalepia od wewnątrz szklanki przepływomierzy (rotametrów). Instalacja traci przepływy, a jakakolwiek regulacja hydrauliczna pętli staje się niemożliwa.",
            cost: "800 - 1500 zł",
            costLabel: "Płukanie + nowe rotametry"
        }
    };

    const buttons = document.querySelectorAll('.rk-dmg-btn');
    const display = document.getElementById('dmgDisplay');

    function renderDisplay(targetKey) {
        let data = dmgDB[targetKey];
        
        let html = `
            <div class="rk-dmg-info">
                <h3>${data.title}</h3>
                <p>${data.desc}</p>
            </div>
            <div class="rk-dmg-cost">
                <div class="rk-cost-label">${data.costLabel}</div>
                <div class="rk-cost-val">${data.cost}</div>
            </div>
        `;
        
        // Płynne wejście
        display.style.opacity = '0';
        
        setTimeout(function() {
            display.innerHTML = html;
            display.style.opacity = '1';
        }, 150);
    }

    // Inicjalizacja
    renderDisplay('wymiennik');
    display.style.transition = 'opacity 0.3s ease';

    // Obsługa kliknięć
    for (let i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            
            // Usunięcie active
            for (let j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            
            this.classList.add('active');
            let target = this.getAttribute('data-target');
            
            renderDisplay(target);
        });
    }
});
</script>



<ul class="wp-block-list"></ul>



<style>
:root {
    --rk-oxy-dark: #0f172a;
    --rk-oxy-blue: #0284c7;
    --rk-oxy-light: #f0f9ff;
    --rk-oxy-green: #10b981;
    --rk-oxy-green-light: #dcfce7;
    --rk-oxy-red: #ef4444;
    --rk-oxy-red-light: #fef2f2;
    --rk-oxy-rust: #9a3412; /* Kolor rdzy */
    --rk-oxy-gray: #64748b;
    --rk-oxy-border: #e2e8f0;
    --rk-oxy-bg: #ffffff;
}

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

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

.rk-oxy-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-oxy-light);
    color: var(--rk-oxy-blue);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

.rk-oxy-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-oxy-header p {
    font-size: 16px;
    color: #475569;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Symulator Bilansu Masowego */
.rk-oxy-interactive {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-oxy-border);
}

.rk-oxy-panel {
    background: #ffffff;
    border: 1px solid var(--rk-oxy-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-oxy-controls {
    margin-bottom: 35px;
    padding-bottom: 30px;
    border-bottom: 1px dashed var(--rk-oxy-border);
}

.rk-oxy-label-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 15px;
}

.rk-oxy-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-oxy-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-oxy-val-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-oxy-blue);
}

.rk-oxy-slider {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 10px;
    outline: none;
    -webkit-appearance: none;
}

.rk-oxy-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 30px;
    height: 30px;
    background: var(--rk-oxy-blue);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

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

/* Porównanie Wyników */
.rk-oxy-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-oxy-card {
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

/* Karta: Brak EVOH (ZAGROŻENIE) */
.rk-oxy-card.danger {
    background: var(--rk-oxy-red-light);
    border: 2px solid #fca5a5;
}

.rk-oxy-card.danger .rk-oxy-card-title {
    color: var(--rk-oxy-red);
}

.rk-oxy-card.danger .rk-oxy-big-val {
    color: var(--rk-oxy-rust);
}

/* Karta: Z EVOH (BEZPIECZEŃSTWO) */
.rk-oxy-card.safe {
    background: var(--rk-oxy-green-light);
    border: 2px solid #6ee7b7;
}

.rk-oxy-card.safe .rk-oxy-card-title {
    color: #047857;
}

.rk-oxy-card.safe .rk-oxy-big-val {
    color: var(--rk-oxy-green);
}

.rk-oxy-card-title {
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-oxy-stat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

.rk-oxy-stat:last-child {
    border-bottom: none;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 2px solid rgba(0,0,0,0.1);
}

.rk-oxy-stat-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-oxy-dark);
}

.rk-oxy-stat-val {
    font-size: 16px;
    font-weight: 800;
}

.rk-oxy-big-val {
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
}

/* SVG W Karcie */
.rk-oxy-svg-bg {
    position: absolute;
    right: -20px;
    bottom: -20px;
    width: 120px;
    height: 120px;
    opacity: 0.1;
    pointer-events: none;
}

/* Teoria i Wnioski */
.rk-oxy-theory {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-oxy-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

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

.rk-oxy-theory a {
    color: var(--rk-oxy-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-oxy-theory a:hover {
    color: #0369a1;
}

.rk-oxy-highlight-box {
    background: #fffbeb;
    border-left: 4px solid #f59e0b;
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

@media (max-width: 850px) {
    .rk-oxy-grid { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 600px) {
    .rk-oxy-header, .rk-oxy-interactive, .rk-oxy-theory { padding: 30px 20px; }
    .rk-oxy-header h2 { font-size: 26px; }
    .rk-oxy-panel { padding: 25px 20px; }
    .rk-oxy-label-row { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-dyfuzja-tlenu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Ile tlenu przenika do instalacji bez zabezpieczenia EVOH?",
    "description": "Bilans masowy dyfuzji tlenu w instalacjach podłogowych. Porównanie rur z barierą antydyfuzyjną i bez bariery w odniesieniu do normy DIN 4726 i powstawania szlamu (magnetytu).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-bilans-dyfuzji",
    "name": "Bilans dyfuzji tlenu w instalacjach podłogowych (EVOH vs Brak EVOH)",
    "description": "Zestawienie ilości przenikającego tlenu (mg/dobę) przez ścianki rur PE-RT/PEX w zależności od obecności powłoki EVOH, z kalkulacją wagi wytrącającej się rdzy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dyfuzja tlenu w podłogówce",
      "norma DIN 4726 przenikalność tlenu",
      "jak powstaje szlam w instalacji",
      "rura bez bariery antydyfuzyjnej skutki",
      "inhibitory korozji do ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kalkulacja przenikalności na podstawie wytycznych normy DIN 4726 i PN-EN ISO 21003, przy temperaturze roboczej zładu 35/30°C i założeniu 1.8 mg O2 / m / dobę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant bez EVOH: przenikalność ok. 1.8 mg O2 / metr / dobę.",
        "Wariant z EVOH: przenikalność poniżej 0.015 mg O2 / metr / dobę.",
        "Reakcja chemiczna: ok. 657g tlenu gazowego utlenia i zamienia w szlam ok. 1.5 kg czystego żelaza."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-symulator-korozji",
    "name": "Symulator Korozji i Dyfuzji Tlenu w Ogrzewaniu Podłogowym",
    "description": "Interaktywny kalkulator generowania szlamu magnetytowego (rdzy). Symuluje procesy korozyjne w czasie rzeczywistym w zależności od metrażu budynku dla rur 16x2.0.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-oxy-container" id="rk-oxy-app">
    <div class="rk-oxy-header">
        <div class="rk-oxy-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
            Fizyka Instalacji
        </div>
        <h2>Ile tlenu przenika do instalacji bez zabezpieczenia EVOH?</h2>
        <p>
            Rura z tworzywa sztucznego pozbawiona powłoki EVOH przypomina gąbkę dla gazów. Przeanalizujmy precyzyjny bilans masowy dla standardowej rury polietylenowej 16x2.0 mm pracującej przy zasilaniu <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">z pompy ciepła</a> (35/30°C). Wybierz metraż swojego domu, by zobaczyć skalę problemu.
        </p>
    </div>

    <div class="rk-oxy-interactive">
        <div class="rk-oxy-panel">
            
            <div class="rk-oxy-controls">
                <div class="rk-oxy-label-row">
                    <span class="rk-oxy-label">Powierzchnia Twojego domu</span>
                    <span class="rk-oxy-val-display"><span id="rkHouseArea">150</span> m²</span>
                </div>
                <input type="range" id="rkAreaRange" class="rk-oxy-slider" min="50" max="350" step="10" value="150" aria-label="Wybierz powierzchnię">
            </div>

            <div class="rk-oxy-grid">
                
                <div class="rk-oxy-card danger">
                    <svg class="rk-oxy-svg-bg" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4">
                        <path d="M50 10 L10 90 L90 90 Z" stroke-linejoin="round"/>
                        <line x1="50" y1="40" x2="50" y2="60" stroke-linecap="round"/>
                        <circle cx="50" cy="75" r="4" fill="currentColor" stroke="none"/>
                    </svg>
                    <h3 class="rk-oxy-card-title">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        Rura BEZ bariery
                    </h3>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Dobowe przenikanie O₂:</span>
                        <span class="rk-oxy-stat-val" style="color: var(--rk-oxy-red);"><span id="valO2DayDanger">1800</span> mg</span>
                    </div>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Roczny ładunek tlenu:</span>
                        <span class="rk-oxy-stat-val" style="color: var(--rk-oxy-red);"><span id="valO2YearDanger">657</span> g</span>
                    </div>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Wygenerowany szlam (Rdza):</span>
                        <span class="rk-oxy-big-val"><span id="valRust">1.50</span> kg</span>
                    </div>
                </div>

                <div class="rk-oxy-card safe">
                    <svg class="rk-oxy-svg-bg" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4">
                        <path d="M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z" stroke-linejoin="round"/>
                        <polyline points="35 50 45 60 70 35" stroke-linecap="round" stroke-linejoin="round" />
                    </svg>
                    <h3 class="rk-oxy-card-title">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                        Rura z EVOH (Norma DIN)
                    </h3>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Dobowe przenikanie O₂:</span>
                        <span class="rk-oxy-stat-val" style="color: var(--rk-oxy-green);"><span id="valO2DaySafe">15</span> mg</span>
                    </div>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Roczny ładunek tlenu:</span>
                        <span class="rk-oxy-stat-val" style="color: var(--rk-oxy-green);"><span id="valO2YearSafe">5.5</span> g</span>
                    </div>
                    <div class="rk-oxy-stat">
                        <span class="rk-oxy-stat-label">Wygenerowany szlam:</span>
                        <span class="rk-oxy-big-val">~0.00 kg</span>
                    </div>
                </div>

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

    <div class="rk-oxy-theory">
        <h3>Skutki chemiczne w Twojej kotłowni</h3>
        <p>
            Rura pozbawiona powłoki EVOH przepuszcza średnio od 1,5 do 3,6 mg tlenu na metr bieżący rury w ciągu doby. Zastosowanie rury z barierą antydyfuzyjną spełniającej normę <strong>DIN 4726</strong> redukuje tę wartość do poziomu poniżej 0,02 mg/(m·dobę).
        </p>
        
        

        <div class="rk-oxy-highlight-box">
            <strong>Co oznaczają wartości ze wskaźnika po lewej stronie?</strong><br>
            Ponad pół kilograma czystego gazowego tlenu (przy domu 150m²) wchodzi w gwałtowną reakcję chemiczną ze stalą i mosiądzem w zamkniętym układzie hydraulicznym. Taka ilość utlenia żelazo, tworząc twardy magnetyt. Wymienniki ciepła, które natrafią na taki roztwór, po prostu <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">zamulają instalację</a> i zacierają pompy obiegowe w ciągu zaledwie kilku lat eksploatacji.
        </div>

        <h3>Dlaczego powłoka EVOH rozwiązuje problem?</h3>
        <p>
            Ilość rzędu 5,47 grama tlenu na rok (wariant z zabezpieczeniem EVOH) jest zjawiskiem marginalnym. Jest ona w pełni wiązana przez standardowe <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">inhibitory korozji do ogrzewania podłogowego</a> dawkowane do wody instalacyjnej (np. w stężeniu zaledwie 1% objętości całego zładu) i nie stanowi absolutnie żadnego zagrożenia dla integralności strukturalnej najdroższych komponentów kotłowni.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkAreaRange');
    const areaDisplay = document.getElementById('rkHouseArea');
    
    // Pola Danger (Brak EVOH)
    const o2DayDanger = document.getElementById('valO2DayDanger');
    const o2YearDanger = document.getElementById('valO2YearDanger');
    const valRust = document.getElementById('valRust');

    // Pola Safe (EVOH)
    const o2DaySafe = document.getElementById('valO2DaySafe');
    const o2YearSafe = document.getElementById('valO2YearSafe');

    // Stałe przeliczeniowe
    // Srednie zużycie rury mb na m2 podłogówki = 6.67
    const ratioPipeLength = 6.67;
    
    // Przenikalność (mg / metr / dobę) wariantu A i B (temperatura ok 35C)
    const diffDangerMg = 1.8;
    const diffSafeMg = 0.015;

    // Współczynnik zamiany tlenu na szlam: 657g O2 -> 1.5kg rdzy (szlamu)
    // 1.5 / 657 = 0.002283 kg rdzy na każdy 1 gram tlenu rocznie
    const rustRatio = 0.002283;

    function calculateDiffusion() {
        let area = parseFloat(slider.value);
        areaDisplay.textContent = area;

        // Długość rur w metrach
        let length = area * ratioPipeLength;

        // WARIANT: BRAK EVOH
        let mgDayDanger = length * diffDangerMg;
        let gramYearDanger = (mgDayDanger * 365) / 1000;
        let rustKg = gramYearDanger * rustRatio;

        o2DayDanger.textContent = Math.round(mgDayDanger);
        o2YearDanger.textContent = Math.round(gramYearDanger);
        valRust.textContent = rustKg.toFixed(2);

        // WARIANT: Z EVOH
        let mgDaySafe = length * diffSafeMg;
        let gramYearSafe = (mgDaySafe * 365) / 1000;

        o2DaySafe.textContent = Math.round(mgDaySafe);
        o2YearSafe.textContent = gramYearSafe.toFixed(2);
    }

    // Unikamy zapisu if(a && b), choć w prostych kalkulacjach bez obiektów to bezpieczne.
    // Inicjalizacja:
    calculateDiffusion();

    // Nasłuch:
    slider.addEventListener('input', calculateDiffusion);
});
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-light: #f0f9ff;
    --rk-comp-accent: #0ea5e9;
    --rk-comp-green: #10b981;
    --rk-comp-orange: #f59e0b;
    --rk-comp-red: #ef4444;
    --rk-comp-gray: #64748b;
    --rk-comp-border: #e2e8f0;
    --rk-comp-bg: #ffffff;
}

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

/* Nagłówek Sekcji */
.rk-comp-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    color: var(--rk-comp-dark);
    border-bottom: 1px solid var(--rk-comp-border);
    position: relative;
}

.rk-comp-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 4px;
    background: var(--rk-comp-blue);
}

.rk-comp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-comp-light);
    color: var(--rk-comp-blue);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

.rk-comp-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-comp-header p {
    font-size: 16px;
    color: #475569;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Interaktywny Selektor Rur */
.rk-comp-interactive {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-pipe-selector {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-pipe-btn {
    background: #f1f5f9;
    border: 2px solid transparent;
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-pipe-btn:hover {
    background: #e2e8f0;
    transform: translateY(-2px);
}

.rk-pipe-btn.active {
    background: var(--rk-comp-light);
    border-color: var(--rk-comp-blue);
    box-shadow: 0 10px 20px -10px rgba(2, 132, 199, 0.2);
}

.rk-pipe-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 10px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: var(--rk-comp-gray);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    transition: all 0.3s;
}

.rk-pipe-btn.active .rk-pipe-icon {
    color: var(--rk-comp-blue);
}

.rk-pipe-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-dark);
}

/* Kafelki z Danymi (Zamiast Tabeli) */
.rk-pipe-data-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    animation: rkFadeIn 0.4s ease-out;
}

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

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.rk-data-card::after {
    content: '';
    position: absolute;
    bottom: 0; right: 0;
    width: 60px; height: 60px;
    background: var(--rk-comp-light);
    border-radius: 100% 0 0 0;
    z-index: 0;
    opacity: 0.5;
}

.rk-data-label {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--rk-comp-gray);
    margin-bottom: 10px;
    position: relative;
    z-index: 1;
}

.rk-data-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    position: relative;
    z-index: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-data-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-comp-blue);
}

/* Znaczniki Kolorystyczne dla kart */
.status-high { color: var(--rk-comp-green); }
.status-mid { color: var(--rk-comp-orange); }
.status-low { color: var(--rk-comp-red); }

/* Pro Tip Cytat */
.rk-pro-tip-box {
    margin: 40px 50px;
    padding: 35px 40px;
    background: var(--rk-comp-dark);
    border-radius: 20px;
    color: #ffffff;
    position: relative;
    display: flex;
    gap: 25px;
    align-items: flex-start;
    box-shadow: 0 15px 30px -10px rgba(15, 23, 42, 0.3);
}

.rk-pro-icon {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-comp-accent);
}

.rk-pro-content h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: #7dd3fc;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-pro-content p {
    margin: 0 0 20px 0;
    font-size: 16px;
    line-height: 1.7;
    color: #e2e8f0;
}

.rk-pro-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-pro-author-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #cbd5e1;
    overflow: hidden;
    border: 2px solid var(--rk-comp-accent);
}

.rk-pro-author-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rk-pro-author-name {
    font-size: 15px;
    font-weight: 800;
    color: #ffffff;
}

.rk-pro-author-role {
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
}

@media (max-width: 850px) {
    .rk-pipe-selector { grid-template-columns: repeat(2, 1fr); }
    .rk-pipe-data-grid { grid-template-columns: repeat(2, 1fr); }
    .rk-pro-tip-box { flex-direction: column; padding: 30px; gap: 20px; }
}

@media (max-width: 600px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 20px; }
    .rk-pipe-selector { grid-template-columns: 1fr; gap: 10px; }
    .rk-pipe-btn { display: flex; align-items: center; justify-content: flex-start; gap: 15px; padding: 15px; }
    .rk-pipe-icon { margin: 0; }
    .rk-pipe-data-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-pro-tip-box { margin: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-porownanie-rur",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Porównanie rur grzewczych: PEX-EVOH vs PE-RT-EVOH vs PB",
    "description": "Szczegółowe porównanie parametrów pracy ciągłej rur grzewczych. Analiza współczynników przewodzenia ciepła, promieni gięcia oraz odporności na błędy montażowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-parametry-rur",
    "name": "Zestawienie parametrów technicznych rur do ogrzewania podłogowego (PEX, PE-RT, PB)",
    "description": "Baza danych porównująca rury sieciowane i niesieciowane pod kątem klas roboczych, promieni gięcia, norm (PN-EN ISO 15875 / PN-EN ISO 22391) oraz termicznej pamięci kształtu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie rur grzewczych",
      "rura pex czy pert opinie",
      "promień gięcia rury pex 16",
      "wytrzymałość rur do ogrzewania podłogowego",
      "termiczna pamięć kształtu rury pex",
      "rura polibutylenowa właściwości"
    ],
    "measurementTechnique": "Weryfikacja maksymalnych parametrów pracy ciągłej (Tmax, ciśnienie) z normami PN-EN ISO 15875 i 22391 oraz pomiar współczynnika lambda W/(m·K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura PEX-a EVOH: Lambda 0,38-0,41, Temp 90°C, Gięcie 5xD, Odporność wysoka (pamięć kształtu).",
        "Rura PE-RT EVOH: Lambda 0,40-0,42, Temp 70°C, Gięcie 5xD, Odporność niska (ryzyko trwałego załamania).",
        "Praktyka HVAC: Uszkodzony PEX-a można podgrzać opalarką do 130°C w celu regeneracji profilu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-selektor-rur",
    "name": "Interaktywny Selektor Rury Grzewczej",
    "description": "Narzędzie pozwalające na dynamiczne analizowanie kart charakterystyki rur grzewczych, podmieniające parametry robocze (ciśnienie, temperatura, lambda).",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-comp-app">
    <div class="rk-comp-header">
        <div class="rk-comp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
            Analiza Materiałowa
        </div>
        <h2>Porównanie rur grzewczych: PEX-EVOH vs PE-RT-EVOH vs PB</h2>
        <p>
            Wybór konkretnego typu rury determinuje maksymalne parametry pracy ciągłej (ciśnienie do 6 bar lub 10 bar) oraz bezpieczny promień gięcia (od 5xD do 8xD). Wszystkie parametry muszą być weryfikowane pod kątem zgodności z normą <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">PN-EN ISO 15875</a> (dla PEX) lub PN-EN ISO 22391 (dla PE-RT). Kliknij wybrany przewód, aby poznać jego parametry.
        </p>
    </div>

    <div class="rk-comp-interactive">
        
        <div class="rk-pipe-selector" id="pipeSelector">
            <div class="rk-pipe-btn active" data-pipe="pexa">
                <div class="rk-pipe-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v8"></path><path d="M8 12h8"></path></svg>
                </div>
                <div class="rk-pipe-name">PEX-a EVOH</div>
            </div>
            
            <div class="rk-pipe-btn" data-pipe="pexb">
                <div class="rk-pipe-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <div class="rk-pipe-name">PEX-b EVOH</div>
            </div>

            <div class="rk-pipe-btn" data-pipe="pert">
                <div class="rk-pipe-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-pipe-name">PE-RT Typ II</div>
            </div>

            <div class="rk-pipe-btn" data-pipe="pb">
                <div class="rk-pipe-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z"></path><line x1="16" y1="8" x2="2" y2="22"></line><line x1="17.5" y1="15" x2="9" y2="6.5"></line></svg>
                </div>
                <div class="rk-pipe-name">Polibutylen PB</div>
            </div>
        </div>

        <div class="rk-pipe-data-grid" id="pipeDataGrid">
            </div>

    </div>

    <div class="rk-pro-tip-box">
        <div class="rk-pro-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
        </div>
        <div class="rk-pro-content">
            <h4>Ważna uwaga z praktyki instalacyjnej</h4>
            <p>
                Rura PEX-a EVOH posiada tzw. termiczną pamięć kształtu. Jeśli podczas <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">profilowania zakrętu meandrowego</a> instalator załamie rurę, uszkodzone miejsce wystarczy podgrzać opalarką do temperatury około 130°C (aż tworzywo stanie się przezroczyste). Rura powróci do pierwotnego przekroju bez utraty wytrzymałości ciśnieniowej. W przypadku rury PE-RT takie załamanie kwalifikuje odcinek do wycięcia i wyrzucenia – nie wolno go regenerować ani zalewać betonem.
            </p>
            <div class="rk-pro-author">
                <div class="rk-pro-author-avatar">
                    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" width="40" height="40" loading="lazy">
                </div>
                <div>
                    <div class="rk-pro-author-name">Robert Kucharski</div>
                    <div class="rk-pro-author-role">Specjalista HVAC / Projekt-Ogrzewania.pl</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Dane dla poszczególnych rur
    const pipeDB = {
        pexa: {
            lambda: { val: "0,38 - 0,41", unit: "W/(m·K)" },
            temp: { val: "90°C", unit: "Klasa 5" },
            radius: { val: "5xD", unit: "Pamięć kształtu" },
            crosslink: { val: "&ge; 70%", unit: "Nadtlenkowe" },
            pressure: { val: "10 bar", unit: "przy 50°C" },
            errorRes: { val: "Wysoka", unit: "Możliwość regeneracji", status: "status-high" }
        },
        pexb: {
            lambda: { val: "0,35 - 0,39", unit: "W/(m·K)" },
            temp: { val: "90°C", unit: "Klasa 5" },
            radius: { val: "6xD", unit: "Sztywniejsza" },
            crosslink: { val: "&ge; 65%", unit: "Silanowe" },
            pressure: { val: "10 bar", unit: "przy 50°C" },
            errorRes: { val: "Średnia", unit: "Wymaga ostrożności", status: "status-mid" }
        },
        pert: {
            lambda: { val: "0,40 - 0,42", unit: "W/(m·K)" },
            temp: { val: "70°C", unit: "Klasa 4" },
            radius: { val: "5xD", unit: "Elastyczna" },
            crosslink: { val: "0%", unit: "Brak sieciowania" },
            pressure: { val: "6 bar", unit: "przy 50°C" },
            errorRes: { val: "Niska", unit: "Ryzyko załamania", status: "status-low" }
        },
        pb: {
            lambda: { val: "0,22", unit: "W/(m·K)" },
            temp: { val: "70°C", unit: "Klasa 4" },
            radius: { val: "4xD", unit: "B. elastyczna" },
            crosslink: { val: "0%", unit: "Liniowa struktura" },
            pressure: { val: "10 bar", unit: "przy 50°C" },
            errorRes: { val: "Wysoka", unit: "Bezpieczna instalacja", status: "status-high" }
        }
    };

    const buttons = document.querySelectorAll('.rk-pipe-btn');
    const dataGrid = document.getElementById('pipeDataGrid');

    function renderCards(pipeKey) {
        let data = pipeDB[pipeKey];
        
        let html = `
            <div class="rk-data-card">
                <div class="rk-data-label">Przewodzenie ciepła λ</div>
                <div class="rk-data-value">${data.lambda.val} <span class="rk-data-unit">${data.lambda.unit}</span></div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-label">Max. Temp. Ciągła</div>
                <div class="rk-data-value">${data.temp.val} <span class="rk-data-unit">${data.temp.unit}</span></div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-label">Wytrzymałość (Ciśnienie)</div>
                <div class="rk-data-value">${data.pressure.val} <span class="rk-data-unit">${data.pressure.unit}</span></div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-label">Promień Gięcia (Rmin)</div>
                <div class="rk-data-value">${data.radius.val} <span class="rk-data-unit">${data.radius.unit}</span></div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-label">Stopień Sieciowania</div>
                <div class="rk-data-value">${data.crosslink.val} <span class="rk-data-unit">${data.crosslink.unit}</span></div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-label">Odporność na Błędy</div>
                <div class="rk-data-value ${data.errorRes.status}">${data.errorRes.val} <span class="rk-data-unit" style="color: inherit;">${data.errorRes.unit}</span></div>
            </div>
        `;

        // Restart animacji
        dataGrid.style.animation = 'none';
        dataGrid.offsetHeight; // trigger reflow (bezpieczny zapis w JS)
        dataGrid.style.animation = null;
        
        dataGrid.innerHTML = html;
    }

    // Inicjalizacja pierwszej rury
    renderCards('pexa');

    // Obsługa kliknięć (Zastępuje pętle i złożone && bezpieczniejszymi konstrukcjami)
    for (let i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            
            // Usunięcie active ze wszystkich
            for (let j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            
            // Dodanie active
            this.classList.add('active');
            
            let selectedPipe = this.getAttribute('data-pipe');
            renderCards(selectedPipe);
        });
    }
});
</script>



<style>
:root {
    --rk-hyd-dark: #0f172a;
    --rk-hyd-blue: #0284c7;
    --rk-hyd-light: #f0f9ff;
    --rk-hyd-accent: #0ea5e9;
    --rk-hyd-green: #10b981;
    --rk-hyd-red: #ef4444;
    --rk-hyd-gray: #64748b;
    --rk-hyd-border: #e2e8f0;
    --rk-hyd-bg: #ffffff;
}

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

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

.rk-hyd-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.2);
}

.rk-hyd-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-hyd-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Kalkulator Interaktywny */
.rk-hyd-app {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-hyd-border);
}

.rk-hyd-dashboard {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-hyd-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    padding: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* Kontrolki (Suwaki i Switche) */
.rk-hyd-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-hyd-control-group {
    background: var(--rk-hyd-light);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid #bae6fd;
}

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

.rk-hyd-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-hyd-dark);
}

.rk-hyd-val-display {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-hyd-blue);
}

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

.rk-hyd-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    background: var(--rk-hyd-blue);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

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

/* Przełącznik Źródła Ciepła */
.rk-hyd-switch-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
}

.rk-hyd-switch-btn {
    flex: 1;
    padding: 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-hyd-gray);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    z-index: 2;
}

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

.rk-hyd-switch-bg {
    position: absolute;
    top: 4px;
    bottom: 4px;
    width: calc(50% - 4px);
    background: var(--rk-hyd-blue);
    border-radius: 8px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 8px rgba(2, 132, 199, 0.4);
    z-index: 1;
}

.switch-pos-right .rk-hyd-switch-bg {
    transform: translateX(100%);
}

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

.rk-hyd-out-card {
    background: #ffffff;
    border: 2px solid var(--rk-hyd-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s;
}

.rk-hyd-out-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: var(--rk-hyd-light);
    color: var(--rk-hyd-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-hyd-out-data {
    flex-grow: 1;
}

.rk-hyd-out-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-hyd-gray);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.rk-hyd-out-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-hyd-dark);
}

.rk-hyd-out-unit {
    font-size: 16px;
    color: var(--rk-hyd-gray);
    font-weight: 700;
}

/* Dynamiczne kolory wyników */
.status-ok { border-color: var(--rk-hyd-green); }
.status-ok .rk-hyd-out-icon { background: #dcfce7; color: var(--rk-hyd-green); }
.status-ok .rk-hyd-out-value { color: var(--rk-hyd-green); }

.status-warn { border-color: var(--rk-hyd-red); }
.status-warn .rk-hyd-out-icon { background: #fef2f2; color: var(--rk-hyd-red); }
.status-warn .rk-hyd-out-value { color: var(--rk-hyd-red); }

/* Treść Teoretyczna */
.rk-hyd-theory {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-hyd-step {
    margin-bottom: 35px;
}

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

.rk-hyd-step-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-hyd-step-num {
    width: 36px;
    height: 36px;
    background: var(--rk-hyd-blue);
    color: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
}

.rk-hyd-step h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hyd-dark);
    margin: 0;
}

.rk-hyd-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
    padding-left: 51px;
}

.rk-hyd-formula-box {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-hyd-blue);
    padding: 15px 20px;
    margin: 15px 0 15px 51px;
    border-radius: 0 12px 12px 0;
    font-family: monospace;
    font-size: 16px;
    color: var(--rk-hyd-dark);
    font-weight: 700;
    overflow-x: auto;
}

.rk-hyd-theory ul {
    margin: 0 0 15px 51px;
    padding-left: 20px;
    color: #475569;
    line-height: 1.7;
}

.rk-hyd-theory li {
    margin-bottom: 5px;
}

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

.rk-hyd-theory a {
    color: var(--rk-hyd-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-hyd-theory a:hover {
    color: #0369a1;
}

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

@media (max-width: 600px) {
    .rk-hyd-header, .rk-hyd-app, .rk-hyd-theory { padding: 30px 20px; }
    .rk-hyd-header h2 { font-size: 26px; }
    .rk-hyd-theory p, .rk-hyd-formula-box, .rk-hyd-theory ul { padding-left: 0; margin-left: 0; }
    .rk-hyd-step-header { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Algorytm obliczania hydrauliki i strat ciśnienia dla pętli z rurą EVOH",
    "description": "Profesjonalne wzory inżynierskie i narzędzie obliczeniowe dla ogrzewania podłogowego. Oblicz strumień masy, prędkość przepływu i liniową stratę ciśnienia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-tablice-hydrauliczne",
    "name": "Tablice hydrauliczne i opory ciśnienia dla rur PEX/EVOH 16x2.0",
    "description": "Zestawienie zależności między przepływem (l/min), prędkością (m/s) a oporem liniowym (Pa/m) uwzględniające opory miejscowe i gęstość wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm obliczania hydrauliki podłogówki",
      "straty ciśnienia w rurach pex",
      "jak obliczyć przepływ wody w podłogówce",
      "prędkość przepływu w rurach ogrzewania",
      "opory miejscowe w instalacji podłogowej",
      "równoważenie rozdzielacza rotametrami",
      "wzór na strumień masy wody",
      "kalkulator przepływu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Wykorzystanie równania ciągłości strugi oraz uproszczonego wzoru Darcy-Weisbacha dla chropowatości bezwzględnej 0,007 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna prędkość przepływu: 0,25 - 0,60 m/s dla skutecznego odpowietrzania i braku szumów.",
        "Maksymalny zalecany opór pętli: poniżej 20 kPa.",
        "Naddatek na opory miejscowe (np. łuki, rozdzielacz): +20% do oporu liniowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-kalkulator-hydrauliczny",
    "name": "Kalkulator Hydrauliki i Strat Ciśnienia Pętli Grzewczej",
    "description": "Zaawansowane narzędzie inżynierskie online symulujące przepływ, prędkość wody i opory hydrauliczne na podstawie mocy pokoju i długości pętli rury 16x2.0.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hyd-container" id="rk-hyd-app">
    <div class="rk-hyd-header">
        <div class="rk-hyd-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            Narzędzie Inżynierskie
        </div>
        <h2>Algorytm obliczania hydrauliki i strat ciśnienia dla pętli z rurą EVOH</h2>
        <p>
            Aby prawidłowo dobrać pompę obiegową i zrównoważyć rozdzielacz, należy obliczyć całkowitą stratę ciśnienia pętli grzewczej. Użyj poniższego symulatora, aby wykonać obliczenia w czasie rzeczywistym.
        </p>
    </div>

    <div class="rk-hyd-app">
        <div class="rk-hyd-dashboard">
            <div class="rk-hyd-controls">
                
                <div class="rk-hyd-control-group">
                    <div class="rk-hyd-label-row">
                        <span class="rk-hyd-label">Moc cieplna pokoju (Q)</span>
                        <span class="rk-hyd-val-display"><span id="valPower">1200</span> W</span>
                    </div>
                    <input type="range" id="sliderPower" class="rk-hyd-slider" min="300" max="2500" step="50" value="1200">
                </div>

                <div class="rk-hyd-control-group">
                    <div class="rk-hyd-label-row">
                        <span class="rk-hyd-label">Długość pętli rury 16x2.0 (L)</span>
                        <span class="rk-hyd-val-display"><span id="valLen">100</span> m</span>
                    </div>
                    <input type="range" id="sliderLen" class="rk-hyd-slider" min="40" max="150" step="5" value="100">
                </div>

                <div class="rk-hyd-control-group">
                    <div class="rk-hyd-label-row">
                        <span class="rk-hyd-label">Parametr ΔT (Źródło)</span>
                    </div>
                    <div class="rk-hyd-switch-wrapper" id="sourceSwitch">
                        <div class="rk-hyd-switch-bg"></div>
                        <div class="rk-hyd-switch-btn active" data-dt="5">Pompa Ciepła (5K)</div>
                        <div class="rk-hyd-switch-btn" data-dt="10">Kocioł Gazowy (10K)</div>
                    </div>
                </div>

            </div>

            <div class="rk-hyd-outputs">
                
                <div class="rk-hyd-out-card">
                    <div class="rk-hyd-out-icon">
                        <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 2v20"></path><path d="m17 5-5-3-5 3"></path><path d="m19 19-7 3-7-3"></path></svg>
                    </div>
                    <div class="rk-hyd-out-data">
                        <div class="rk-hyd-out-name">Wymagany przepływ</div>
                        <div><span class="rk-hyd-out-value" id="resFlow">3.44</span> <span class="rk-hyd-out-unit">l/min</span></div>
                    </div>
                </div>

                <div class="rk-hyd-out-card" id="cardSpeed">
                    <div class="rk-hyd-out-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-hyd-out-data">
                        <div class="rk-hyd-out-name">Prędkość wody</div>
                        <div><span class="rk-hyd-out-value" id="resSpeed">0.51</span> <span class="rk-hyd-out-unit">m/s</span></div>
                    </div>
                </div>

                <div class="rk-hyd-out-card" id="cardPress">
                    <div class="rk-hyd-out-icon">
                        <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 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z"></path><path d="M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z"></path><path d="M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"></path></svg>
                    </div>
                    <div class="rk-hyd-out-data">
                        <div class="rk-hyd-out-name">Całkowity opór pętli</div>
                        <div><span class="rk-hyd-out-value" id="resPress">17.4</span> <span class="rk-hyd-out-unit">kPa</span></div>
                    </div>
                </div>

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

    <div class="rk-hyd-theory">
        <div class="rk-hyd-step">
            <div class="rk-hyd-step-header">
                <div class="rk-hyd-step-num">1</div>
                <h3>Obliczenie projektowego strumienia masy wody (m)</h3>
            </div>
            <p>
                Wzór bazuje na zapotrzebowaniu na moc cieplną pętli (Q) oraz założonym spadku temperatury (ΔT = T zasilania - T powrotu):
            </p>
            <div class="rk-hyd-formula-box">
                m = Q / (cw · ΔT)
            </div>
            <ul>
                <li><strong>m</strong> – strumień masy [kg/s]</li>
                <li><strong>Q</strong> – moc cieplna pętli [W] (wyznaczona z obliczeń OZC dla danego pokoju)</li>
                <li><strong>cw</strong> – ciepło właściwe wody = 4186 J/(kg·K)</li>
                <li><strong>ΔT</strong> – schłodzenie wody w pętli (dla pomp ciepła przyjmuje się rygorystycznie 5 K, dla kotłów gazowych 10 K)</li>
            </ul>
        </div>

        <div class="rk-hyd-step">
            <div class="rk-hyd-step-header">
                <div class="rk-hyd-step-num">2</div>
                <h3>Wyznaczenie prędkości przepływu wody (v)</h3>
            </div>
            <p>
                Prędkość w rurze o średnicy wewnętrznej d_w (dla rury 16x2.0 mm, d_w = 12 mm = 0.012 m):
            </p>
            <div class="rk-hyd-formula-box">
                v = (4 · m) / (ρ · π · d_w²)
            </div>
            <ul>
                <li><strong>ρ</strong> – gęstość wody w temp. 35°C ≈ 994 kg/m³</li>
            </ul>
            <p>
                Prędkość musi mieścić się w optymalnym przedziale projektowym <strong>0.25 - 0.60 m/s</strong>. Gwarantuje to skuteczne odpowietrzanie pętli (porywanie pęcherzyków do odpowietrzników na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu do podłogówki</a>) przy jednoczesnym braku szumów w instalacji.
            </p>
        </div>

        <div class="rk-hyd-step">
            <div class="rk-hyd-step-header">
                <div class="rk-hyd-step-num">3</div>
                <h3>Obliczenie liniowej straty ciśnienia (Δpl)</h3>
            </div>
            <p>
                Wykorzystujemy uproszczony wzór Darcy-Weisbacha dla rur z tworzyw sztucznych o niskiej chropowatości bezwzględnej (k = 0.007 mm):
            </p>
            <div class="rk-hyd-formula-box">
                Δpl = R · L
            </div>
            <p>
                Gdzie <strong>R</strong> to jednostkowy opór liniowy odczytany z tablic hydraulicznych (Pa/m), a <strong>L</strong> to fizyczna długość pętli w metrach.
            </p>
        </div>

        <div class="rk-hyd-step">
            <div class="rk-hyd-step-header">
                <div class="rk-hyd-step-num">4</div>
                <h3>Uwzględnienie oporów miejscowych (Δpz)</h3>
            </div>
            <p>
                Opory miejscowe (łuki 180° przy układaniu w ślimak, gęste meandrowanie, podejścia pod rozdzielacz) generują dodatkowe straty. W projektowaniu inżynierskim przyjmuje się zryczałtowany <strong>naddatek 20% na opory miejscowe</strong>:
            </p>
            <div class="rk-hyd-formula-box">
                Δp całkowite = Δpl · 1.20
            </div>
            <p>
                Wartość całkowita określa punkt pracy dla doboru <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej w instalacji ogrzewania podłogowego</a>. Następnie każda krótsza pętla musi zostać zdławiona na rotometrze, aby zrównać swój opór z wartością pętli najdłuższej.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const sliderPower = document.getElementById('sliderPower');
    const sliderLen = document.getElementById('sliderLen');
    const valPower = document.getElementById('valPower');
    const valLen = document.getElementById('valLen');
    
    const switchBtns = document.querySelectorAll('.rk-hyd-switch-btn');
    const switchWrapper = document.getElementById('sourceSwitch');
    let currentDeltaT = 5;

    const resFlow = document.getElementById('resFlow');
    const resSpeed = document.getElementById('resSpeed');
    const resPress = document.getElementById('resPress');
    
    const cardSpeed = document.getElementById('cardSpeed');
    const cardPress = document.getElementById('cardPress');

    // Funkcja zabezpieczająca logikę - unikamy operatora '&&'
    function isBetween(val, min, max) {
        let ok = false;
        if (val >= min) {
            if (val <= max) {
                ok = true;
            }
        }
        return ok;
    }

    function calculateHydraulics() {
        let q = parseFloat(sliderPower.value);
        let len = parseFloat(sliderLen.value);
        
        valPower.textContent = q;
        valLen.textContent = len;

        // Stałe inżynierskie
        let cw = 4186; // J/(kg*K)
        let rho = 994; // kg/m3 (dla wody 35C)
        let dw = 0.012; // 12mm średnica wew. (rura 16x2.0)

        // 1. Strumień masy [kg/s]
        let m = q / (cw * currentDeltaT);

        // Przepływ w [l/min] (1 kg ~ 1 litr)
        let flowLmin = m * 60.36; // 60000 / 994 (zamiana na minuty i litry)
        
        // 2. Prędkość wody [m/s]
        let pi = 3.14159;
        let area = pi * Math.pow((dw / 2), 2);
        let volumeFlow = m / rho; // m3/s
        let speed = volumeFlow / area;

        // 3 i 4. Strata ciśnienia (Uproszczenie oparte na tablicach: 3.44 l/min -> 145 Pa/m)
        // R skaluje się w przybliżeniu wykładniczo z przepływem dla rur gładkich (v^1.75)
        let R = 145 * Math.pow((flowLmin / 3.44), 1.75); 
        
        // Calkowita strata ciśnienia [kPa] z dodatkiem 20%
        let pressLossKpa = (R * len / 1000) * 1.20;

        // Aktualizacja DOM
        resFlow.textContent = flowLmin.toFixed(2);
        resSpeed.textContent = speed.toFixed(2);
        resPress.textContent = pressLossKpa.toFixed(1);

        // Walidacja Prędkości (0.25 - 0.6 m/s)
        if (isBetween(speed, 0.25, 0.60)) {
            cardSpeed.className = 'rk-hyd-out-card status-ok';
        } else {
            cardSpeed.className = 'rk-hyd-out-card status-warn';
        }

        // Walidacja Ciśnienia (poniżej 20 kPa jest super, powyżej 25 kPa duży problem)
        let pressOk = false;
        if (pressLossKpa <= 25) {
            pressOk = true;
        }

        if (pressOk) {
            cardPress.className = 'rk-hyd-out-card status-ok';
        } else {
            cardPress.className = 'rk-hyd-out-card status-warn';
        }
    }

    // Eventy na suwaki
    sliderPower.addEventListener('input', calculateHydraulics);
    sliderLen.addEventListener('input', calculateHydraulics);

    // Eventy na przełącznik Delta T
    for (let i = 0; i < switchBtns.length; i++) {
        switchBtns[i].addEventListener('click', function() {
            // Czyszczenie klas
            for (let j = 0; j < switchBtns.length; j++) {
                switchBtns[j].classList.remove('active');
            }
            this.classList.add('active');
            
            // Animacja tła i zmiana wartości
            currentDeltaT = parseFloat(this.getAttribute('data-dt'));
            if (currentDeltaT === 10) {
                switchWrapper.classList.add('switch-pos-right');
            } else {
                switchWrapper.classList.remove('switch-pos-right');
            }
            
            calculateHydraulics();
        });
    }

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



<style>
:root {
    --rk-ozc-dark: #0f172a;
    --rk-ozc-blue: #0284c7;
    --rk-ozc-light-blue: #f0f9ff;
    --rk-ozc-accent: #0ea5e9;
    --rk-ozc-green: #10b981;
    --rk-ozc-gray: #64748b;
    --rk-ozc-border: #e2e8f0;
    --rk-ozc-bg: #ffffff;
    --rk-ozc-cta: #f59e0b;
}

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

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

.rk-ozc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-ozc-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-ozc-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja Interaktywna - Symulator Zładu */
.rk-ozc-interactive {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-ozc-border);
}

.rk-ozc-calc-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-ozc-calc-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-ozc-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-ozc-calc-title svg {
    color: var(--rk-ozc-blue);
}

/* Slider Controls */
.rk-slider-container {
    margin-bottom: 30px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-ozc-gray);
    margin-bottom: 15px;
}

.rk-slider-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-ozc-blue);
}

.rk-range-input {
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 8px;
    outline: none;
    -webkit-appearance: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 28px;
    height: 28px;
    background: var(--rk-ozc-blue);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

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

/* Wyniki Grid */
.rk-ozc-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-ozc-result-box {
    background: var(--rk-ozc-light-blue);
    border: 1px solid #bae6fd;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-ozc-result-box::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 4px;
    background: var(--rk-ozc-accent);
}

.rk-ozc-result-box:nth-child(2)::before { background: var(--rk-ozc-blue); }
.rk-ozc-result-box:nth-child(3)::before { background: var(--rk-ozc-green); }

.rk-ozc-res-label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-ozc-gray);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-ozc-res-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    margin-bottom: 5px;
}

.rk-ozc-res-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-ozc-blue);
}

/* Content Sekcja */
.rk-ozc-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-ozc-diagram-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--rk-ozc-dark);
    padding: 20px 30px;
    border-radius: 16px;
    color: #ffffff;
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 40px;
    overflow-x: auto;
}

.rk-ozc-flow-step {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.rk-ozc-flow-arrow {
    color: var(--rk-ozc-accent);
}

.rk-ozc-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    margin: 35px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-ozc-content h3:first-of-type { margin-top: 0; }

.rk-ozc-content h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 24px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230284c7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;
}

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

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

.rk-ozc-content a {
    color: var(--rk-ozc-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-ozc-content a:hover {
    color: #0369a1;
}

/* CTA Creative */
.rk-ozc-cta {
    padding: 50px;
    background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-ozc-cta::before {
    content: '';
    position: absolute;
    top: -50%; left: -10%; width: 50%; height: 200%;
    background: rgba(255,255,255,0.05);
    transform: rotate(15deg);
    pointer-events: none;
}

.rk-ozc-cta h3 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
}

.rk-ozc-cta p {
    font-size: 17px;
    color: #e0f2fe;
    margin: 0 auto 35px auto;
    max-width: 650px;
    line-height: 1.6;
    position: relative;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-ozc-cta);
    color: #ffffff;
    font-size: 19px;
    font-weight: 900;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px) scale(1.02);
    background: #d97706;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fcd34d;
}

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

.rk-btn-massive:hover svg {
    transform: translateX(6px);
}

@media (max-width: 850px) {
    .rk-ozc-results-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-ozc-diagram-flow { flex-direction: column; align-items: flex-start; gap: 15px; padding: 25px; }
    .rk-ozc-flow-arrow { transform: rotate(90deg); margin-left: 20px; }
}

@media (max-width: 600px) {
    .rk-ozc-header, .rk-ozc-interactive, .rk-ozc-content, .rk-ozc-cta { padding: 30px 20px; }
    .rk-ozc-header h2 { font-size: 26px; }
    .rk-btn-massive { width: 100%; padding: 20px; font-size: 16px; flex-direction: column; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-ozc-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Jak obecność powłoki EVOH wpływa na projekt ogrzewania podłogowego?",
    "description": "Techniczna analiza wpływu rury EVOH na parametry algorytmów CAD/OZC, dobór naczynia wzbiorczego (0,113 l/m) oraz obniżenie krzywej grzewczej przy rekuperacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-parametry-ozc",
    "name": "Parametry Projektowe i Zład Wody dla Rur EVOH",
    "description": "Baza danych wejściowych do programów Audytor OZC / InstalSystem dla rur 16x2.0 EVOH. Zład wody: 0,113 litra/mb. Opór sekcji: max 20 kPa.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "obliczeniowe zapotrzebowanie na ciepło ozc",
      "zład wody w podłogówce",
      "dobór naczynia wzbiorczego",
      "rekuperacja a ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Normatywne obliczenia długości pętli (max 120m), spadków ciśnień hydraulicznych oraz pojemności buforowej zgodnie z PN-B-02414.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przewodność rury EVOH (lambda) = 0,41 W/(m·K).",
        "Pojemność wodna rury 16x2.0 = 0,113 l/m.",
        "Obniżenie temperatury zasilania o 2-3°C przy jednoczesnym zastosowaniu rekuperacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-kalkulator-zladu",
    "name": "Kalkulator Zładu Wody i Parametrów OZC",
    "description": "Interaktywny kalkulator przeliczający powierzchnię budynku na całkowitą długość rur grzewczych, pojemność wodną instalacji oraz wielkość naczynia wzbiorczego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ozc-container" id="rk-ozc-app">
    <div class="rk-ozc-header">
        <div class="rk-ozc-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Algorytmy Projektowe
        </div>
        <h2>Jak obecność powłoki EVOH wpływa na projekt ogrzewania podłogowego?</h2>
        <p>
            Wdrożenie rury z barierą EVOH to nie tylko wybór materiału. To zmiana parametrów wejściowych algorytmów w programach klasy CAD/OZC (np. InstalSystem, Audytor OZC). Projektant musi bezwzględnie powiązać parametry fizyczne rury z charakterystyką źródła ciepła.
        </p>
    </div>

    <div class="rk-ozc-interactive">
        <div class="rk-ozc-calc-wrapper">
            <div class="rk-ozc-calc-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Symulator Zładu Wodnego (Dla Rury 16x2.0 EVOH)
            </div>
            
            <div class="rk-slider-container">
                <div class="rk-slider-label">
                    <span>Powierzchnia grzewcza budynku:</span>
                    <span class="rk-slider-val"><span id="rkAreaVal">150</span> m²</span>
                </div>
                <input type="range" id="rkAreaSlider" class="rk-range-input" min="80" max="300" step="10" value="150" aria-label="Wybierz powierzchnię domu">
            </div>

            <div class="rk-ozc-results-grid">
                <div class="rk-ozc-result-box">
                    <div class="rk-ozc-res-label">Szacowana długość rur</div>
                    <div class="rk-ozc-res-val" id="rkResLen">1005</div>
                    <div class="rk-ozc-res-unit">metrów bieżących</div>
                </div>
                <div class="rk-ozc-result-box">
                    <div class="rk-ozc-res-label">Woda w podłogówce</div>
                    <div class="rk-ozc-res-val" id="rkResVol">114</div>
                    <div class="rk-ozc-res-unit">litrów w pętlach</div>
                </div>
                <div class="rk-ozc-result-box">
                    <div class="rk-ozc-res-label">Naczynie wzbiorcze</div>
                    <div class="rk-ozc-res-val" id="rkResVessel">31</div>
                    <div class="rk-ozc-res-unit">litrów (z buforem 200L)</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-ozc-content">
        <div class="rk-ozc-diagram-flow">
            <div class="rk-ozc-flow-step">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M9 18l3-3-3-3"></path></svg>
                Dane OZC budynku
            </div>
            <div class="rk-ozc-flow-arrow">➔</div>
            <div class="rk-ozc-flow-step">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M8 14s1.5 2 4 2 4-2 4-2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line></svg>
                Rozstaw rur (W/m²)
            </div>
            <div class="rk-ozc-flow-arrow">➔</div>
            <div class="rk-ozc-flow-step">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                Obliczenie zładu wody
            </div>
            <div class="rk-ozc-flow-arrow">➔</div>
            <div class="rk-ozc-flow-step">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                Dobór naczynia / pompy
            </div>
        </div>

        <h3>Korelacja z OZC (Obliczeniowym Zapotrzebowaniem na Ciepło)</h3>
        <p>
            Rura z barierą EVOH o przewodności <strong>0,41 W/(m·K)</strong> pozwala na dokładne mapowanie strumienia cieplnego. Przy gęstym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur w wodnym ogrzewaniu podłogowym</a> (np. co 10 cm) w domach energooszczędnych o zapotrzebowaniu 30 W/m², niska chropowatość wewnętrzna rury EVOH pozwala na projektowanie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">pętli o maksymalnej długości do 120 m</a> bez przekraczania dopuszczalnych oporów hydraulicznych pojedynczej sekcji rozdzielacza (20 kPa).
        </p>

        <h3>Dobór pojemności zładu wodnego a naczynie wzbiorcze</h3>
        <p>
            Standardowa rura <strong>16x2.0 mm mieści dokładnie 0,113 litra wody na metr bieżący</strong>. Znając całkowitą długość z projektu (np. 1200 m dla domu 180 m²), objętość samej instalacji podłogowej wynosi 1200 × 0,113 = <strong>135,6 litra</strong>. Dane te są niezbędne, aby wyliczyć <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">ile wody mieści się w instalacji</a> i dokonać prawidłowego doboru objętościowego zgodnie z normą PN-B-02414. Dla układu z pompą ciepła i buforem 200 l, całkowity zład wynosi ok. 350 litrów, co wymaga <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego przeponowego</a> o pojemności minimum 35 litrów.
        </p>

        <h3>Integracja z systemami wentylacji (Rekuperacja)</h3>
        <p>
            Obecność stabilnej termicznie podłogówki z barierą EVOH współpracującej z <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacją pozwala na obniżenie projektowej temperatury zasilania</a> o kolejne 2-3°C (z 35°C na 32°C). Wynika to z faktu, że rekuperator eliminuje drastyczne straty ciepła charakterystyczne dla wentylacji grawitacyjnej, a czysta, wolna od szlamu rura EVOH stale oddaje ciepło ze sprawnością początkową na poziomie 100%.
        </p>
    </div>

    <div class="rk-ozc-cta">
        <h3>Skończ z instalacjami robionymi "na oko"</h3>
        <p>
            Twój instalator twierdzi, że "zawsze tak robił i grzeje"? Ogrzewanie podłogowe to czysta fizyka i twarde wzory matematyczne. Zbuduj swój dom na fundamencie profesjonalnych obliczeń OZC i uniknij przewymiarowania kotłowni.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkAreaSlider');
    const valArea = document.getElementById('rkAreaVal');
    const resLen = document.getElementById('rkResLen');
    const resVol = document.getElementById('rkResVol');
    const resVessel = document.getElementById('rkResVessel');

    // Współczynniki do obliczeń (przybliżenia inżynierskie)
    // Srednie zużycie rury: ~6.7 mb / m2 (mieszanka łazienki 10cm i pokoje 15cm)
    const factorLength = 6.7;
    // Pojemność wodna rury 16x2.0: 0.113 l/mb
    const factorVol = 0.113;
    // Pojemność bufora założona na sztywno do obliczeń naczynia
    const bufferVol = 200;

    function calculateValues() {
        let area = parseInt(slider.value);
        valArea.textContent = area;

        // Obliczenia
        let length = Math.round(area * factorLength);
        let waterInPipes = Math.round(length * factorVol);
        
        // Naczynie wzbiorcze: ok. 10% całkowitego zładu (woda w rurach + bufor + zapas na źródło)
        let totalSystemVol = waterInPipes + bufferVol + 20; // 20L zapas na kocioł/PC
        let vesselSize = Math.round(totalSystemVol * 0.10);

        // Aktualizacja DOM
        resLen.textContent = length;
        resVol.textContent = waterInPipes;
        resVessel.textContent = vesselSize;
    }

    // Inicjalizacja i nasłuch
    calculateValues();
    slider.addEventListener('input', calculateValues);
});
</script>



<style>
:root {
    --rk-dec-dark: #0f172a;
    --rk-dec-blue: #0284c7;
    --rk-dec-light: #f0f9ff;
    --rk-dec-accent: #0ea5e9;
    --rk-dec-green: #10b981;
    --rk-dec-red: #ef4444;
    --rk-dec-gray: #64748b;
    --rk-dec-border: #e2e8f0;
    --rk-dec-bg: #ffffff;
    --rk-dec-gold: #f59e0b;
}

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

.rk-dec-container * {
    box-sizing: border-box;
}

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

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

.rk-dec-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-dec-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja: Jaka rura do podłogówki (Pojedynek) */
.rk-dec-duel {
    padding: 40px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dec-border);
}

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

.rk-duel-title h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dec-dark);
    margin: 0 0 10px 0;
}

.rk-duel-tabs {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
    gap: 6px;
}

.rk-duel-btn {
    flex: 1;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dec-gray);
    background: transparent;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    margin: 0;
}

.rk-duel-btn:hover {
    color: var(--rk-dec-dark);
    background: rgba(255, 255, 255, 0.5);
}

.rk-duel-btn.active {
    background: var(--rk-dec-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

/* Zawartość Zakładek */
.rk-duel-content {
    display: none;
    animation: fadeInDec 0.4s ease-out;
}

.rk-duel-content.active {
    display: block;
}

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

.rk-duel-card {
    background: #ffffff;
    border: 2px solid var(--rk-dec-border);
    border-radius: 20px;
    padding: 35px;
}

.rk-duel-card.highlight {
    border-color: #bae6fd;
    background: var(--rk-dec-light);
}

.rk-duel-card-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dec-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-duel-card-title svg {
    color: var(--rk-dec-blue);
    flex-shrink: 0;
}

/* Przebudowana lista na kafelki z wymuszeniem sztywnych SVG */
.rk-duel-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 25px;
}

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

.rk-duel-item p {
    margin: 0;
    font-size: 15px;
    color: #334155;
    line-height: 1.6;
    font-weight: 500;
}

/* TO ZAPOBIEGA ROZRASTANIU SIĘ SVG */
.rk-icon-fixed {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    color: var(--rk-dec-green);
    margin-top: 2px;
}

.rk-duel-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-dec-gray);
    margin: 0;
    padding: 20px;
    background: #f8fafc;
    border-radius: 12px;
    border-left: 4px solid var(--rk-dec-blue);
}

.rk-duel-desc strong {
    color: var(--rk-dec-dark);
}

/* Sekcja: ROI i Opłacalność dopłaty */
.rk-dec-roi {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-roi-text {
    margin-bottom: 35px;
}

.rk-roi-text h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dec-dark);
    margin: 0 0 15px 0;
}

.rk-roi-text p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

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

/* Kalkulator Dopłaty */
.rk-roi-calculator {
    background: #ffffff;
    border: 1px solid var(--rk-dec-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

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

.rk-roi-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-dec-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-roi-val-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-dec-blue);
}

.rk-roi-slider {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 10px;
    outline: none;
    -webkit-appearance: none;
    margin-bottom: 35px;
}

.rk-roi-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 30px;
    height: 30px;
    background: var(--rk-dec-blue);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

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

/* Porównanie Kosztów */
.rk-roi-compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-roi-box {
    padding: 25px 20px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
}

.rk-roi-box.invest {
    background: var(--rk-dec-light);
    border: 2px solid #bae6fd;
}

.rk-roi-box.risk {
    background: #fef2f2;
    border: 2px solid #fca5a5;
}

.rk-roi-box-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.invest .rk-roi-box-title { color: var(--rk-dec-blue); }
.risk .rk-roi-box-title { color: var(--rk-dec-red); }

.rk-roi-box-cost {
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 8px;
}

.invest .rk-roi-box-cost { color: var(--rk-dec-dark); }
.risk .rk-roi-box-cost { color: var(--rk-dec-red); }

.rk-roi-box-desc {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-dec-gray);
    line-height: 1.5;
}

@media (max-width: 850px) {
    .rk-roi-compare { grid-template-columns: 1fr; gap: 15px; }
}

@media (max-width: 600px) {
    .rk-dec-header, .rk-dec-duel, .rk-dec-roi { padding: 30px 20px; }
    .rk-dec-header h2, .rk-duel-title h2, .rk-roi-text h2 { font-size: 26px; }
    
    .rk-duel-tabs { flex-direction: column; padding: 6px; gap: 6px; }
    .rk-duel-btn { width: 100%; height: 46px; }
    
    .rk-duel-card, .rk-roi-calculator { padding: 25px 20px; }
    .rk-roi-calc-header { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-wybor-rury",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Jaka rura do ogrzewania podłogowego – PEX-a EVOH czy PE-RT EVOH? Czy warto dopłacić?",
    "description": "Szczegółowe porównanie rur PEX-a EVOH i PE-RT EVOH do ogrzewania podłogowego oraz analiza rentowności i zwrotu z inwestycji (dopłaty) do bariery tlenowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-roi-evoh",
    "name": "Analiza zwrotu z inwestycji (ROI) w barierę EVOH względem kosztów awarii",
    "description": "Zestawienie kosztów dopłaty do rury z barierą antydyfuzyjną na m2 budynku z potencjalnymi kosztami napraw kotłowni (wymiana pompy ciepła, płukanie instalacji).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto dopłacić do rury EVOH",
      "jaka rura do ogrzewania podłogowego",
      "rura EVOH cena",
      "PEX-a EVOH czy PE-RT EVOH",
      "ile kosztuje 100 m² ogrzewania podłogowego",
      "koszt ogrzewania domu 2025"
    ],
    "measurementTechnique": "Obliczanie różnicy cenowej (dopłaty) na podstawie szacunkowego zużycia rury 6,7 mb/m2 w relacji do stałego kosztu serwisu uszkodzonej instalacji (ok. 2500 PLN).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt dopłaty do bariery EVOH: ok. 0,40 - 0,60 PLN za metr bieżący.",
        "Koszty braku bariery: Uszkodzenie pompy klasy A (ok. 2500 PLN), czyszczenie wymiennika.",
        "Rekomendacja rynkowa: PEX-a (termiczna pamięć kształtu, sieciowanie) vs PE-RT Typ II (elastyczność, brak sieciowania)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-kalkulator-doplaty",
    "name": "Kalkulator Dopłaty do EVOH",
    "description": "Narzędzie pozwalające inwestorowi obliczyć koszt dopłaty do lepszej rury z barierą tlenową na podstawie powierzchni domu i zestawić to z kosztem potencjalnej awarii.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dec-container" id="rk-decision-maker">
    <div class="rk-dec-header">
        <div class="rk-dec-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Decyzjomat Inwestora
        </div>
        <h2>Jaka rura do ogrzewania podłogowego – PEX-a EVOH czy PE-RT EVOH?</h2>
        <p>
            Stoisz przed ostatecznym wyborem materiału. Poznaj twarde argumenty inżynierskie, które rozwieją Twoje wątpliwości przed zakupem.
        </p>
    </div>

    <div class="rk-dec-duel">
        
        <div class="rk-duel-tabs" id="rkDuelTabs">
            <button class="rk-duel-btn active" data-target="duel-pexa">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v8"></path><path d="M8 12h8"></path></svg>
                PEX-a EVOH
            </button>
            <button class="rk-duel-btn" data-target="duel-pert">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                PE-RT Typ II EVOH
            </button>
        </div>

        <div class="rk-duel-content active" id="duel-pexa">
            <div class="rk-duel-card highlight">
                <h3 class="rk-duel-card-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"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Król Wytrzymałości (Sieciowany Nadtlenkowo)
                </h3>
                
                <div class="rk-duel-list">
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Posiada termiczną pamięć kształtu (uszkodzenia można łatwo zregenerować w temperaturze 130°C).</p>
                    </div>
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Odporna na ekstremalne wahania temperatur roboczych w układzie (najwyższa Klasa 5).</p>
                    </div>
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Minimalizuje ryzyko pęknięć naprężeniowych przy mrozie podczas prac budowlanych.</p>
                    </div>
                </div>

                <div class="rk-duel-desc">
                    <strong>Werdykt Inżyniera:</strong> Wybór bezkompromisowy. Jeśli budujesz dom na lata i chcesz wykluczyć błędy montażowe instalatora (np. przypadkowe załamania rury), PEX-a EVOH to materiał z absolutnie najwyższej półki.
                </div>
            </div>
        </div>

        <div class="rk-duel-content" id="duel-pert">
            <div class="rk-duel-card">
                <h3 class="rk-duel-card-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"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Elastyczność i Ekonomia (Polietylen Typu II)
                </h3>
                
                <div class="rk-duel-list">
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Bardzo wysoka elastyczność struktury, mocno ułatwiająca układanie trudnych pętli grzewczych.</p>
                    </div>
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Brak skomplikowanego procesu sieciowania przekłada się na delikatnie niższą cenę za metr.</p>
                    </div>
                    <div class="rk-duel-item">
                        <svg class="rk-icon-fixed" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <p>Świetnie współpracuje ze standardowymi, niskotemperaturowymi instalacjami płaszczyznowymi.</p>
                    </div>
                </div>

                <div class="rk-duel-desc">
                    <strong>Werdykt Inżyniera:</strong> Doskonały wybór do optymalnych budżetowo projektów, gdzie źródłem ciepła jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>. Wymaga jednak od wykonawcy precyzji, gdyż załamanie rury definitywnie wyklucza ją z użytku.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-dec-roi">
        <div class="rk-roi-text">
            <h2>Czy warto dopłacić do rury z barierą antydyfuzyjną EVOH?</h2>
            <p>
                W praktyce różnica cenowa pomiędzy standardową rurą bez bariery tlenowej a nowoczesną rurą 5-warstwową z powłoką EVOH stanowi zwykle zaledwie ułamek całkowitego <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">kosztu wykonania ogrzewania</a>. Z punktu widzenia projektanta instalacji grzewczych, wybór rury z <strong>barierą antydyfuzyjną EVOH</strong> nie jest dodatkiem podnoszącym komfort, lecz absolutnie podstawowym zabezpieczeniem trwałości całego systemu.
            </p>
            <p>
                Dlatego zarówno w instalacjach z pompą ciepła, jak i <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotłem gazowym</a>, rekomendowane są <strong>wyłącznie</strong> rury PEX-a EVOH lub PE-RT Typ II EVOH spełniające wymagania rygorystycznej normy DIN 4726. Zobacz na konkretnych liczbach, dlaczego oszczędzanie na rurze to finansowa pułapka.
            </p>
        </div>

        <div class="rk-roi-calculator">
            <div class="rk-roi-calc-header">
                <span class="rk-roi-label">Metraż Twojej podłogówki</span>
                <span class="rk-roi-val-display"><span id="roiAreaVal">150</span> m²</span>
            </div>
            
            <input type="range" id="roiAreaSlider" class="rk-roi-slider" min="50" max="300" step="10" value="150" aria-label="Suwak metrażu">

            <div class="rk-roi-compare">
                <div class="rk-roi-box invest">
                    <div class="rk-roi-box-title">Dopłata do rury z EVOH</div>
                    <div class="rk-roi-box-cost">+ <span id="roiEvohCost">500</span> zł</div>
                    <div class="rk-roi-box-desc">Jednorazowa inwestycja materiałowa. Zapewnia brak tlenu w instalacji przez 50 lat.</div>
                </div>
                
                <div class="rk-roi-box risk">
                    <div class="rk-roi-box-title">Koszt awarii bez EVOH</div>
                    <div class="rk-roi-box-cost">- <span id="roiBreakCost">2500</span> zł</div>
                    <div class="rk-roi-box-desc">Ryzyko pęknięcia wymiennika lub zatarcia pompy co ok. 3-5 lat z powodu szlamu.</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Obsługa zakładek (Pojedynek Rur)
    const duelBtns = document.querySelectorAll('.rk-duel-btn');
    const duelContents = document.querySelectorAll('.rk-duel-content');

    for (let i = 0; i < duelBtns.length; i++) {
        duelBtns[i].addEventListener('click', function() {
            // Usunięcie klas active bez uzycia &#038;&#038;
            for (let j = 0; j < duelBtns.length; j++) {
                duelBtns[j].classList.remove('active');
            }
            for (let k = 0; k < duelContents.length; k++) {
                duelContents[k].classList.remove('active');
            }

            // Dodanie klas
            this.classList.add('active');
            let targetId = this.getAttribute('data-target');
            let targetContent = document.getElementById(targetId);
            
            let isFound = false;
            if (targetContent) {
                isFound = true;
            }
            if (isFound) {
                targetContent.classList.add('active');
            }
        });
    }

    // Obsługa Kalkulatora ROI
    const slider = document.getElementById('roiAreaSlider');
    const areaVal = document.getElementById('roiAreaVal');
    const evohCost = document.getElementById('roiEvohCost');
    const breakCost = document.getElementById('roiBreakCost');

    // Stałe do obliczeń (Ceny Rynkowe Oszacowane)
    const pipePerM2 = 6.7; // mb rury na m2
    const priceDiffPerMeter = 0.50; // Różnica w PLN między rurą bez EVOH a markową z EVOH

    function calculateROI() {
        let area = parseInt(slider.value, 10);
        areaVal.textContent = area;

        // Obliczenie dopłaty do EVOH
        let totalMeters = area * pipePerM2;
        let extraCost = Math.round(totalMeters * priceDiffPerMeter);
        evohCost.textContent = extraCost;

        // Szacowanie ryzyka awarii (Kocioł/Pompa) na przestrzeni 5 lat
        let risk = 2500; 
        
        let condition1 = false;
        if (area <= 100) { condition1 = true; }
        if (condition1) { risk = 1800; }
        
        let condition2 = false;
        if (area > 100) {
            if (area <= 200) {
                condition2 = true;
            }
        }
        if (condition2) { risk = 2500; }
        
        let condition3 = false;
        if (area > 200) { condition3 = true; }
        if (condition3) { risk = 3800; }

        breakCost.textContent = risk;
    }

    // Inicjalizacja i nasłuch
    calculateROI();
    slider.addEventListener('input', calculateROI);
});
</script>



<style>
:root {
    --rk-scan-dark: #0f172a;
    --rk-scan-blue: #0284c7;
    --rk-scan-light: #f8fafc;
    --rk-scan-accent: #0ea5e9;
    --rk-scan-green: #10b981;
    --rk-scan-gray: #64748b;
    --rk-scan-border: #e2e8f0;
    --rk-scan-bg: #ffffff;
    --rk-scan-gold: #f59e0b;
}

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

.rk-scan-container * {
    box-sizing: border-box;
}

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

.rk-scan-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #34d399;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(52, 211, 153, 0.2);
}

.rk-scan-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-scan-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja Interaktywna - Dekoder */
.rk-scan-interactive {
    padding: 45px 50px;
    background: #f1f5f9;
    border-bottom: 1px solid var(--rk-scan-border);
}

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

.rk-scan-int-title h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-scan-dark);
    margin: 0 0 10px 0;
}

.rk-scan-int-title p {
    color: var(--rk-scan-gray);
    font-size: 15px;
    margin: 0;
}

/* Wirtualna Rura z Nadrukiem */
.rk-virtual-pipe-wrap {
    background: #ffffff;
    border: 2px solid var(--rk-scan-border);
    border-radius: 16px;
    padding: 40px 20px;
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.02);
}

/* Tło rury - symulacja zaokrąglenia */
.rk-pipe-graphic {
    background: linear-gradient(to bottom, #d1d5db 0%, #f8fafc 20%, #e2e8f0 80%, #94a3b8 100%);
    height: 80px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    box-shadow: 0 10px 20px -10px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-pipe-print {
    display: flex;
    gap: 15px;
    font-family: monospace;
    font-size: 18px;
    font-weight: 800;
    color: #334155;
    flex-wrap: wrap;
    justify-content: center;
}

.rk-print-segment {
    padding: 4px 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-print-segment:hover {
    background: rgba(2, 132, 199, 0.1);
    color: var(--rk-scan-blue);
}

.rk-print-segment.active {
    background: var(--rk-scan-blue);
    color: #ffffff;
    border-color: #0369a1;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

/* Wyświetlacz informacji */
.rk-scan-display {
    background: #ffffff;
    border-left: 4px solid var(--rk-scan-blue);
    border-radius: 0 16px 16px 0;
    padding: 25px 30px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    display: none;
    animation: slideInScan 0.4s ease-out;
}

.rk-scan-display.active {
    display: block;
}

@keyframes slideInScan {
    from { opacity: 0; transform: translateX(-15px); }
    to { opacity: 1; transform: translateX(0); }
}

.rk-scan-display h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-scan-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-scan-display h4 svg {
    color: var(--rk-scan-blue);
}

.rk-scan-display p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-scan-gray);
    margin: 0;
}

/* Część Teoretyczna */
.rk-scan-theory {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-scan-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

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

.rk-scan-theory a {
    color: var(--rk-scan-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-scan-theory a:hover {
    color: #0369a1;
}

.rk-scan-warning {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
    margin-top: 25px;
}

.rk-scan-warning svg {
    color: var(--rk-scan-red);
    flex-shrink: 0;
}

.rk-scan-warning-text h4 {
    margin: 0 0 8px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 800;
}

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

/* Wskazówka Eksperta (Mini-Autorytet) */
.rk-expert-tip {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 35px;
    padding-top: 25px;
    border-top: 1px solid var(--rk-scan-border);
}

.rk-expert-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--rk-scan-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.2);
    flex-shrink: 0;
}

.rk-expert-details h5 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-scan-dark);
}

.rk-expert-details p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-scan-gray);
    line-height: 1.5;
}

@media (max-width: 850px) {
    .rk-pipe-print { font-size: 15px; gap: 10px; }
}

@media (max-width: 600px) {
    .rk-scan-header, .rk-scan-interactive, .rk-scan-theory { padding: 30px 20px; }
    .rk-scan-header h2 { font-size: 26px; }
    
    .rk-pipe-graphic { height: auto; padding: 20px 10px; flex-direction: column; }
    .rk-pipe-print { flex-direction: column; gap: 5px; width: 100%; text-align: center; }
    .rk-print-segment { width: 100%; padding: 8px; background: rgba(255,255,255,0.5); }
    .rk-scan-display { padding: 20px; border-left: none; border-top: 4px solid var(--rk-scan-blue); border-radius: 12px; }
    
    .rk-expert-tip { flex-direction: column; text-align: center; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-jak-sprawdzic-oznaczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Jak sprawdzić, czy rura posiada barierę antydyfuzyjną EVOH?",
    "description": "Instrukcja weryfikacji rur do ogrzewania podłogowego. Jak czytać oznaczenia na rurach PEX/PE-RT, by potwierdzić obecność powłoki EVOH i normę DIN 4726.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-weryfikacja-oznaczen",
    "name": "Weryfikacja oznaczeń rur ogrzewania podłogowego (DIN 4726)",
    "description": "Baza danych interpretacji technicznych nadruków na rurach grzewczych pozwalająca inwestorowi rozpoznać prawdziwą barierę tlenową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak sprawdzić rurę EVOH",
      "jak rozpoznać rurę do podłogówki",
      "jaka rura do ogrzewania podłogowego",
      "czy rura ma barierę tlenową",
      "oznaczenia na rurach PEX"
    ],
    "measurementTechnique": "Organoleptyczna weryfikacja parametrów fizycznych poprzez analizę ciągów znaków (nadruków) z naniesionymi klasami ciśnienia i normami na warstwie zewnętrznej polimeru.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja warstw: Szukaj oznaczeń 5L lub struktury wielowarstwowej na nadruku.",
        "Potwierdzenie szczelności tlenowej: Zgodność z niemiecką normą DIN 4726.",
        "Brak oznaczeń oznacza brak bariery antydyfuzyjnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-dekoder-oznaczen",
    "name": "Interaktywny Dekoder Oznaczeń Rury PEX/PE-RT",
    "description": "Narzędzie symulujące prawdziwy nadruk na rurze do podłogówki, pozwalające kliknąć w dany ciąg znaków, aby poznać inżynierskie znaczenie atestów EVOH i klas ciśnienia.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-scan-container" id="rk-scan-module">
    <div class="rk-scan-header">
        <div class="rk-scan-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h3l3-9 5 18 3-9h5"></path></svg>
            Weryfikacja Placu Budowy
        </div>
        <h2>Jak sprawdzić, czy rura posiada barierę antydyfuzyjną EVOH?</h2>
        <p>
            Nie wierz na słowo. Instalator przyniósł rolki rur na budowę? Zanim zalejesz je betonem, organoleptycznie zweryfikuj nadruk. Brak odpowiednich znaków to sygnał alarmowy.
        </p>
    </div>

    <div class="rk-scan-interactive">
        <div class="rk-scan-int-title">
            <h3>Skaner Oznaczeń Rury Grzewczej</h3>
            <p>Kliknij w poszczególne fragmenty nadruku na poniższej wirtualnej rurze, aby poznać ich inżynierskie znaczenie.</p>
        </div>

        <div class="rk-virtual-pipe-wrap">
            <div class="rk-pipe-graphic">
                <div class="rk-pipe-print" id="rkPrintContainer">
                    <span class="rk-print-segment active" data-target="scan-mat">PE-RT/EVOH/PE-RT</span>
                    <span class="rk-print-segment" data-target="scan-dim">16x2.0</span>
                    <span class="rk-print-segment" data-target="scan-class">Klasa 4 / 6bar</span>
                    <span class="rk-print-segment" data-target="scan-din">DIN 4726</span>
                    <span class="rk-print-segment" data-target="scan-layer">5L</span>
                </div>
            </div>
        </div>

        <div class="rk-scan-display active" id="scan-mat">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Oznaczenie Warstw Materiału
            </h4>
            <p>Ten ciąg potwierdza budowę wielowarstwową rury. Skrót EVOH musi znajdować się wewnątrz tego zapisu (często między warstwami polietylenu, takimi jak PEX lub PE-RT). Jeśli widzisz tylko "PE-RT", rura jest jednorodna i nie ma bariery!</p>
        </div>

        <div class="rk-scan-display" id="scan-dim">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="22" y1="12" x2="18" y2="12"></line><line x1="6" y1="12" x2="2" y2="12"></line><line x1="12" y1="6" x2="12" y2="2"></line><line x1="12" y1="22" x2="12" y2="18"></line></svg>
                Średnica i Ścianka
            </h4>
            <p>16x2.0 to standardowa rura używana w systemach płaszczyznowych. Pierwsza liczba to zewnętrzna średnica w milimetrach, druga to grubość ścianki. Rura o grubości ścianki 2.0mm gwarantuje bezpieczne zalewanie betonem.</p>
        </div>

        <div class="rk-scan-display" id="scan-class">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Klasa Zastosowania (Parametry)
            </h4>
            <p>Zgodnie z PN-EN ISO 21003. "Klasa 4" dotyczy ogrzewania podłogowego o maksymalnej temperaturze pracy ciągłej 70°C, a "Klasa 5" grzejnikowego (90°C). 6bar określa bezpieczne ciśnienie układu. W podłogówce te wartości to potężny zapas bezpieczeństwa.</p>
        </div>

        <div class="rk-scan-display" id="scan-din">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                Kluczowa Norma Antydyfuzyjna
            </h4>
            <p>To najważniejszy element, którego musisz szukać! Nadruk "DIN 4726" to laboratoryjne poświadczenie, że bariera EVOH na tej rurze rzeczywiście powstrzymuje dyfuzję tlenu do wartości bezpiecznych dla kotła i pompy ciepła.</p>
        </div>

        <div class="rk-scan-display" id="scan-layer">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                Konstrukcja 5L
            </h4>
            <p>Oznaczenie 5L (lub rzadziej 5-Layer) mówi o tym, że bariera EVOH ukryta jest bezpiecznie w rdzeniu rury (pomiędzy warstwami PEX/PE-RT). Chroni ją to przed przetarciem o styropian podczas montażu. Rury 3L są bardziej podatne na uszkodzenia bariery.</p>
        </div>
    </div>

    <div class="rk-scan-theory">
        <p>
            Przed zakupem lub montażem warto i trzeba sprawdzać oznaczenia nadrukowane na rurze co kilkadziesiąt centymetrów. Poważny producent <strong>zawsze</strong> podaje informację o warstwie EVOH, budowie wielowarstwowej oraz zgodności z certyfikatami. 
        </p>

        <div class="rk-scan-warning">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            <div class="rk-scan-warning-text">
                <h4>Ostrzeżenie Inwestycyjne</h4>
                <p>
                    Jeśli na rurze, którą hydraulik rozwinął w Twoim salonie, nie ma jasnej informacji o EVOH lub normie antydyfuzyjnej DIN 4726, zachowaj natychmiastową ostrożność. W profesjonalnych i bezpiecznych systemach <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">wodnego ogrzewania podłogowego</a> stosuje się <strong>wyłącznie</strong> rury posiadające potwierdzoną barierę tlenową. Zwykła rura instalacyjna nadaje się do przesyłu wody pitnej, ale nigdy do zamkniętego układu centralnego ogrzewania.
                </p>
            </div>
        </div>

        <div class="rk-expert-tip">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
            <div class="rk-expert-details">
                <h5>Wskazówka Specjalisty HVAC</h5>
                <p>Jako inżynierowie projektujący tysiące układów dla <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>, uczulam: nawet najlepsza <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rura PEX</a>, do której producent nie załącza pełnej karty technicznej z udokumentowanym badaniem przenikalności tlenu, jest z punktu widzenia projektowego materiałem wysokiego ryzyka.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const printSegments = document.querySelectorAll('.rk-print-segment');
    const displays = document.querySelectorAll('.rk-scan-display');

    for (let i = 0; i < printSegments.length; i++) {
        printSegments[i].addEventListener('click', function() {
            
            // Usunięcie stanu active ze wszystkich przycisków
            for (let j = 0; j < printSegments.length; j++) {
                printSegments[j].classList.remove('active');
            }
            
            // Ukrycie wszystkich okien informacji
            for (let k = 0; k < displays.length; k++) {
                displays[k].classList.remove('active');
            }

            // Aktywacja wybranego
            this.classList.add('active');
            let targetId = this.getAttribute('data-target');
            let targetPanel = document.getElementById(targetId);
            
            let isFound = false;
            if (targetPanel) {
                isFound = true;
            }

            if (isFound) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-green: #10b981;
    --rk-err-green-light: #dcfce7;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

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

/* Nagłówek */
.rk-err-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, #7f1d1d 0%, var(--rk-err-dark) 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-err-red);
}

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

.rk-err-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-err-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 750px;
    margin: 0 auto;
    line-height: 1.6;
}

.rk-err-loss-tag {
    display: inline-block;
    margin-top: 15px;
    background: #ef4444;
    color: #fff;
    padding: 6px 16px;
    border-radius: 8px;
    font-weight: 800;
    font-size: 15px;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.4);
}

/* Interaktywny Panel */
.rk-err-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

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

/* Karty Błędów */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 25px;
    position: relative;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
}

/* Stan: Błąd (Domyślny) */
.rk-err-card.state-error {
    border-color: #fca5a5;
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.1);
}

/* Stan: Bezpieczny */
.rk-err-card.state-safe {
    border-color: #6ee7b7;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.1);
}

/* Przełącznik (Switch) */
.rk-err-switch-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-switch-label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.state-error .rk-err-switch-label { color: var(--rk-err-red); }
.state-safe .rk-err-switch-label { color: var(--rk-err-green); }

.rk-toggle-btn {
    position: relative;
    width: 54px;
    height: 30px;
    background: var(--rk-err-red);
    border-radius: 30px;
    cursor: pointer;
    transition: background 0.3s;
    border: none;
    outline: none;
}

.rk-toggle-circle {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: #ffffff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.state-safe .rk-toggle-btn { background: var(--rk-err-green); }
.state-safe .rk-toggle-circle { transform: translateX(24px); }

/* Zawartość Karty */
.rk-err-icon-wrap {
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.rk-err-svg { width: 70px; height: 70px; }

/* Animacje SVG */
.anim-shake { animation: errShake 0.5s infinite alternate; }
.anim-pulse { animation: errPulse 2s infinite; }
.anim-geyser { stroke-dasharray: 5; animation: errGeyser 0.5s linear infinite; }

@keyframes errShake { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
@keyframes errPulse { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes errGeyser { to { stroke-dashoffset: -10; } }

.rk-err-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-err-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-err-gray);
    margin: 0 0 15px 0;
    flex-grow: 1;
}

.rk-err-card a {
    color: var(--rk-err-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-err-card a:hover { color: #0369a1; }

.rk-err-status {
    padding: 12px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
}

.state-error .rk-err-status { background: var(--rk-err-red-light); color: #991b1b; }
.state-safe .rk-err-status { background: var(--rk-err-green-light); color: #065f46; }

/* Tagi u dołu */
.rk-err-tags {
    padding: 0 50px 30px;
    background: #f8fafc;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-invisible-tag { display: none; } /* Używane tylko w JSON-LD, tu dajemy wizualne na prośbę zachowania stylistyki, ale zapytanie mówi "nie dawaj mi hasztagów widocznych", więc je ukrywam całkowicie dla usera, a zostawiam mechanikę, jeśli by była potrzebna. W tym przypadku usuwam widoczne tagi na polecenie: "nie dawaj mi hasztagów widocznych dla użytkownika osadzie tylko w warstwie strukturalnej" */

@media (max-width: 850px) {
    .rk-err-grid { grid-template-columns: repeat(2, 1fr); }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-bledy-montazowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Najczęstsze błędy instalacyjne podczas układania rur z barierą tlenową",
    "description": "Niewłaściwy montaż rur podłogowych (brak dylatacji w peszlach, załamywanie PE-RT, brak próby 6 bar) generuje straty rzędu 40 000 PLN po zalaniu jastrychu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-straty-awarie",
    "name": "Zestawienie strat finansowych z tytułu błędów instalacyjnych Ogrzewania Podłogowego",
    "description": "Dane dotyczące ukrytych wad instalacji płaszczyznowych. Wskazane wartości to 10 000 PLN - 40 000 PLN z tytułu konieczności zrywania wylewek i naprawy uszkodzonych barier EVOH.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki źle ułożonej podłogówki",
      "pęknięta rura w podłodze koszty",
      "jak zabezpieczyć rury w dylatacji",
      "czy można zalać podłogówkę bez ciśnienia",
      "złamana rura pert co robić"
    ],
    "measurementTechnique": "Szacowanie strat na podstawie kosztorysów naprawczych uwzględniających skucie betonu, naprawę dylatacji (PN-EN 1264-4) i testy szczelności (0,6 MPa wg PORT PC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt braku peszla w dylatacji: ścięcie rury przez beton pracujący termicznie.",
        "Koszt prostowania rury PE-RT w rękach: pocienienie ścianki i rozerwanie powłoki EVOH, wyciek w 2-5 lat.",
        "Koszt lania betonu bez ciśnienia: ryzyko zgniecenia rury lub przebicia bez natychmiastowej detekcji (brak gejzeru)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-symulator-bledow",
    "name": "Symulator Błędów Instalacyjnych Podłogówki",
    "description": "Aplikacja edukacyjna pozwalająca użytkownikowi zdiagnozować krytyczne usterki wykonawcze przed wylaniem posadzki i przełączyć tryb na standard inżynierski.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-simulator">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Krytyczna Weryfikacja
        </div>
        <h2>Najczęstsze błędy instalacyjne podczas układania rur z barierą tlenową</h2>
        <p>
            Niewłaściwy montaż rur grzewczych generuje ukryte wady instalacji, które ujawniają się dopiero po zalaniu jastrychu betonowego i uruchomieniu ogrzewania. Oszczędność czasu na tym etapie oznacza katastrofę budowlaną.
        </p>
        <div class="rk-err-loss-tag">Potencjalne straty po wylewce: 10 000 PLN – 40 000 PLN</div>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-card state-error" data-id="card-1">
                <div class="rk-err-switch-box">
                    <span class="rk-err-switch-label" id="label-1">BŁĄD MONTAŻU</span>
                    <button class="rk-toggle-btn" aria-label="Przełącz standard" type="button">
                        <div class="rk-toggle-circle"></div>
                    </button>
                </div>
                
                <div class="rk-err-icon-wrap" id="icon-1">
                    <svg class="rk-err-svg anim-shake" viewBox="0 0 100 100" stroke="#ef4444" fill="none" stroke-width="4">
                        <path d="M20 50 L45 50 L50 40 L55 60 L60 50 L80 50" stroke-linejoin="round"/>
                        <circle cx="52" cy="50" r="15" stroke-dasharray="4"/>
                        <path d="M40 20 L60 80" stroke="#fca5a5" stroke-width="2"/>
                    </svg>
                </div>

                <h3>Brak osłon w dylatacjach</h3>
                <p>
                    Prowadzenie rur na wskroś bez osłon ochronnych (peszli). Rozszerzalność liniowa betonu działająca jak gilotyna ścina rurę. Dowiedz się więcej o wymogach dla <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacji</a>.
                </p>
                <div class="rk-err-status" id="status-1">
                    <strong>Skutek:</strong> Zniszczenie bariery EVOH, mikropęknięcia i zalanie stropu.
                </div>
            </div>

            <div class="rk-err-card state-error" data-id="card-2">
                <div class="rk-err-switch-box">
                    <span class="rk-err-switch-label" id="label-2">BŁĄD MONTAŻU</span>
                    <button class="rk-toggle-btn" aria-label="Przełącz standard" type="button">
                        <div class="rk-toggle-circle"></div>
                    </button>
                </div>
                
                <div class="rk-err-icon-wrap" id="icon-2">
                    <svg class="rk-err-svg" viewBox="0 0 100 100" stroke="#ef4444" fill="none" stroke-width="4">
                        <path d="M20 80 Q 50 80 50 50 Q 50 20 80 20" stroke-linecap="round"/>
                        <ellipse cx="50" cy="50" rx="6" ry="12" fill="#fca5a5" stroke="none" class="anim-pulse"/>
                        <line x1="35" y1="35" x2="45" y2="45" stroke-width="2"/>
                        <line x1="65" y1="65" x2="55" y2="55" stroke-width="2"/>
                    </svg>
                </div>

                <h3>Załamanie rur PE-RT</h3>
                <p>
                    Prostowanie "w rękach" załamanego przewodu i mocowanie spinkami. Dochodzi do pocienienia ścianki z 2,0 mm do ok. 1,2 mm oraz rozerwania ciągłości EVOH. Sprawdź dokładną <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">wytrzymałość rur grzewczych</a>.
                </p>
                <div class="rk-err-status" id="status-2">
                    <strong>Skutek:</strong> Rozwarstwienie pod wpływem ciśnienia i wyciek w ciągu 2-5 lat.
                </div>
            </div>

            <div class="rk-err-card state-error" data-id="card-3">
                <div class="rk-err-switch-box">
                    <span class="rk-err-switch-label" id="label-3">BŁĄD MONTAŻU</span>
                    <button class="rk-toggle-btn" aria-label="Przełącz standard" type="button">
                        <div class="rk-toggle-circle"></div>
                    </button>
                </div>
                
                <div class="rk-err-icon-wrap" id="icon-3">
                    <svg class="rk-err-svg" viewBox="0 0 100 100" stroke="#ef4444" fill="none" stroke-width="4">
                        <line x1="20" y1="80" x2="80" y2="80" stroke-linecap="round"/>
                        <path d="M50 80 L50 20" class="anim-geyser"/>
                        <path d="M50 20 Q 30 40 45 60" class="anim-geyser"/>
                        <path d="M50 20 Q 70 40 55 60" class="anim-geyser"/>
                    </svg>
                </div>

                <h3>Zalewanie bez ciśnienia</h3>
                <p>
                    Wylewanie miksokreta, gdy w pętlach nie ma ciśnienia na poziomie minimum 3 bar. Ryzyko zgniecenia przewodu przez ciężar betonu podczas prac nad <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewką betonową</a>.
                </p>
                <div class="rk-err-status" id="status-3">
                    <strong>Skutek:</strong> Brak możliwości wykrycia uszkodzenia łopatą w czasie rzeczywistym.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Definicje SVG dla stanu bezpiecznego (Inżynierskiego)
    const safeSvg1 = `
        <svg class="rk-err-svg anim-pulse" viewBox="0 0 100 100" stroke="#10b981" fill="none" stroke-width="4">
            <path d="M10 50 L90 50" stroke-width="6" stroke-linecap="round"/>
            <rect x="35" y="35" width="30" height="30" rx="5" stroke-dasharray="4" stroke="#34d399" fill="rgba(52, 211, 153, 0.1)"/>
            <line x1="50" y1="20" x2="50" y2="80" stroke="#a7f3d0" stroke-width="2"/>
        </svg>
    `;
    const errSvg1 = document.getElementById('icon-1').innerHTML;

    const safeSvg2 = `
        <svg class="rk-err-svg anim-pulse" viewBox="0 0 100 100" stroke="#10b981" fill="none" stroke-width="4">
            <path d="M20 80 Q 50 80 50 50 Q 50 20 80 20" stroke-width="6" stroke-linecap="round"/>
            <path d="M30 65 A 25 25 0 0 1 65 30" stroke="#34d399" stroke-width="2" stroke-dasharray="4"/>
        </svg>
    `;
    const errSvg2 = document.getElementById('icon-2').innerHTML;

    const safeSvg3 = `
        <svg class="rk-err-svg anim-pulse" viewBox="0 0 100 100" stroke="#10b981" fill="none" stroke-width="4">
            <circle cx="50" cy="45" r="30"/>
            <circle cx="50" cy="45" r="4" fill="#10b981"/>
            <line x1="50" y1="45" x2="65" y2="30" stroke-width="3" stroke-linecap="round"/>
            <path d="M40 75 L40 90 L60 90 L60 75" stroke-linejoin="round"/>
        </svg>
    `;
    const errSvg3 = document.getElementById('icon-3').innerHTML;

    const cards = document.querySelectorAll('.rk-err-card');

    for (let i = 0; i < cards.length; i++) {
        let card = cards[i];
        let btn = card.querySelector('.rk-toggle-btn');
        let cardId = card.getAttribute('data-id');
        
        let label = card.querySelector('.rk-err-switch-label');
        let iconBox = card.querySelector('.rk-err-icon-wrap');
        let statusBox = card.querySelector('.rk-err-status');

        btn.addEventListener('click', function() {
            let isError = card.classList.contains('state-error');

            if (isError) {
                // Zmiana na SAFE
                card.classList.remove('state-error');
                card.classList.add('state-safe');
                label.textContent = "STANDARD INŻYNIERSKI";

                if (cardId === 'card-1') {
                    iconBox.innerHTML = safeSvg1;
                    statusBox.innerHTML = "<strong>Norma PN-EN 1264-4:</strong> Rura ochronna o dł. min. 40 cm przejmuje naprężenia wylewki.";
                }
                if (cardId === 'card-2') {
                    iconBox.innerHTML = safeSvg2;
                    statusBox.innerHTML = "<strong>Procedura:</strong> Bezwzględne wycięcie uszkodzonego odcinka lub regeneracja (tylko PEX-a termicznie).";
                }
                if (cardId === 'card-3') {
                    iconBox.innerHTML = safeSvg3;
                    statusBox.innerHTML = "<strong>Wytyczne PORT PC:</strong> Test na wodzie 0,6 MPa przez 24h. Beton lany przy 3 barach roboczych.";
                }
            } else {
                // Zmiana z powrotem na ERROR
                card.classList.remove('state-safe');
                card.classList.add('state-error');
                label.textContent = "BŁĄD MONTAŻU";

                if (cardId === 'card-1') {
                    iconBox.innerHTML = errSvg1;
                    statusBox.innerHTML = "<strong>Skutek:</strong> Zniszczenie bariery EVOH, mikropęknięcia i zalanie stropu.";
                }
                if (cardId === 'card-2') {
                    iconBox.innerHTML = errSvg2;
                    statusBox.innerHTML = "<strong>Skutek:</strong> Rozwarstwienie pod wpływem ciśnienia i wyciek w ciągu 2-5 lat.";
                }
                if (cardId === 'card-3') {
                    iconBox.innerHTML = errSvg3;
                    statusBox.innerHTML = "<strong>Skutek:</strong> Brak możliwości wykrycia uszkodzenia łopatą w czasie rzeczywistym.";
                }
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-light: #f8fafc;
    --rk-case-accent: #38bdf8;
    --rk-case-warning: #f59e0b;
    --rk-case-danger: #ef4444;
    --rk-case-success: #10b981;
    --rk-case-gray: #64748b;
    --rk-case-border: #e2e8f0;
    --rk-case-bg: #ffffff;
}

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

.rk-case-container * {
    box-sizing: border-box;
}

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

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

.rk-case-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
}

.rk-case-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 800px;
    line-height: 1.6;
    margin: 0;
}

/* Wstęp do historii */
.rk-case-story {
    padding: 40px 50px;
    background: var(--rk-case-light);
    border-bottom: 1px solid var(--rk-case-border);
    display: flex;
    gap: 30px;
    align-items: center;
}

.rk-case-avatar {
    width: 80px;
    height: 80px;
    background: #e2e8f0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--rk-case-gray);
    border: 3px solid #cbd5e1;
}

.rk-case-story-text p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
}

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

/* Skaner Ofert - Sekcja Interaktywna */
.rk-case-interactive {
    padding: 50px;
    background: #ffffff;
}

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

.rk-case-int-title h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 10px 0;
}

.rk-case-int-title p {
    color: var(--rk-case-gray);
    font-size: 15px;
    margin: 0;
}

.rk-scanner-toggle {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-scan-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f1f5f9;
    color: var(--rk-case-gray);
    border: 2px solid var(--rk-case-border);
    padding: 16px 32px;
    border-radius: 16px;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-scan-btn.active svg {
    transform: rotate(180deg);
}

/* Grid ofertowy */
.rk-offer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-offer-card {
    border: 2px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 30px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-offer-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-offer-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-case-light);
}

.rk-offer-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 5px 0;
}

.rk-offer-subtitle {
    font-size: 13px;
    color: var(--rk-case-gray);
    font-weight: 700;
    text-transform: uppercase;
}

.rk-offer-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.rk-offer-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    color: #334155;
    line-height: 1.6;
}

.rk-offer-list svg {
    flex-shrink: 0;
    margin-top: 2px;
}

/* Stan "Nieskanowany" (Domyslny) */
.state-default .rk-card-bad .rk-offer-icon { color: var(--rk-case-gray); }
.state-default .rk-card-bad { background: #ffffff; }

/* Stan "Prześwietlony" */
.state-scanned .rk-card-bad {
    background: #fef2f2;
    border-color: #fca5a5;
    box-shadow: 0 10px 30px -10px rgba(239, 68, 68, 0.2);
}

.state-scanned .rk-card-bad .rk-offer-icon {
    background: #fee2e2;
    color: var(--rk-case-danger);
}

.state-scanned .rk-card-good {
    background: #f0fdf4;
    border-color: #6ee7b7;
    box-shadow: 0 10px 30px -10px rgba(16, 185, 129, 0.2);
}

.state-scanned .rk-card-good .rk-offer-icon {
    background: #d1fae5;
    color: var(--rk-case-success);
}

/* Dynamiczne modyfikatory list */
.rk-hidden-truth {
    display: none;
    font-size: 13px;
    font-weight: 800;
    margin-top: 5px;
    padding: 8px 12px;
    border-radius: 6px;
}

.state-scanned .rk-hidden-truth.danger {
    display: block;
    background: #fee2e2;
    color: #991b1b;
}

.state-scanned .rk-hidden-truth.success {
    display: block;
    background: #d1fae5;
    color: #065f46;
}

.rk-total-price {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-case-dark);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-top: 20px;
    border-top: 1px solid var(--rk-case-border);
}

.rk-price-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-gray);
    text-transform: uppercase;
}

.state-scanned .rk-card-bad .rk-total-price span { color: var(--rk-case-danger); }
.state-scanned .rk-card-good .rk-total-price span { color: var(--rk-case-success); }

@media (max-width: 850px) {
    .rk-offer-grid { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 600px) {
    .rk-case-header, .rk-case-story, .rk-case-interactive { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 26px; }
    .rk-case-story { flex-direction: column; text-align: center; gap: 20px; }
    .rk-offer-card { padding: 25px 20px; }
    .rk-scan-btn { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Case Study: Pan Bolesław i haczyki w wycenie lokalnej hurtowni",
    "description": "Studium przypadku weryfikacji zestawienia materiałowego do ogrzewania podłogowego. Dlaczego hurtownie proponują tanie rury bez bariery EVOH?",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-porownanie-wycen",
    "name": "Weryfikacja Inżynierska Zestawienia Materiałowego",
    "description": "Baza danych porównująca pozornie tanie oferty hurtowni instalacyjnych (rury bez EVOH) z poprawnymi zestawieniami inżynierskimi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sprawdzanie wyceny ogrzewania podłogowego",
      "tania rura do podłogówki opinie",
      "kosztorys instalacji sanitarnych",
      "braki w wycenie hurtowni",
      "niezależny projektant hvac"
    ],
    "measurementTechnique": "Analiza krzyżowa komponentów z oferty hurtowej pod kątem występowania rur jedno- i wielowarstwowych oraz kalkulacja całkowitych kosztów eksploatacji (TCO).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Oferta hurtowni: Rura PE-RT jedno-warstwowa, brak certyfikacji, oszczędność początkowa ok. 800 PLN.",
        "Weryfikacja ekspercka: Zastosowanie rury PEX-a EVOH, gwarancja zabezpieczenia kotła, wyeliminowanie ukrytego ryzyka korozji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-skaner-kosztorysu",
    "name": "Skaner Ofert Hurtowych",
    "description": "Interaktywny symulator pozwalający użytkownikowi prześwietlić pozornie tanie zestawienie materiałowe z hurtowni i ujawnić ukryte błędy projektowe (brak bariery tlenowej).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Studium Przypadku
        </div>
        <h2>Case Study: Pan Bolesław i wycena z lokalnej hurtowni</h2>
        <p>
            Teoria to jedno, ale jak wygląda to na prawdziwym placu budowy? Sprawdźmy autentyczny przypadek weryfikacji zestawienia materiałowego.
        </p>
    </div>

    <div class="rk-case-story">
        <div class="rk-case-avatar">
            <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
        </div>
        <div class="rk-case-story-text">
            <p>
                <strong>Zarys sytuacji:</strong> Pan Bolesław buduje nowoczesny dom jednorodzinny pod Łodzią. Wysłał rzuty budynku do lokalnej dużej hurtowni hydraulicznej i otrzymał wycenę materiałów na ogrzewanie podłogowe. Kwota wydawała się bardzo atrakcyjna, jednak przed zakupem Pan Bolesław zgłosił się do naszego biura z prośbą o niezależną weryfikację inżynierską całego zestawienia. 
            </p>
        </div>
    </div>

    <div class="rk-case-interactive" id="rkScanContainer">
        <div class="rk-case-int-title">
            <h3>Porównaj wyceny materiałowe</h3>
            <p>Hurtownia kontra niezależny standard projektowy. Kliknij przycisk poniżej.</p>
        </div>

        <div class="rk-scanner-toggle">
            <button class="rk-scan-btn" id="rkScanBtn">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Prześwietl ofertę hurtowni okiem inżyniera
            </button>
        </div>

        <div class="rk-offer-grid state-default" id="rkOfferGrid">
            
            <div class="rk-offer-card rk-card-bad">
                <div class="rk-offer-header">
                    <div class="rk-offer-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    </div>
                    <div>
                        <h4 class="rk-offer-title">Zestawienie Hurtowni</h4>
                        <div class="rk-offer-subtitle">Cel: Najniższa cena końcowa</div>
                    </div>
                </div>
                
                <ul class="rk-offer-list">
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            Rozdzielacz mosiężny 10 sekcji
                        </div>
                    </li>
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            Szafka podtynkowa i złączki
                        </div>
                    </li>
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            <strong>Rura PE-RT 16x2.0 (jednowarstwowa)</strong>
                            <div class="rk-hidden-truth danger">UKRYTY KOSZT: Brak bariery EVOH. Gwarantowane zamulenie kotła i zniszczenie pompy do 5 lat od uruchomienia. Koszt awarii ok. 8 000 PLN.</div>
                        </div>
                    </li>
                </ul>

                <div class="rk-total-price">
                    <div class="rk-price-label">Koszt materiału</div>
                    <span>4 200 PLN</span>
                </div>
            </div>

            <div class="rk-offer-card rk-card-good">
                <div class="rk-offer-header">
                    <div class="rk-offer-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    </div>
                    <div>
                        <h4 class="rk-offer-title">Weryfikacja Projektanta</h4>
                        <div class="rk-offer-subtitle">Cel: 50 lat bezpieczeństwa</div>
                    </div>
                </div>
                
                <ul class="rk-offer-list">
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            Rozdzielacz stal nierdzewna
                        </div>
                    </li>
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            Złączki typu Press (systemowe)
                        </div>
                    </li>
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <div>
                            <strong>Rura PEX-a 5L z barierą EVOH</strong>
                            <div class="rk-hidden-truth success">OCHRONA: Zgodność z normą DIN 4726. Pełna blokada tlenu. Kotłownia pracuje w bezpiecznym środowisku beztlenowym.</div>
                        </div>
                    </li>
                </ul>

                <div class="rk-total-price">
                    <div class="rk-price-label">Koszt materiału</div>
                    <span>5 900 PLN</span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const scanBtn = document.getElementById('rkScanBtn');
    const offerGrid = document.getElementById('rkOfferGrid');

    scanBtn.addEventListener('click', function() {
        let isScanned = offerGrid.classList.contains('state-scanned');

        if (isScanned) {
            // Wróć do domyślnego
            offerGrid.classList.remove('state-scanned');
            offerGrid.classList.add('state-default');
            scanBtn.classList.remove('active');
            scanBtn.innerHTML = `
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Prześwietl ofertę hurtowni okiem inżyniera
            `;
        } else {
            // Włącz skaner
            offerGrid.classList.remove('state-default');
            offerGrid.classList.add('state-scanned');
            scanBtn.classList.add('active');
            scanBtn.innerHTML = `
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                Zamknij skaner
            `;
        }
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-light: #f8fafc;
    --rk-auth-accent: #0ea5e9;
    --rk-auth-gold: #d97706;
    --rk-auth-gold-light: #fef3c7;
    --rk-auth-gray: #64748b;
    --rk-auth-border: #e2e8f0;
    --rk-auth-bg: #ffffff;
}

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

.rk-auth-container * {
    box-sizing: border-box;
}

/* Nagłówek Sekcji */
.rk-auth-header {
    padding: 45px 50px 35px;
    background: var(--rk-auth-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-auth-gold);
    text-align: center;
}

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

.rk-auth-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
    color: #ffffff;
}

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

/* Profil Autora i Cytat */
.rk-auth-profile-box {
    padding: 45px 50px;
    background: #ffffff;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}

/* Lewa Kolumna - Zdjęcie i Sociale */
.rk-auth-sidebar {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

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

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
}

.rk-auth-name-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 5px 0;
}

.rk-auth-role {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.rk-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 12px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
}

.rk-social-fb {
    background: #f1f5f9;
    color: #1877F2;
    border: 1px solid #e2e8f0;
}

.rk-social-fb:hover {
    background: #1877F2;
    color: #ffffff;
}

.rk-social-li {
    background: #f1f5f9;
    color: #0A66C2;
    border: 1px solid #e2e8f0;
}

.rk-social-li:hover {
    background: #0A66C2;
    color: #ffffff;
}

/* Prawa Kolumna - Interaktywny Blok Ekspercki */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

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

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

.rk-auth-tab-btn:hover {
    background: var(--rk-auth-light);
    color: var(--rk-auth-dark);
}

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

.rk-auth-panel {
    display: none;
}

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

/* Stylizacja samego cytatu */
.rk-quote-wrap {
    position: relative;
    padding: 35px 40px;
    background: var(--rk-auth-gold-light);
    border-radius: 0 20px 20px 20px;
    border-left: 6px solid var(--rk-auth-gold);
}

.rk-quote-mark {
    position: absolute;
    top: -15px;
    left: 20px;
    font-size: 80px;
    line-height: 1;
    font-family: Georgia, serif;
    color: rgba(217, 119, 6, 0.15);
    font-weight: 900;
}

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

.rk-quote-text strong {
    color: var(--rk-auth-gold);
    font-weight: 900;
}

.rk-quote-sign {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-auth-dark);
}

.rk-quote-sign::before {
    content: '';
    display: block;
    width: 30px;
    height: 3px;
    background: var(--rk-auth-gold);
}

@media (max-width: 850px) {
    .rk-auth-profile-box {
        grid-template-columns: 1fr;
        gap: 35px;
    }
    .rk-auth-sidebar {
        flex-direction: row;
        text-align: left;
        align-items: center;
        flex-wrap: wrap;
        gap: 25px;
        padding-bottom: 30px;
        border-bottom: 1px solid var(--rk-auth-border);
    }
    .rk-auth-photo-wrap {
        width: 120px;
        height: 120px;
        margin-bottom: 0;
    }
    .rk-auth-socials {
        width: auto;
        flex-direction: row;
    }
    .rk-social-btn {
        padding: 10px 20px;
    }
}

@media (max-width: 600px) {
    .rk-auth-header, .rk-auth-profile-box { padding: 30px 20px; }
    .rk-auth-header h2 { font-size: 26px; }
    
    .rk-auth-sidebar {
        flex-direction: column;
        text-align: center;
    }
    .rk-auth-socials {
        flex-direction: column;
        width: 100%;
    }
    .rk-auth-tabs {
        flex-direction: column;
        border-bottom: none;
        gap: 5px;
    }
    .rk-auth-tab-btn {
        width: 100%;
        text-align: center;
        border: 1px solid var(--rk-auth-border);
    }
    .rk-auth-tab-btn.active {
        border-color: var(--rk-auth-dark);
    }
    .rk-quote-wrap {
        padding: 30px 20px;
        border-radius: 16px;
    }
    .rk-quote-text {
        font-size: 16px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-podsumowanie-autorskie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Okiem eksperta: Robert Kucharski o rurach z barierą EVOH",
    "description": "Autorskie podsumowanie inżynierskie dotyczące bezwzględnej konieczności stosowania rur z barierą antydyfuzyjną EVOH w systemach płaszczyznowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-zalecenia-inżynierskie",
    "name": "Zestawienie autorskich zaleceń inżynierskich dotyczących rur EVOH",
    "description": "Baza wiedzy zawierająca ostateczne wytyczne instalacyjne i inwestycyjne sformułowane na podstawie tysięcy zrealizowanych projektów HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie instalacji podłogowej",
      "opinia eksperta o rurach evoh",
      "robert kucharski projekt ogrzewania",
      "jaką rurę do podłogówki kupić 2026",
      "gwarancja na systemy płaszczyznowe"
    ],
    "measurementTechnique": "Wnioski empiryczne wyciągnięte na podstawie długoletniej praktyki inżynierskiej, testów ciśnieniowych oraz analizy awaryjności systemów bez EVOH.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura bez warstwy EVOH to drastyczne ryzyko dla każdego elementu mechanicznego w kotłowni.",
        "Oszczędność rzędu kilkuset złotych na materiale rury skutkuje awariami liczonymi w tysiącach złotych.",
        "Profesjonalny dobór gwarantuje 50 lat bezawaryjnej i stabilnej pracy układu hydraulicznego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-ekspert-doradztwo",
    "name": "Interaktywny Panel Doradztwa Inżynierskiego",
    "description": "Moduł ekspercki umożliwiający szybkie zapoznanie się z wieloma aspektami opinii inżynierskiej (Rada Techniczna, Wniosek Finansowy, Ostateczna Gwarancja) bez przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-expert-panel">
    <div class="rk-auth-header">
        <div class="rk-auth-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Podsumowanie Techniczne
        </div>
        <h2>Okiem eksperta: Robert Kucharski</h2>
        <p>
            Po zaprojektowaniu setek układów hydraulicznych, widziałem na placach budowy wszystko. Poniżej przedstawiam moje ostateczne wnioski dotyczące stosowania barier antydyfuzyjnych.
        </p>
    </div>

    <div class="rk-auth-profile-box">
        
        <!-- Lewy Panel - Profil i Linki -->
        <div class="rk-auth-sidebar">
            <div class="rk-auth-photo-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC" class="rk-auth-photo" loading="lazy">
            </div>
            
            <div class="rk-auth-person-info">
                <h3 class="rk-auth-name-title">Robert Kucharski</h3>
                <div class="rk-auth-role">CEO Projekt-Ogrzewania.pl</div>
                
                <div class="rk-auth-socials">
                    <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-fb" aria-label="Profil Facebook">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg>
                        Facebook
                    </a>
                    <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn rk-social-li" aria-label="Profil LinkedIn">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg>
                        LinkedIn
                    </a>
                </div>
            </div>
        </div>

        <!-- Prawy Panel - Interaktywne Zakładki i Cytat -->
        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs" id="rkExpertTabs">
                <button class="rk-auth-tab-btn active" data-target="panel-tech">Rada Techniczna</button>
                <button class="rk-auth-tab-btn" data-target="panel-fin">Wniosek Finansowy</button>
                <button class="rk-auth-tab-btn" data-target="panel-gwar">Gwarancja Trwałości</button>
            </div>

            <!-- Panel 1: Techniczny -->
            <div class="rk-auth-panel active" id="panel-tech">
                <div class="rk-quote-wrap">
                    <div class="rk-quote-mark">"</div>
                    <p class="rk-quote-text">
                        Brak powłoki antydyfuzyjnej to nie jest kwestia drobnej nieszczelności. To wpuszczenie niewidzialnego wroga prosto do serca instalacji. <strong>Tlen rozpuszczony w zładzie działa jak powolna trucizna</strong>, która zamienia najdroższe, stalowe i mosiężne elementy Twojej kotłowni w bezużyteczny szlam magnetytowy.
                    </p>
                    <div class="rk-quote-sign">Robert Kucharski</div>
                </div>
            </div>

            <!-- Panel 2: Finansowy -->
            <div class="rk-auth-panel" id="panel-fin">
                <div class="rk-quote-wrap" style="background: #f0fdf4; border-color: #10b981;">
                    <div class="rk-quote-mark" style="color: rgba(16, 185, 129, 0.15);">"</div>
                    <p class="rk-quote-text" style="color: #064e3b;">
                        Największym dramatem inwestorów, z jakim spotykam się na co dzień, jest oszczędzanie na niewidocznych elementach. Decyzja o zakupie tańszej rury to <strong>pozorna oszczędność rzędu 500 PLN, która po 3 latach skutkuje awarią kotła wycenianą na 8 000 PLN.</strong> Zawsze edukuję klientów: beton wybaczy wiele, ale hydraulika rozliczy każdy błąd.
                    </p>
                    <div class="rk-quote-sign">Robert Kucharski</div>
                </div>
            </div>

            <!-- Panel 3: Gwarancja -->
            <div class="rk-auth-panel" id="panel-gwar">
                <div class="rk-quote-wrap" style="background: #f0f9ff; border-color: #0284c7;">
                    <div class="rk-quote-mark" style="color: rgba(2, 132, 199, 0.15);">"</div>
                    <p class="rk-quote-text" style="color: #075985;">
                        Jeżeli zastosujesz 5-warstwową rurę EVOH, połączysz ją dedykowanymi złączkami zaprasowywanymi i przeprowadzisz rzetelną próbę ciśnieniową przed wylewką, możesz spać spokojnie. <strong>Taki układ, poparty solidnym projektem OZC, to gwarancja ponad 50 lat całkowicie bezawaryjnej pracy posadzki.</strong> W ten sposób buduje się domy na pokolenia.
                    </p>
                    <div class="rk-quote-sign">Robert Kucharski</div>
                </div>
            </div>

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

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

    for (let i = 0; i < tabBtns.length; i++) {
        tabBtns[i].addEventListener('click', function() {
            
            // Usunięcie klasy active z przycisków
            for (let j = 0; j < tabBtns.length; j++) {
                tabBtns[j].classList.remove('active');
            }
            
            // Ukrycie wszystkich paneli
            for (let k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Nadanie active klikniętemu przyciskowi
            this.classList.add('active');

            // Pokazanie docelowego panelu
            let targetId = this.getAttribute('data-target');
            let targetPanel = document.getElementById(targetId);
            
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-gray: #64748b;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-faq-top {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-faq-dark) 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-blue);
}

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.25);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-faq-top h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-faq-top p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Interaktywny Akordeon FAQ */
.rk-faq-wrapper {
    padding: 40px 50px;
    background: var(--rk-faq-hover);
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

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

.rk-faq-item:hover {
    border-color: #bae6fd;
    box-shadow: 0 10px 20px -10px rgba(2, 132, 199, 0.15);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.2);
}

.rk-faq-header {
    padding: 24px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    user-select: none;
    gap: 20px;
}

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

.rk-faq-icon-q {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    transition: all 0.3s;
}

.rk-faq-item.active .rk-faq-icon-q {
    background: var(--rk-faq-blue);
    color: #ffffff;
}

.rk-faq-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-faq-toggle {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #f1f5f9;
    color: var(--rk-faq-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-faq-body {
    padding: 0 30px 30px 85px;
}

.rk-faq-body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

.rk-faq-body a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-faq-body a:hover {
    color: #0369a1;
}

/* Call to Action */
.rk-faq-cta {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-faq-border);
}

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

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

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

.rk-btn-solid:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
}

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

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

@media (max-width: 768px) {
    .rk-faq-top, .rk-faq-wrapper, .rk-faq-cta { padding: 30px 20px; }
    .rk-faq-header { padding: 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-faq-q-box { width: 100%; align-items: flex-start; }
    .rk-faq-toggle { position: absolute; right: 20px; top: 25px; }
    .rk-faq-body { padding: 0 20px 25px 20px; }
    .rk-faq-top h2 { font-size: 26px; }
    .rk-btn-solid { width: 100%; padding: 18px 20px; font-size: 16px; }
    .rk-faq-item { position: relative; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Kompleksowe FAQ – Najważniejsze pytania inwestorów o EVOH",
    "description": "Baza wiedzy technicznej: zniszczenie bariery EVOH, weryfikacja rur, glikol w instalacji oraz zastosowanie inhibitorów 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#faqpage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy barierę EVOH można zniszczyć podczas montażu ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, w rurach 3-warstwowych (3L) powłoka EVOH znajduje się na zewnątrz i może zostać zarysowana przez ostre krawędzie spinek tackera lub zatarte zanieczyszczenia na styropianie. Dlatego należy stosować wyłącznie certyfikowane rury 5-warstwowe (5L), gdzie warstwa EVOH jest ukryta w rdzeniu struktury rury i chroniona zewnętrznym grubym polietylenem."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy zakupiona rura rzeczywiście posiada sprawną barierę antydyfuzyjną?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy zweryfikować nadruk na rurze, który musi zawierać jasne oznaczenie normy PN-EN ISO 21003 lub niemieckiego certyfikatu DIN 4726 wraz z unikalnym numerem rejestracyjnym jednostki certyfikującej (np. DIN-Geprüft). Dodatkowo, po odcięciu nożycami kawałka rury, pod lupą można wyraźnie dostrzec pięć warstw materiału, w tym ciemniejszy, błyszczący pierścień kopolimeru EVOH."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w przypadku zalania instalacji glikolem bariera EVOH nadal jest potrzebna?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, powłoka EVOH jest absolutnie niezbędna również w instalacjach glikolowych, ponieważ tlen przyspiesza proces termicznej degradacji i starzenia glikolu, obniżając jego odczyn pH. Zakwaszony roztwór glikolu staje się skrajnie agresywny chemicznie dla mosiężnych rozdzielaczy i uszczelnień EPDM, co prowadzi do rozszczelnienia połączeń na eurokonusach."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest różnica w przewodzeniu ciepła rury PEX z EVOH a rury wielowarstwowej z wkładką aluminiową (PEX-Al-PEX)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Rura PEX-Al-PEX posiada grubszą wkładkę aluminiową (lambda ok. 200 W/(m·K)), jednak jej finalny, wypadkowy opór cieplny jest zbliżony do rury PEX-EVOH, ponieważ główny opór stanowi gruba warstwa polietylenu. W praktyce inżynierskiej obie rury oddają energię do jastrychu betonowego z niemal identyczną wydajnością cieplną wynoszącą od 70 do 100 W/m²."
        }
      },
      {
        "@type": "Question",
        "name": "Czy inhibitor korozji wlany do wody w 100% zastąpi brak bariery antydyfuzyjnej w rurach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, chemiczne inhibitory korozji mają ograniczoną pojemność absorpcji tlenu i ulegają stopniowemu zużyciu (przereagowaniu) w miarę ciągłego dopływu nowego gazu. W instalacji z rurami bez EVOH, gdzie tlen przenika bezustannie przez całą dobę, konieczne byłoby cotygodniowe dozowanie nowych dawek chemii, co jest niewykonalne i ekonomicznie nieuzasadnione."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-faq",
    "name": "Parametry Fizyczne i Eksploatacyjne Rur z EVOH",
    "description": "Zestawienie inżynierskie dotyczące powłok EVOH, przewodzenia ciepła rur PEX-Al-PEX oraz parametrów degradacji glikolu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy barierę EVOH można zniszczyć",
      "jak sprawdzić rurę z barierą antydyfuzyjną",
      "glikol w instalacji z barierą EVOH",
      "rura PEX-Al-PEX a rura EVOH różnice",
      "inhibitor korozji zamiast rury EVOH"
    ],
    "measurementTechnique": "Weryfikacja organoleptyczna nadruków DIN 4726, pomiar przewodności cieplnej (lambda) oraz analiza kwasowości (pH) starzejącego się glikolu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wyższość rur 5-warstwowych nad 3-warstwowymi ze względu na osłonę mechaniczną.",
        "Potwierdzona wydajność cieplna dla jastrychu betonowego: od 70 do 100 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-faq",
    "name": "Moduł Wyszukiwania Odpowiedzi Inżynierskich EVOH",
    "description": "Interaktywny akordeon dynamicznie prezentujący zoptymalizowane rozwiązania techniczne i normy (PN-EN ISO 21003) na zadane zapytania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-evoh-faq-app">
    <div class="rk-faq-top">
        <div class="rk-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy
        </div>
        <h2>Kompleksowe FAQ – Najważniejsze pytania inwestorów</h2>
        <p>
            Poznaj kluczowe detale technologiczne, które decydują o trwałości Twojego ogrzewania płaszczyznowego. Rozwiń pytania poniżej, aby poznać fachowe odpowiedzi.
        </p>
    </div>

    <div class="rk-faq-wrapper" id="rkFaqList">
        
        <div class="rk-faq-item">
            <div class="rk-faq-header" role="button" tabindex="0">
                <div class="rk-faq-q-box">
                    <div class="rk-faq-icon-q">Q</div>
                    <h3 class="rk-faq-title">Czy barierę EVOH można zniszczyć podczas montażu ogrzewania podłogowego?</h3>
                </div>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>
                        Tak, w rurach 3-warstwowych (3L) powłoka EVOH znajduje się na zewnątrz i może zostać zarysowana przez ostre krawędzie spinek tackera lub zatarte zanieczyszczenia na styropianie. Dlatego należy stosować wyłącznie certyfikowane rury 5-warstwowe (5L), gdzie warstwa EVOH jest ukryta w rdzeniu struktury rury i chroniona zewnętrznym grubym polietylenem. Uniknięcie tego to jeden z głównych kroków opisujących <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu ogrzewania podłogowego</a>.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header" role="button" tabindex="0">
                <div class="rk-faq-q-box">
                    <div class="rk-faq-icon-q">Q</div>
                    <h3 class="rk-faq-title">Jak sprawdzić, czy zakupiona rura rzeczywiście posiada sprawną barierę antydyfuzyjną?</h3>
                </div>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>
                        Należy zweryfikować nadruk na rurze, który musi zawierać jasne oznaczenie normy <strong>PN-EN ISO 21003</strong> lub niemieckiego certyfikatu <strong>DIN 4726</strong> wraz z unikalnym numerem rejestracyjnym jednostki certyfikującej (np. DIN-Geprüft). Dodatkowo, po odcięciu nożycami kawałka rury, pod lupą można wyraźnie dostrzec pięć warstw materiału, w tym ciemniejszy, błyszczący pierścień kopolimeru EVOH.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header" role="button" tabindex="0">
                <div class="rk-faq-q-box">
                    <div class="rk-faq-icon-q">Q</div>
                    <h3 class="rk-faq-title">Czy w przypadku zalania instalacji glikolem bariera EVOH nadal jest potrzebna?</h3>
                </div>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>
                        Tak, powłoka EVOH jest absolutnie niezbędna również w instalacjach glikolowych, ponieważ tlen przyspiesza proces termicznej degradacji i starzenia glikolu, obniżając jego odczyn pH. Zakwaszony roztwór staje się skrajnie agresywny chemicznie dla mosiężnych rozdzielaczy i uszczelnień EPDM, co prowadzi do rozszczelnienia połączeń na eurokonusach. Więcej o tym zagadnieniu przeczytasz analizując <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">prawdy i mity o glikolu w ogrzewaniu podłogowym</a>.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header" role="button" tabindex="0">
                <div class="rk-faq-q-box">
                    <div class="rk-faq-icon-q">Q</div>
                    <h3 class="rk-faq-title">Jaka jest różnica w przewodzeniu ciepła rury PEX z EVOH a rury wielowarstwowej z wkładką aluminiową (PEX-Al-PEX)?</h3>
                </div>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>
                        Rura PEX-Al-PEX posiada grubszą wkładkę aluminiową (lambda ok. 200 W/(m·K)), jednak jej finalny, wypadkowy opór cieplny jest zbliżony do standardowej <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a> PEX-EVOH, ponieważ główny opór zawsze stanowi gruba warstwa polietylenu. W praktyce inżynierskiej obie rury oddają energię do jastrychu betonowego z niemal identyczną wydajnością cieplną wynoszącą od 70 do 100 W/m².
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header" role="button" tabindex="0">
                <div class="rk-faq-q-box">
                    <div class="rk-faq-icon-q">Q</div>
                    <h3 class="rk-faq-title">Czy inhibitor korozji wlany do wody w 100% zastąpi brak bariery antydyfuzyjnej w rurach?</h3>
                </div>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>
                        Nie, chemiczne inhibitory korozji mają ograniczoną pojemność absorpcji tlenu i ulegają stopniowemu zużyciu (przereagowaniu) w miarę ciągłego dopływu nowego gazu. W instalacji z rurami bez EVOH, gdzie tlen przenika bezustannie przez całą dobę, konieczne byłoby cotygodniowe dozowanie nowych dawek chemii. Choć <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">woda demineralizowana z inhibitorem korozji</a> jest wysoce zalecana, to nigdy nie zastąpi fizycznej bariery polimerowej.
                    </p>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-faq-cta">
        <h3>Uniknij błędów zanim wylejesz beton</h3>
        <p>
            Ogrzewanie podłogowe to system, w którym nie ma miejsca na domysły. Błędy hydrauliczne ujawniają się dopiero po ułożeniu płytek, generując ogromne straty.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            CZYTAJ WIĘCEJ NA BLOGU
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    for (let i = 0; i < faqItems.length; i++) {
        let currentHeader = faqItems[i].querySelector('.rk-faq-header');
        
        currentHeader.addEventListener('click', function() {
            let isItemActive = faqItems[i].classList.contains('active');

            // Zwiń wszystkie
            for (let j = 0; j < faqItems.length; j++) {
                faqItems[j].classList.remove('active');
                let contentBody = faqItems[j].querySelector('.rk-faq-content');
                if (contentBody) {
                    contentBody.style.maxHeight = null;
                }
            }

            // Rozwiń kliknięty (jeśli był zwinięty)
            if (isItemActive === false) {
                faqItems[i].classList.add('active');
                let targetContent = faqItems[i].querySelector('.rk-faq-content');
                if (targetContent) {
                    targetContent.style.maxHeight = targetContent.scrollHeight + "px";
                }
            }
        });

        // Obsługa z klawiatury dla dostępności
        currentHeader.addEventListener('keydown', function(e) {
            if (e.key === 'Enter') {
                if (e.key !== 'Tab') {
                    e.preventDefault();
                    this.click();
                }
            }
            if (e.key === ' ') {
                e.preventDefault();
                this.click();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-red-light: #fef2f2;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

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

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

.rk-evoh-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.2);
}

.rk-evoh-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
    color: #ffffff;
}

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

/* Interaktywny Panel */
.rk-evoh-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-evoh-tabs {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-evoh-tab-btn {
    flex: 1;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-sum-border);
    background: #ffffff;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-evoh-tab-btn::before {
    content: '';
    position: absolute;
    top: 0; left: 0; bottom: 0; width: 6px;
    background: var(--rk-sum-gray);
    transition: all 0.3s ease;
}

.rk-evoh-tab-btn:hover {
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    transform: translateY(-2px);
}

.rk-evoh-tab-btn.active[data-target="panel-pro"] {
    border-color: var(--rk-sum-green);
    background: var(--rk-sum-green-light);
}

.rk-evoh-tab-btn.active[data-target="panel-pro"]::before {
    background: var(--rk-sum-green);
}

.rk-evoh-tab-btn.active[data-target="panel-risk"] {
    border-color: var(--rk-sum-red);
    background: var(--rk-sum-red-light);
}

.rk-evoh-tab-btn.active[data-target="panel-risk"]::before {
    background: var(--rk-sum-red);
}

.rk-evoh-tab-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: var(--rk-sum-gray);
}

.active[data-target="panel-pro"] .rk-evoh-tab-icon { background: var(--rk-sum-green); color: #fff; }
.active[data-target="panel-risk"] .rk-evoh-tab-icon { background: var(--rk-sum-red); color: #fff; }

.rk-evoh-tab-text h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-evoh-tab-text p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

/* Wynik symulacji */
.rk-evoh-panel {
    display: none;
    grid-template-columns: 140px 1fr;
    gap: 30px;
    align-items: start;
    padding: 35px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    animation: fadeIn 0.4s ease-out;
}

.rk-evoh-panel.active {
    display: grid;
}

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

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

.rk-evoh-content h4 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 800;
}

.panel-pro-text h4 { color: #047857; }
.panel-risk-text h4 { color: #b91c1c; }

.rk-evoh-content p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

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

.rk-evoh-content a {
    color: var(--rk-sum-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-evoh-content a:hover {
    color: #0369a1;
}

/* Sekcja Tagi */
.rk-evoh-tags {
    padding: 0 50px 30px;
    background: #f8fafc;
}

.rk-evoh-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #bae6fd;
    transition: all 0.3s;
    cursor: default;
}

.rk-mat-tag:hover {
    background: var(--rk-sum-blue);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

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

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

.rk-sum-cta-text {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

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

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

@media (max-width: 768px) {
    .rk-evoh-header, .rk-evoh-interactive, .rk-sum-cta-box, .rk-evoh-tags { padding: 30px 20px; }
    .rk-evoh-tabs { flex-direction: column; gap: 15px; }
    .rk-evoh-panel { grid-template-columns: 1fr; text-align: center; padding: 25px 20px; }
    .rk-evoh-svg-box { max-width: 100px; margin: 0 auto 20px; }
    .rk-evoh-header h2 { font-size: 26px; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 16px; }
}

/* SVG Animations */
.anim-pipe-flow {
    stroke-dasharray: 10;
    animation: flowAnim 2s linear infinite;
}
@keyframes flowAnim {
    to { stroke-dashoffset: -20; }
}
.anim-pulse-warning {
    animation: pulseWarning 1.5s infinite alternate;
    transform-origin: center;
}
@keyframes pulseWarning {
    from { transform: scale(1); opacity: 1; }
    to { transform: scale(1.1); opacity: 0.8; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Podsumowanie i Rekomendacja Inżynierska – Dlaczego EVOH to konieczność?",
    "description": "Zastosowanie rury z barierą antydyfuzyjną (EVOH) to bezwzględny warunek techniczny dla ogrzewania płaszczyznowego. Sprawdź konsekwencje braku bariery dla kotłowni.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-evoh",
    "name": "Kalkulacja Ryzyka i Kosztów Awarii Brak EVOH 2026",
    "description": "Zestawienie kosztów pozornych oszczędności na rurach bez bariery antydyfuzyjnej względem drastycznych konsekwencji eksploatacyjnych (spadek sprawności o 15-30% i uszkodzenia kotłów).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki braku bariery tlenowej",
      "ogrzewanie podłogowe koszty awarii",
      "zarastanie instalacji szlamem",
      "rura z barierą antydyfuzyjną evoh cena",
      "najlepsze rury do ogrzewania podłogowego"
    ],
    "measurementTechnique": "Porównanie nakładów inwestycyjnych rzędu 400-800 PLN do procentowego spadku sprawności instalacji i kosztów zniszczonych urządzeń kotłowni.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt oszczędności: 400 - 800 PLN na całym systemie.",
        "Konsekwencja: Obniżenie sprawności grzewczej posadzki o 15-30%.",
        "Efekt krytyczny: Uszkodzenie urządzeń przez szlam magnetytowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-evoh",
    "name": "Kalkulator Decyzji Inżynierskich EVOH",
    "description": "Interaktywny panel zestawiający optymalny standard inżynierski (rura 5-warstwowa EVOH) z wariantem podwyższonego ryzyka (brak zabezpieczeń).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-evoh-container" id="evoh-sum-app">
    <div class="rk-evoh-header">
        <div class="rk-evoh-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Podsumowanie
        </div>
        <h2>Podsumowanie i Rekomendacja Inżynierska</h2>
        <p>
            Zastosowanie rury z barierą antydyfuzyjną (EVOH) to bezwzględny warunek techniczny stawiany współczesnym systemom niskotemperaturowego ogrzewania płaszczyznowego. Wybierz ścieżkę poniżej, aby poznać konsekwencje decyzji zakupowych.
        </p>
    </div>

    <div class="rk-evoh-interactive">
        <div class="rk-evoh-tabs">
            <div class="rk-evoh-tab-btn active" data-target="panel-pro" tabindex="0" role="button">
                <div class="rk-evoh-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-evoh-tab-text">
                    <h3>50 Lat Bezawaryjności</h3>
                    <p>Standard rura 5-warstwowa EVOH</p>
                </div>
            </div>
            
            <div class="rk-evoh-tab-btn" data-target="panel-risk" tabindex="0" role="button">
                <div class="rk-evoh-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-evoh-tab-text">
                    <h3>Pozorna Oszczędność</h3>
                    <p>Zwykła rura bez bariery tlenowej</p>
                </div>
            </div>
        </div>

        <div class="rk-evoh-panel active" id="panel-pro">
            <div class="rk-evoh-svg-box">
                <svg viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="50" cy="50" r="45" stroke="#10b981" stroke-width="4" fill="#dcfce7"/>
                    <circle cx="50" cy="50" r="35" stroke="#047857" stroke-width="2"/>
                    <circle cx="50" cy="50" r="25" stroke="#10b981" stroke-width="6"/>
                    <circle cx="50" cy="50" r="15" fill="#34d399"/>
                    <path d="M10 50 Q 25 30 15 15" stroke="#64748b" stroke-width="2" stroke-linecap="round" marker-end="url(#arrow-bounce)"/>
                    <text x="7" y="12" fill="#64748b" font-size="10" font-weight="bold">O₂</text>
                </svg>
            </div>
            <div class="rk-evoh-content panel-pro-text">
                <h4>Optymalny Wybór Inżynierski</h4>
                <p>
                    Dla zapewnienia <strong>50-letniej, bezawaryjnej pracy instalacji</strong>, stosujemy rury 5-warstwowe <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX-a EVOH</a> lub <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">PE-RT Typ II EVOH</a> o średnicy 16x2.0 mm.
                </p>
                <p>
                    Kluczem jest rygorystyczne trzymanie się wytycznych. Układamy rury wyłącznie na podstawie profesjonalnego projektu opartego o rzeczywiste obliczenia OZC. Wszystkie połączenia do <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> realizujemy za pomocą dedykowanych złączek (Press), a całość musi przejść protokołowaną próbę ciśnieniową przed wylewką.
                </p>
            </div>
        </div>

        <div class="rk-evoh-panel" id="panel-risk">
            <div class="rk-evoh-svg-box">
                <svg viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="50" cy="50" r="45" stroke="#ef4444" stroke-width="4" stroke-dasharray="8 4" fill="#fef2f2"/>
                    <path d="M10 20 L 40 40" stroke="#ef4444" stroke-width="2" stroke-linecap="round" class="anim-pipe-flow"/>
                    <path d="M85 80 L 60 60" stroke="#ef4444" stroke-width="2" stroke-linecap="round" class="anim-pipe-flow"/>
                    <circle cx="50" cy="50" r="20" fill="#450a0a" class="anim-pulse-warning"/>
                    <text x="15" y="15" fill="#ef4444" font-size="10" font-weight="bold">O₂</text>
                    <text x="80" y="95" fill="#ef4444" font-size="10" font-weight="bold">O₂</text>
                </svg>
            </div>
            <div class="rk-evoh-content panel-risk-text">
                <h4>Katastrofalne Konsekwencje</h4>
                <p>
                    Próba pozornego zaoszczędzenia <strong>400 PLN – 800 PLN</strong> na etapie zakupu tańszej rury jednorodnej bez EVOH to błąd, który ujawnia się najczęściej po zakończeniu gwarancji. 
                </p>
                <p>
                    Brak osłony przed tlenem skutkuje kaskadowym zniszczeniem urządzeń grzewczych (zwłaszcza jeśli to <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> kondensacyjny) oraz trwałym <strong>obniżeniem sprawności podłogi o 15-30%</strong>. Zarastanie rur czarnym szlamem magnetytowym to problem, na który musisz uważać, badając <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady instalacji płaszczyznowych</a> przed ich wdrożeniem.
                </p>
            </div>
        </div>
    </div>

    <div class="rk-evoh-tags">
        <div class="rk-evoh-tags-wrapper">
            <span class="rk-mat-tag"># rura z barierą antydyfuzyjną evoh cena</span>
            <span class="rk-mat-tag"># rura pex czy pert do podłogówki</span>
            <span class="rk-mat-tag"># skutki braku bariery tlenowej</span>
            <span class="rk-mat-tag"># najlepsze rury do ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># rura 5-warstwowa do podłogówki</span>
            <span class="rk-mat-tag"># ogrzewanie podłogowe koszty awarii</span>
            <span class="rk-mat-tag"># zarastanie instalacji szlamem</span>
            <span class="rk-mat-tag"># profesjonalny projekt instalacji sanitarnej</span>
        </div>
    </div>

    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Decyzje inwestycyjne oparte na inżynierii</h3>
        <p class="rk-sum-cta-text">
            Twój dom to projekt życia. Zrozumienie fizyki budowli i parametrów technicznych to jedyny sposób na uniknięcie kosztownych pułapek. Przejdź do naszego kompendium technicznego i buduj bez ściemy.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            PRZEJDŹ DO BAZY WIEDZY BLOGA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-evoh-tab-btn');
    const panels = document.querySelectorAll('.rk-evoh-panel');

    for (let i = 0; i < tabBtns.length; i++) {
        tabBtns[i].addEventListener('click', function() {
            let targetId = this.getAttribute('data-target');
            
            // Remove active from all tabs
            for (let j = 0; j < tabBtns.length; j++) {
                tabBtns[j].classList.remove('active');
            }
            // Add active to clicked
            this.classList.add('active');

            // Hide all panels
            for (let k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }
            
            // Show target panel
            let targetPanel = document.getElementById(targetId);
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });

        // Obsługa z klawiatury dla dostępności
        tabBtns[i].addEventListener('keydown', function(e) {
            if (e.key === 'Enter' || e.key === ' ') {
                e.preventDefault();
                this.click();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-light: #f0f9ff;
    --rk-dl-accent: #0ea5e9;
    --rk-dl-green: #10b981;
    --rk-dl-gray: #64748b;
    --rk-dl-border: #e2e8f0;
    --rk-dl-bg: #ffffff;
}

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

.rk-dl-container * {
    box-sizing: border-box;
    /* Zgodnie z poleceniem: całkowity brak animacji */
    transition: none !important;
    animation: none !important;
}

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

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-dl-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.25;
}

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

/* Sekcja Główna */
.rk-dl-content {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 40px;
    background: #ffffff;
    align-items: start;
}

/* Miniatura Infografiki */
.rk-dl-thumbnail-box {
    background: #f8fafc;
    border: 2px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
}

.rk-dl-thumbnail {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
    display: block;
    margin-bottom: 15px;
}

.rk-btn-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px;
    background: #ffffff;
    color: var(--rk-dl-dark);
    border: 2px solid var(--rk-dl-dark);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}

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

/* Przyciski Pobierania i Opis */
.rk-dl-info {
    display: flex;
    flex-direction: column;
}

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

.rk-dl-info p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-dl-gray);
    margin: 0 0 25px 0;
}

.rk-dl-actions {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-btn-download {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
}

.rk-btn-pdf {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: 2px solid var(--rk-dl-blue);
}

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

.rk-btn-img {
    background: var(--rk-dl-light);
    color: var(--rk-dl-blue);
    border: 2px solid #bae6fd;
}

.rk-btn-img:hover {
    background: #e0f2fe;
}

.rk-btn-icon-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-meta {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 700;
}

/* Sekcja Copyright */
.rk-dl-copyright {
    background: #f8fafc;
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 50px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.rk-dl-copyright svg {
    color: var(--rk-dl-gray);
    flex-shrink: 0;
    margin-top: 3px;
}

.rk-dl-copyright p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    font-weight: 500;
}

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

/* Moduł Podglądu (Lightbox - bez animacji) */
.rk-preview-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    padding: 40px;
    align-items: center;
    justify-content: center;
}

.rk-preview-modal.active {
    display: flex;
}

.rk-preview-content {
    position: relative;
    max-width: 800px;
    width: 100%;
    max-height: 90vh;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
}

.rk-preview-content img {
    width: 100%;
    height: auto;
    max-height: calc(90vh - 20px);
    object-fit: contain;
    border-radius: 8px;
    display: block;
}

.rk-btn-close {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 44px;
    height: 44px;
    background: var(--rk-dl-red);
    color: #ffffff;
    border: none;
    border-radius: 50%;
    font-size: 24px;
    font-weight: 900;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

@media (max-width: 850px) {
    .rk-dl-content { grid-template-columns: 1fr; gap: 30px; }
    .rk-dl-thumbnail-box { max-width: 400px; margin: 0 auto; }
}

@media (max-width: 600px) {
    .rk-dl-header, .rk-dl-content, .rk-dl-copyright { padding: 30px 20px; }
    .rk-dl-header h2 { font-size: 26px; }
    .rk-preview-modal { padding: 15px; }
    .rk-btn-close { top: -10px; right: -10px; width: 36px; height: 36px; font-size: 20px; }
    .rk-btn-download { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-dl-meta { align-self: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/"
    },
    "headline": "Infografika: Rura z barierą antydyfuzyjną (EVOH) w pigułce",
    "description": "Zestawienie 5 kluczowych powodów, dla których warstwa EVOH jest niezbędna w instalacji ogrzewania podłogowego. Darmowe materiały edukacyjne do pobrania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rura-z-bariera-antydyfuzyjna-EVOH.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-21",
    "dateModified": "2026-06-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#dataset-infografika-evoh",
    "name": "Materiały Edukacyjne HVAC: 5 Powodów dla EVOH",
    "description": "Zestawienie wizualne i zbiór zasad dotyczących ochrony instalacji grzewczych przed dyfuzją tlenu i korozją.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "zatykanie pompy ciepła szlam",
      "rura z barierą antydyfuzyjną pdf",
      "ściągawka instalatora hvac",
      "norma DIN 4726 pdf"
    ],
    "measurementTechnique": "Prezentacja graficzna zależności pomiędzy strukturą rury (5-warstwowa EVOH) a całkowitym wskaźnikiem ochrony kotła i pomp przed magnetytem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ochrona kotła i pompy ciepła przed korozją.",
        "Zero przenikania tlenu (< 0,1 mg O2).",
        "Czysta woda w instalacji bez szlamu.",
        "Wydajność potwierdzona na dekady.",
        "Inwestycja i gwarancja na 50 lat."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/#webapp-centrum-pobierania",
    "name": "Centrum Pobierania Materiałów Inżynierskich",
    "description": "Interaktywny portal zintegrowany z artykułem umożliwiający szybki podgląd w wysokiej rozdzielczości oraz bezpieczne pobieranie schematów i wytycznych instalacyjnych w formatach PDF i WebP.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-center">
    
    <div class="rk-dl-header">
        <div class="rk-dl-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały do pobrania
        </div>
        <h2>Infografika: Rura z barierą antydyfuzyjną (EVOH) w pigułce</h2>
        <p>
            Wszystkie najważniejsze parametry i argumenty zebraliśmy w jednym miejscu. Pobierz ściągawkę, aby zawsze mieć przy sobie twarde dowody na skuteczność powłoki EVOH.
        </p>
    </div>

    <div class="rk-dl-content">
        
        <div class="rk-dl-thumbnail-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rura-z-bariera-antydyfuzyjna-EVOH.webp" alt="Infografika rura EVOH - miniatura" class="rk-dl-thumbnail" loading="lazy">
            <button class="rk-btn-preview" id="rkBtnOpenPreview">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ obraz
            </button>
        </div>

        <div class="rk-dl-info">
            <h3>5 kluczowych powodów w jednym pliku</h3>
            <p>
                Materiał idealnie sprawdza się jako pomoc na budowie dla instalatorów oraz jako argumentacja dla inwestorów stojących przed wyborem rury. Wybierz odpowiedni format poniżej.
            </p>

            <div class="rk-dl-actions">
                
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rura-z-bariera-antydyfuzyjna-EVOH.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-pdf">
                    <div class="rk-btn-icon-group">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        Pobierz plik PDF
                    </div>
                    <span class="rk-dl-meta">Wysoka jakość druku</span>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rura-z-bariera-antydyfuzyjna-EVOH.webp" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-img">
                    <div class="rk-btn-icon-group">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        Zapisz jako Obrazek
                    </div>
                    <span class="rk-dl-meta">Szybkie udostępnianie (.webp)</span>
                </a>

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

    <div class="rk-dl-copyright">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M14.83 14.83a4 4 0 1 1 0-5.66"></path></svg>
        <p>
            <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
            Udostępnianie materiału dozwolone wyłącznie z zachowaniem oryginalnego logotypu portalu i bez żadnych modyfikacji pliku. Pamiętaj, że rzetelna edukacja buduje branżę.
        </p>
    </div>
</div>

<div class="rk-preview-modal" id="rkPreviewModal">
    <div class="rk-preview-content">
        <button class="rk-btn-close" id="rkBtnClosePreview" aria-label="Zamknij podgląd">×</button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rura-z-bariera-antydyfuzyjna-EVOH.webp" alt="Pełnowymiarowa infografika EVOH" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnOpen = document.getElementById('rkBtnOpenPreview');
    const btnClose = document.getElementById('rkBtnClosePreview');
    const modal = document.getElementById('rkPreviewModal');

    // Brak && i animacji, czyste przypisanie klas
    function openModal() {
        if (modal) {
            modal.classList.add('active');
        }
    }

    function closeModal() {
        if (modal) {
            let isActive = modal.classList.contains('active');
            if (isActive) {
                modal.classList.remove('active');
            }
        }
    }

    if (btnOpen) {
        btnOpen.addEventListener('click', openModal);
    }

    if (btnClose) {
        btnClose.addEventListener('click', closeModal);
    }

    // Zamknięcie po kliknięciu w tło
    if (modal) {
        modal.addEventListener('click', function(e) {
            let isBackground = false;
            if (e.target === modal) {
                isBackground = true;
            }
            if (isBackground) {
                closeModal();
            }
        });
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">Rura z barierą antydyfuzyjną (EVOH).</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile styropianu pod ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-brand: #ea580c; /* Termiczna pomarańcz */
    --rk-intro-brand-light: #ffedd5;
    --rk-intro-blue: #0284c7;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

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

/* Sekcja Główna Wstępu */
.rk-intro-header {
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-intro-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

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

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

.rk-intro-header p {
    font-size: 18px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

.rk-intro-header strong {
    color: #ffffff;
    font-weight: 800;
    background: rgba(234, 88, 12, 0.3);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł "Czego się dowiesz" */
.rk-intro-agenda {
    padding: 40px 50px;
    background: var(--rk-intro-surface);
}

.rk-agenda-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-agenda-title svg {
    color: var(--rk-intro-brand);
}

.rk-agenda-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

/* Interaktywne Kafelki */
.rk-agenda-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
    text-decoration: none;
    display: block;
}

.rk-agenda-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(135deg, rgba(255,255,255,0) 0%, var(--rk-intro-brand-light) 100%);
    opacity: 0;
    z-index: -1;
    transition: opacity 0.4s;
    border-radius: 16px;
}

.rk-agenda-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-intro-brand);
    box-shadow: 0 15px 30px -10px rgba(234, 88, 12, 0.15);
}

.rk-agenda-card:hover::before {
    opacity: 0.5;
}

.rk-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-intro-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    margin-bottom: 15px;
    transition: all 0.4s;
}

.rk-agenda-card:hover .rk-card-icon {
    background: var(--rk-intro-brand);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

.rk-card-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 8px 0;
    line-height: 1.4;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-agenda { padding: 35px 25px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-header p { font-size: 16px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe? Kompendium Inżynierskie",
    "description": "Zestawienie norm prawnych i kalkulacji inżynierskich określających wymaganą grubość izolacji podłogowej dla maksymalizacji sprawności źródła ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Struktura Analizy Izolacyjności WT2021",
    "description": "Zestawienie wytycznych prawnych, termodynamicznych i wykonawczych dla doboru materiałów izolacyjnych (EPS/XPS) pod wodne systemy płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość izolacji WT2021",
      "straty ciepła do gruntu",
      "opór cieplny styropianu",
      "EPS grafitowy czy biały"
    ],
    "measurementTechnique": "Agregacja parametrów cieplnych i mechanicznych zgodna z normami budowlanymi, prezentująca wpływ grubości izolacji na efektywność OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Analiza współczynnika przenikania ciepła dla gruntu",
        "Porównanie właściwości EPS 100 białego i grafitowego",
        "Korelacja grubości styropianu z Projektowym Obciążeniem Cieplnym (OZC)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Nawigator Wiedzy Technicznej",
    "description": "Interaktywny interfejs wprowadzający nawigujący użytkownika po kluczowych zagadnieniach inżynierskich związanych z doborem izolacji podłogowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Kompendium Inżyniera
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p>
            Decyzja o grubości izolacji podłogowej determinuje koszty ogrzewania budynku przez najbliższe kilkadziesiąt lat. Poniższy artykuł stanowi kompletne kompendium techniczne określające, <strong>ile styropianu pod ogrzewanie podłogowe</strong> należy zastosować, aby instalacja działała z maksymalną sprawnością, spełniając aktualne normy prawne i drastycznie minimalizując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" style="color: #60a5fa; text-decoration: underline; font-weight: 700;">straty ciepła do gruntu</a>. Zbyt cienki styropian pod podłogówkę może oznaczać tysiące złotych strat ciepła przez kolejne lata. Dlatego dobór odpowiedniej izolacji pod ogrzewanie podłogowe to nie detal, ale jeden z najważniejszych elementów całej instalacji.
        </p>
    </div>

    <div class="rk-intro-agenda">
        <div class="rk-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            W tym poradniku odkryjesz:
        </div>
        
        <div class="rk-agenda-grid">
            <a href="#normy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <h3 class="rk-card-title">Normy prawne i WT2021</h3>
                <p class="rk-card-desc">Poznasz bezwzględne minimum grubości wymagane przepisami budowlanymi dla współczynnika U ≤ 0,20.</p>
            </a>

            <a href="#materialy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <h3 class="rk-card-title">Jaki styropian?</h3>
                <p class="rk-card-desc">Porównanie parametrów technicznych i gęstości styropianów podłogowych. Dowiesz się, jaki styropian położyć pod ogrzewanie podłogowe.</p>
            </a>

            <a href="#obliczenia" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                </div>
                <h3 class="rk-card-title">Krok po kroku: Obliczenia</h3>
                <p class="rk-card-desc">Gotowy algorytm matematyczny pozwalający wyznaczyć opór cieplny (R) w zależności od strat energii.</p>
            </a>

            <a href="#bledy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <h3 class="rk-card-title">Krytyczne błędy montażowe</h3>
                <p class="rk-card-desc">Zestawienie uchybień wykonawczych, które niszczą efektywność nawet najgrubszego styropianu.</p>
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z poleceniem)
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(currentDomain)) {
        const targetContainer = document.getElementById('rk-intro-app');
        if (targetContainer) {
            targetContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent wprowadzający wraz ze strukturą JSON-LD jest licencjonowany wyłącznie dla domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane wdrożenie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }
});
</script>



<style>
:root {
    --rk-wt-dark: #0f172a;
    --rk-wt-surface: #1e293b;
    --rk-wt-brand: #059669; /* Inżynieryjna zieleń - zgodność z normami */
    --rk-wt-brand-light: #d1fae5;
    --rk-wt-accent: #f59e0b; /* Pomarańcz termiczna */
    --rk-wt-gray: #f1f5f9;
    --rk-wt-border: #e2e8f0;
    --rk-wt-text: #334155;
    --rk-wt-text-light: #64748b;
}

.rk-wt-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(5, 150, 105, 0.15);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

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

.rk-wt-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.3);
    color: #a7f3d0;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(167, 243, 208, 0.2);
}

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

.rk-wt-prose {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-wt-prose strong {
    color: #ffffff;
    font-weight: 700;
}

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

.rk-wt-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
}

.rk-wt-tab {
    padding: 16px 10px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-wt-text-light);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.rk-wt-tab svg {
    width: 24px;
    height: 24px;
    opacity: 0.6;
    transition: all 0.3s;
}

.rk-wt-tab:hover {
    background: rgba(255, 255, 255, 0.5);
    color: var(--rk-wt-text);
}

.rk-wt-tab.active {
    background: #ffffff;
    color: var(--rk-wt-brand);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.rk-wt-tab.active svg {
    opacity: 1;
    color: var(--rk-wt-brand);
    transform: scale(1.1);
}

/* Wyświetlacz Wyników */
.rk-wt-display {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-wt-border);
    align-items: center;
}

/* Lewa Strona - Dane */
.rk-wt-data-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--rk-wt-gray);
}

.rk-wt-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--rk-wt-gray);
}

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

.rk-wt-data-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-wt-text-light);
}

.rk-wt-data-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.val-highlight {
    background: var(--rk-wt-brand-light);
    color: var(--rk-wt-brand);
    padding: 4px 10px;
    border-radius: 6px;
}

/* Prawa Strona - Wizualizacja SVG */
.rk-wt-visual {
    background: var(--rk-wt-surface);
    border-radius: 16px;
    padding: 20px;
    height: 240px;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    overflow: hidden;
}

.rk-svg-layer { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.layer-concrete { fill: #94a3b8; }
.layer-pipes { fill: #ef4444; }
.layer-eps { fill: var(--rk-wt-accent); }
.layer-ground { fill: #475569; }

/* Animacje fal ciepła */
.heat-wave {
    stroke: #ef4444;
    stroke-width: 2.5;
    stroke-linecap: round;
    fill: none;
    opacity: 0;
}

/* Stany dynamiczne z JS */
.state-level-1 .layer-eps { height: 25px; y: 70px; }
.state-level-1 .layer-ground { y: 95px; }
.state-level-1 .heat-wave.down { animation: heatLeak 2s infinite linear; }

.state-level-2 .layer-eps { height: 45px; y: 70px; }
.state-level-2 .layer-ground { y: 115px; }
.state-level-2 .heat-wave.down { animation: heatLeakSlow 2.5s infinite linear; stroke: #f59e0b; }

.state-level-3 .layer-eps { height: 75px; y: 70px; }
.state-level-3 .layer-ground { y: 145px; }
.state-level-3 .heat-wave.up { animation: heatBounce 2s infinite ease-out; }

@keyframes heatLeak {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}
@keyframes heatLeakSlow {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(30px); opacity: 0; }
}
@keyframes heatBounce {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(-20px); opacity: 0.5; }
    100% { transform: translateY(0); opacity: 1; }
}

/* Sekcja linków kontekstowych */
.rk-wt-context {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-wt-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-wt-text);
}

.rk-wt-context a {
    color: var(--rk-wt-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-wt-header, .rk-wt-interactive, .rk-wt-context { padding: 30px 20px; }
    .rk-wt-tabs { grid-template-columns: 1fr; }
    .rk-wt-tab { flex-direction: row; justify-content: center; padding: 12px; }
    .rk-wt-display { grid-template-columns: 1fr; gap: 20px; }
    .rk-wt-data-row { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-wt-visual { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wt2021",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami WT2021?",
    "description": "Analiza normy PN-EN 1264-4. Minimalna grubość styropianu EPS 100 na gruncie to 15 cm (biały) lub 12 cm (grafitowy) dla uzyskania U=0,20 W/(m2K).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wt2021",
    "name": "Wymagania cieplne izolacji podłogowej wg WT2021 i PN-EN 1264-4",
    "description": "Zestawienie minimalnych oporów cieplnych (R) i grubości styropianu (EPS) dla różnych konstrukcji stropów z ogrzewaniem płaszczyznowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu WT2021",
      "współczynnik U dla podłogi na gruncie",
      "opór cieplny izolacji podłogówki R",
      "minimalna grubość eps 100"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R wg normy PN-EN 1264-4 oraz współczynnika U wg Warunków Technicznych 2021 (U_max = 0,20 W/(m2K)).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strop nad ogrzewanym: R = 1,25 m2K/W",
        "Strop nad nieogrzewanym: R = 2,00 m2K/W",
        "Podłoga na gruncie (zewn < -5°C): R = 2,25 m2K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wt2021",
    "name": "Kalkulator Normatywny PN-EN 1264-4",
    "description": "Interaktywne narzędzie obliczeniowe wyznaczające wymaganą grubość styropianu białego i grafitowego dla trzech scenariuszy konstrukcji podłogi.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wt-container" id="rk-wt-app">
    <div class="rk-wt-header">
        <div class="rk-wt-badge">
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Przepisy i Normy 2026
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami?</h2>
        <div class="rk-wt-prose">
            Zgodnie z polskimi przepisami budowlanymi (<strong>Warunki Techniczne WT2021</strong>), minimalna grubość styropianu EPS 100 pod ogrzewanie podłogowe na gruncie wynosi <strong>150 mm (15 cm)</strong> dla tradycyjnego białego styropianu (λ = 0,038 W/(m·K)) lub <strong>120 mm (12 cm)</strong> dla styropianu grafitowego (λ = 0,031 W/(m·K)). Wymóg ten wynika wprost z konieczności osiągnięcia współczynnika przenikania ciepła dla podłogi na gruncie na poziomie maksymalnie <strong>U_max = 0,20 W/(m²K)</strong>.
        </div>
    </div>

    <div class="rk-wt-interactive">
        <div class="rk-wt-tabs">
            <button class="rk-wt-tab" data-target="level1">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                Strop nad ogrzewanym
            </button>
            <button class="rk-wt-tab" data-target="level2">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path></svg>
                Strop nad piwnicą
            </button>
            <button class="rk-wt-tab active" data-target="level3">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M2 12h20"></path><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
                Podłoga na gruncie
            </button>
        </div>

        <div class="rk-wt-display state-level-3" id="wt-display">
            <div class="rk-wt-data-panel">
                <h3 id="wt-title">Podłoga na gruncie (-5°C)</h3>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">Wymagany opór cieplny (R):</span>
                    <span class="rk-wt-data-value val-highlight" id="wt-r-val">2,25 m²·K/W</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Biały (λ = 0,038):</span>
                    <span class="rk-wt-data-value" id="wt-eps-white">150 mm (15 cm)</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Grafit (λ = 0,031):</span>
                    <span class="rk-wt-data-value" id="wt-eps-graphite">120 mm (12 cm)</span>
                </div>
            </div>

            <div class="rk-wt-visual">
                <svg width="100%" height="100%" viewBox="0 0 200 200" preserveAspectRatio="xMidYMid meet">
                    <rect class="rk-svg-layer layer-concrete" x="10" y="30" width="180" height="40" rx="4" />
                    <circle class="layer-pipes" cx="40" cy="50" r="6" />
                    <circle class="layer-pipes" cx="80" cy="50" r="6" />
                    <circle class="layer-pipes" cx="120" cy="50" r="6" />
                    <circle class="layer-pipes" cx="160" cy="50" r="6" />
                    
                    <rect class="rk-svg-layer layer-eps" x="10" y="70" width="180" height="75" />
                    
                    <rect class="rk-svg-layer layer-ground" x="0" y="145" width="200" height="60" />
                    
                    <path class="heat-wave up" d="M40 25 L40 10 M35 15 L40 10 L45 15" />
                    <path class="heat-wave up" d="M120 25 L120 10 M115 15 L120 10 L125 15" />

                    <path class="heat-wave down" d="M80 85 L80 110 M75 105 L80 110 L85 105" />
                    <path class="heat-wave down" d="M160 85 L160 110 M155 105 L160 110 L165 105" />
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-wt-context">
        Wybór grubości izolacji termicznej nie może być kompromisem budżetowym. To element konstrukcyjny, którego nie da się wymienić po zalaniu <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a>. Zastosowanie zbyt cienkiej warstwy oznacza permanentne straty energii, gdzie ciepło ucieka w dół. Aby system współpracujący z niskotemperaturowym źródłem (np. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła na parametrze 35/30°C</a>) osiągnął najwyższy współczynnik COP, izolacja musi stanowić skuteczną barierę, określoną precyzyjnie w normie <strong>PN-EN 1264-4</strong>.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez używania H2/H3 w komunikacie o błędzie)
    const host = window.location.hostname;
    const permittedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!permittedHosts.includes(host)) {
        const wtContainer = document.getElementById('rk-wt-app');
        if (wtContainer) {
            wtContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🚫</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6; max-width: 500px; margin: 0 auto;">
                        Kalkulator Normatywny PN-EN 1264-4 oraz warstwa metadanych JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora WT2021
    const tabs = document.querySelectorAll('.rk-wt-tab');
    const display = document.getElementById('wt-display');
    
    // Elementy danych do aktualizacji
    const elTitle = document.getElementById('wt-title');
    const elRVal = document.getElementById('wt-r-val');
    const elWhite = document.getElementById('wt-eps-white');
    const elGraphite = document.getElementById('wt-eps-graphite');

    const dataMap = {
        'level1': {
            title: 'Strop nad pomieszczeniem ogrzewanym',
            rVal: '1,25 m²·K/W',
            white: '50 mm (5 cm)',
            graphite: '40 mm (4 cm)',
            stateClass: 'state-level-1'
        },
        'level2': {
            title: 'Strop nad pomieszczeniem nieogrzewanym',
            rVal: '2,00 m²·K/W',
            white: '80 mm (8 cm)',
            graphite: '70 mm (7 cm)',
            stateClass: 'state-level-2'
        },
        'level3': {
            title: 'Podłoga na gruncie (zewn < -5°C)',
            rVal: '2,25 m²·K/W',
            white: '150 mm (15 cm)',
            graphite: '120 mm (12 cm)',
            stateClass: 'state-level-3'
        }
    };

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

            const target = this.getAttribute('data-target');
            const data = dataMap[target];

            // Aktualizacja UI
            elTitle.textContent = data.title;
            elRVal.textContent = data.rVal;
            elWhite.textContent = data.white;
            elGraphite.textContent = data.graphite;

            // Zmiana klasy wizualizacji
            display.className = `rk-wt-display ${data.stateClass}`;
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwień ostrzegawcza */
    --rk-err-brand-light: #fee2e2;
    --rk-err-safe: #10b981; /* Zieleń inżynieryjna */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

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

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

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

.rk-err-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

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

/* Sekcja Interaktywna - Układ */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
    border-bottom: 1px solid var(--rk-err-border);
}

/* Panel Kontrolny (Suwaki) */
.rk-err-controls {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
}

.rk-err-control-group {
    margin-bottom: 35px;
}

.rk-err-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin-bottom: 15px;
}

.rk-err-val-display {
    background: var(--rk-err-dark);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    transition: background 0.3s;
}

.rk-err-val-display.warning { background: var(--rk-err-brand); }
.rk-err-val-display.safe { background: var(--rk-err-safe); }

/* Stylizacja Suwaków (Range) */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

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

.rk-range:active::-webkit-slider-thumb { transform: scale(1.2); }
.rk-range.warning-track::-webkit-slider-thumb { background: var(--rk-err-brand); }
.rk-range.safe-track::-webkit-slider-thumb { background: var(--rk-err-safe); }

/* Panel Diagnozy */
.rk-err-diagnosis {
    padding: 20px;
    background: var(--rk-err-brand-light);
    border-radius: 12px;
    border: 1px solid rgba(239,68,68,0.2);
    margin-top: 20px;
    transition: all 0.3s;
}

.rk-err-diagnosis.safe-mode {
    background: #dcfce7;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-diag-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.rk-err-diagnosis.safe-mode .rk-diag-title { color: #065f46; }
.rk-err-diagnosis:not(.safe-mode) .rk-diag-title { color: #991b1b; }

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

/* Symulacja SVG */
.rk-err-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    position: relative;
    overflow: hidden;
}

.rk-svg-simulator {
    width: 100%;
    max-width: 400px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.1));
}

.svg-concrete { fill: #94a3b8; transition: fill 0.3s; }
.svg-pipe { fill: #ef4444; }
.svg-eps { fill: #fcd34d; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-ground { fill: #64748b; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }

/* Zjawiska (Pęknięcia, Straty) */
.svg-crack {
    stroke: #0f172a; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out;
}
.svg-heat-down { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-heat-up { stroke: #10b981; stroke-width: 4; fill: none; stroke-linecap: round; opacity: 0; }
.svg-moisture { fill: #3b82f6; opacity: 0; transition: opacity 0.5s; }

/* Stany Aktywowane z JS */
.state-crack .svg-crack { stroke-dashoffset: 0; }
.state-crack .svg-concrete { fill: #cbd5e1; } /* Osłabiony beton */

.state-heat-loss .svg-heat-down { animation: heatLeakAnim 1.5s infinite linear; }
.state-heat-good .svg-heat-up { animation: heatRiseAnim 2s infinite ease-out; }
.state-moisture .svg-moisture { opacity: 0.6; animation: pulseMoist 3s infinite alternate; }

@keyframes heatLeakAnim {
    0% { transform: translateY(0); opacity: 0.8; stroke: #ef4444; }
    100% { transform: translateY(50px); opacity: 0; stroke: #3b82f6; }
}
@keyframes heatRiseAnim {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(-30px); opacity: 0; }
}
@keyframes pulseMoist { from { opacity: 0.3; } to { opacity: 0.7; transform: scale(1.05); } }

/* Grid Konsekwencji Tekstowych */
.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-err-card {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-err-border);
    background: var(--rk-err-bg);
}

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

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

.rk-err-card a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
}

.rk-err-card a:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .rk-err-header, .rk-err-controls, .rk-err-visual, .rk-err-grid { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-svg-simulator { max-width: 280px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są konsekwencje błędów w doborze grubości izolacji podłogowej?",
    "description": "Analiza skutków zastosowania zbyt miękkiego styropianu (EPS 70) oraz niedostatecznej grubości. Wzrost strat ciepła o 30% i ryzyko pękania wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Kalkulator Strat i Uszkodzeń Posadzki (EPS 70 vs EPS 100)",
    "description": "Symulacja zestawień fizycznych i mechanicznych pokazująca skutki obniżania grubości (5-15cm) oraz twardości płyt izolacyjnych pod wylewką jastrychową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki zbyt cienkiego styropianu",
      "pękanie wylewki na podłogówce",
      "straty ciepła do gruntu",
      "niedogrzana łazienka podłogówka",
      "osiadanie posadzki styropian eps 70"
    ],
    "measurementTechnique": "Interaktywne modelowanie strat termicznych i odkształceń mechanicznych wylewki w oparciu o gęstość pozorną polistyrenu i prawo Fouriera.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek mocy grzewczej i efekt zimnych plam przy izolacji < 10 cm",
        "Destrukcja strukturalna jastrychu przy obciążeniu styropianu rzędu EPS 70",
        "Permanentna ucieczka strumienia ciepła w kierunku nieogrzewanego gruntu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-bledy",
    "name": "Symulator Degradacji Posadzki i Strat Ciepła",
    "description": "Narzędzie inżynieryjne z interaktywnymi suwakami demonstrujące wpływ twardości (EPS 70/100) i grubości na mechaniczne pękanie wylewki i ucieczkę energii.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Symulacja Błędów i Awarii
        </div>
        <h2 class="rk-err-title">Jakie są konsekwencje błędów w doborze grubości i twardości izolacji?</h2>
        <p class="rk-err-desc">
            Zastosowanie izolacji niespełniającej wymogów normowych powoduje <strong>wzrost strat ciepła do gruntu nawet o 20-30%</strong>, co bezpośrednio przekłada się na zwiększenie rachunków za energię o kilkaset złotych rocznie. Użyj suwaków poniżej, aby zobaczyć fizyczne skutki oszczędzania na materiale.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-controls">
            
            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Grubość izolacji:
                    <span class="rk-err-val-display warning" id="val-thick">5 cm</span>
                </div>
                <input type="range" id="slider-thick" class="rk-range warning-track" min="5" max="15" step="5" value="5">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>5 cm (Awaria)</span>
                    <span>10 cm</span>
                    <span>15 cm (Norma)</span>
                </div>
            </div>

            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Twardość materiału:
                    <span class="rk-err-val-display warning" id="val-eps">EPS 70</span>
                </div>
                <input type="range" id="slider-eps" class="rk-range warning-track" min="70" max="100" step="30" value="70">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>Fasadowy (Miękki)</span>
                    <span>Podłogowy (Twardy)</span>
                </div>
            </div>

            <div class="rk-err-diagnosis" id="diag-panel">
                <div class="rk-diag-title" id="diag-title">Krytyczny stan posadzki!</div>
                <p class="rk-diag-text" id="diag-text">
                    Styropian ugina się pod ciężarem wylewki, powodując jej pękanie. Ucieczka ciepła w grunt wynosi +30%. Pomieszczenia będą trwale niedogrzane.
                </p>
            </div>

        </div>

        <div class="rk-err-visual" id="svg-container">
            <svg class="rk-svg-simulator" viewBox="0 0 200 200">
                <rect class="svg-ground" id="rect-ground" x="10" y="100" width="180" height="90" rx="4"/>
                
                <path class="svg-moisture" d="M30 110 Q40 90 50 110 T70 110 T90 110 T110 110 T130 110 T150 110 T170 110" fill="none" stroke="#3b82f6" stroke-width="4"/>

                <rect class="svg-eps" id="rect-eps" x="10" y="70" width="180" height="30" />
                
                <rect class="svg-concrete" x="10" y="30" width="180" height="40" rx="4" />
                <circle class="svg-pipe" cx="40" cy="50" r="7" />
                <circle class="svg-pipe" cx="80" cy="50" r="7" />
                <circle class="svg-pipe" cx="120" cy="50" r="7" />
                <circle class="svg-pipe" cx="160" cy="50" r="7" />

                <path class="svg-crack" d="M90 30 L100 45 L95 55 L105 70" />

                <path class="svg-heat-down" d="M40 70 L40 100 M35 85 L40 100 L45 85" />
                <path class="svg-heat-down" d="M120 70 L120 100 M115 85 L120 100 L125 85" />
                <path class="svg-heat-down" d="M160 70 L160 100 M155 85 L160 100 L165 85" />
                
                <path class="svg-heat-up" d="M80 30 L80 5 M75 15 L80 5 L85 15" />
                <path class="svg-heat-up" d="M120 30 L120 5 M115 15 L120 5 L125 15" />
            </svg>
        </div>

    </div>

    <div class="rk-err-grid">
        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Permanentny uciek strumienia ciepła
            </h4>
            <p>Grunt pod budynkiem działa jak nieskończony radiator. Bez bariery o odpowiednim oporze cieplnym (R), system marnuje wyprodukowaną energię na ogrzewanie mas ziemnych pod płytą fundamentową zamiast salonu.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Pękanie wylewki i osiadanie
            </h4>
            <p>Użycie styropianu elewacyjnego (EPS 70) powoduje odkształcenia plastyczne pod ciężarem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a> (ok. 130 kg/m²). Efektem jest pękanie płyty, uszkodzenia płytek i destrukcja dylatacji.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Efekt "zimnych plam"
            </h4>
            <p>Przy zbyt cienkiej izolacji drastycznie spada moc grzewcza posadzki. System nie pokrywa <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>, zwłaszcza w łazienkach, gdzie wymagana temperatura to 24°C.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                Zawilgocenie i pleśń
            </h4>
            <p>Brak optymalnej grubości płyt połączony z uchybieniami w kładzeniu <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">izolacji hydroizolacyjnej</a> generuje podciąganie kapilarne wilgoci z gruntu, degradację izolatora i ryzyko rozwoju mikroorganizmów.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (zgodnie z wytycznymi - brak H2/H3 w alercie)
    const hostName = window.location.hostname;
    const legalHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!legalHosts.includes(hostName)) {
        const errorContainer = document.getElementById('rk-err-app');
        if (errorContainer) {
            errorContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane użycie kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Moduł "Symulator Błędów Izolacyjnych" oraz mikrodane JSON-LD są prawnie chronione i należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const thickSlider = document.getElementById('slider-thick');
    const epsSlider = document.getElementById('slider-eps');
    
    const valThick = document.getElementById('val-thick');
    const valEps = document.getElementById('val-eps');
    
    const svgContainer = document.getElementById('svg-container');
    const rectEps = document.getElementById('rect-eps');
    const rectGround = document.getElementById('rect-ground');
    
    const diagPanel = document.getElementById('diag-panel');
    const diagTitle = document.getElementById('diag-title');
    const diagText = document.getElementById('diag-text');

    function updateSimulator() {
        const t = parseInt(thickSlider.value); // 5, 10, 15
        const e = parseInt(epsSlider.value);   // 70, 100

        // Reset klas SVG
        svgContainer.className = 'rk-err-visual';
        let svgClasses = ['rk-err-visual'];

        // Analiza Twardości (Osiadanie / Pękanie)
        if (e === 70) {
            valEps.textContent = 'EPS 70 (Błąd)';
            valEps.className = 'rk-err-val-display warning';
            epsSlider.className = 'rk-range warning-track';
            svgClasses.push('state-crack'); // Pokaż pęknięcie
        } else {
            valEps.textContent = 'EPS 100 (Norma)';
            valEps.className = 'rk-err-val-display safe';
            epsSlider.className = 'rk-range safe-track';
        }

        // Analiza Grubości (Straty ciepła i wilgoć)
        valThick.textContent = t + ' cm';
        
        // Animacje wysokości prostokątów SVG
        if (t === 5) {
            rectEps.setAttribute('height', '30');
            rectGround.setAttribute('y', '100');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss');
            svgClasses.push('state-moisture');
        } else if (t === 10) {
            rectEps.setAttribute('height', '50');
            rectGround.setAttribute('y', '120');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss'); // Częściowe straty
        } else if (t === 15) {
            rectEps.setAttribute('height', '70');
            rectGround.setAttribute('y', '140');
            valThick.className = 'rk-err-val-display safe';
            thickSlider.className = 'rk-range safe-track';
            svgClasses.push('state-heat-good'); // Ciepło idzie w górę
        }

        // Aktualizacja widoku SVG
        svgContainer.className = svgClasses.join(' ');

        // Generator Tekstu Diagnozy
        if (t === 15 && e === 100) {
            diagPanel.className = 'rk-err-diagnosis safe-mode';
            diagTitle.textContent = 'Instalacja w pełni bezpieczna';
            diagText.textContent = 'Znakomity wybór inżynieryjny. Jastrych ma stabilne podparcie, a całe wyprodukowane ciepło promieniuje w górę do pomieszczeń mieszkalnych.';
        } else if (e === 70) {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Ryzyko destrukcji posadzki!';
            diagText.textContent = `Zbyt miękki styropian ugnie się pod wylewką, powodując natychmiastowe pęknięcia. Dodatkowo ucieczka ciepła w grunt przy ${t} cm izolacji znacząco podniesie rachunki.`;
        } else {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Straty termiczne i zimne plamy';
            diagText.textContent = `Beton jest bezpieczny (EPS 100), ale grubość izolacji (${t} cm) nie spełnia norm WT2021 (U ≤ 0,20). Ryzykujesz permanentnym niedogrzaniem i ucieczką energii do gruntu.`;
        }
    }

    // Nasłuchiwacze Zdarzeń
    thickSlider.addEventListener('input', updateSimulator);
    epsSlider.addEventListener('input', updateSimulator);

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



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-card: #1e293b;
    --rk-mat-brand: #3b82f6;
    --rk-mat-brand-light: #eff6ff;
    --rk-mat-graphite: #334155;
    --rk-mat-white: #f8fafc;
    --rk-mat-alert: #ef4444;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #475569;
}

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

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

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

.rk-mat-header h2 {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-mat-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Symulator Wysokości */
.rk-mat-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-mat-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-mat-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

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

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-mat-brand);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
.rk-slider:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-mat-verdict {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    background: #ffffff;
    border: 2px dashed var(--rk-mat-brand);
}

.rk-verdict-title { font-size: 13px; text-transform: uppercase; font-weight: 800; color: var(--rk-mat-text); margin-bottom: 5px; }
.rk-verdict-result { font-size: 20px; font-weight: 900; color: var(--rk-mat-dark); }

/* SVG Wizualizacja (Poprawiona) */
.rk-mat-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
}

.rk-svg-compare {
    width: 100%;
    max-width: 400px; /* Zwiększona szerokość ułatwia czytanie */
    height: auto;
}

.svg-group { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.state-graphite .svg-group-white { opacity: 0.25; filter: grayscale(1); }
.state-white .svg-group-graphite { opacity: 0.25; filter: grayscale(1); }

.anim-eps-graphite { fill: #475569; }
.anim-eps-white { fill: #f8fafc; stroke: #cbd5e1; stroke-width: 2; }

/* Kafelki z Danymi */
.rk-mat-data-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-mat-data-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.rk-mat-card {
    border: 1px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 25px;
    background: var(--rk-mat-white);
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-mat-card:hover {
    border-color: var(--rk-mat-brand);
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.1);
    transform: translateY(-3px);
}

.rk-mat-card.recommended {
    background: var(--rk-mat-brand-light);
    border-color: var(--rk-mat-brand);
}

.rk-mat-card.alert {
    background: #fef2f2;
    border-color: #fca5a5;
}

.rk-card-header {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #e2e8f0;
}
.rk-mat-card.alert .rk-card-header { color: var(--rk-mat-alert); border-color: #fecaca; }

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    font-size: 14px;
}

.rk-stat-label { color: var(--rk-mat-text); font-weight: 600; }
.rk-stat-val { font-weight: 800; color: var(--rk-mat-dark); }
.rk-stat-val.highlight { color: var(--rk-mat-brand); font-size: 16px; }

/* Tekst podsumowujący */
.rk-mat-summary {
    padding: 0 50px 40px 50px;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-mat-text);
}

.rk-mat-summary a {
    color: var(--rk-mat-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59,130,246,0.4);
    transition: all 0.3s;
}
.rk-mat-summary a:hover { border-bottom-style: solid; color: #1e40af; }

@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-controls, .rk-mat-data-section, .rk-mat-summary { padding: 30px 20px; }
    .rk-mat-interactive { grid-template-columns: 1fr; }
    .rk-mat-controls { border-right: none; border-bottom: 1px solid var(--rk-mat-border); }
    .rk-mat-visual { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Który styropian wybrać: EPS 100 biały czy grafitowy?",
    "description": "Szczegółowe zestawienie parametrów technicznych izolacji (lambda, opór cieplny, odkształcenia). Porównanie styropianu grafitowego i białego EPS 100 i XPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Katalog Parametrów Izolacyjnych (EPS/XPS)",
    "description": "Zestawienie parametrów technicznych (przewodzenie ciepła λ, naprężenie ściskające, opór R) dla materiałów izolacyjnych stosowanych pod wylewki grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "styropian grafitowy czy biały",
      "lambda styropianu",
      "EPS 100 podłogówka",
      "wylewka anhydrytowa styropian",
      "opór cieplny izolacji"
    ],
    "measurementTechnique": "Korelacja współczynnika przewodzenia ciepła λ z oporem cieplnym R dla grubości normatywnych 100-150mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "EPS 100 Grafit: λ = 0,031, R dla 10cm = 3,22",
        "EPS 100 Biały: λ = 0,036, R dla 10cm = 2,77",
        "XPS: λ = 0,029, R dla 10cm = 3,44, CS(10) ≥ 300 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-materialy",
    "name": "Symulator Wyboru Izolacji Podłogowej",
    "description": "Narzędzie wspomagające decyzję inwestorską. Przelicza dostępną wysokość posadzki (z chudziaka do poziomu 0) na optymalny wybór materiału (Grafit vs Biały).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-mat-app">
    
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            Analiza Materiałowa
        </div>
        <h2>Który styropian wybrać: EPS 100 biały czy grafitowy?</h2>
        <p>
            Pod ogrzewanie podłogowe należy stosować wyłącznie styropian oznaczony parametrem minimum <strong>CS(10) ≥ 100 kPa (EPS 100)</strong>. Wybór koloru (odmiany) determinuje grubość izolacji: grafit przy 12 cm osiąga taki sam opór cieplny (R ≈ 3,87 m²·K/W) jak biały przy 15 cm.
        </p>
    </div>

    <div class="rk-mat-interactive">
        <div class="rk-mat-controls">
            <div class="rk-mat-label">
                Dostępna wysokość posadzki (od chudziaka):
                <span class="rk-mat-val" id="height-val">20 cm</span>
            </div>
            <input type="range" id="height-slider" class="rk-slider" min="15" max="30" step="1" value="20">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700;">
                <span>Krytycznie mało (15cm)</span>
                <span>Dużo (30cm)</span>
            </div>

            <div class="rk-mat-verdict">
                <div class="rk-verdict-title">Rekomendacja dla Twojej budowy:</div>
                <div class="rk-verdict-result" id="verdict-text">EPS 100 Grafitowy</div>
            </div>
        </div>

        <div class="rk-mat-visual" id="svg-stage">
            <svg class="rk-svg-compare" viewBox="0 0 320 220">
                <line x1="10" y1="200" x2="310" y2="200" stroke="#94a3b8" stroke-width="4" stroke-linecap="round" />
                <text x="160" y="215" font-family="sans-serif" font-size="11" font-weight="bold" fill="#64748b" text-anchor="middle">CHUDY BETON (Baza startowa)</text>

                <g class="svg-group svg-group-graphite">
                    <text x="80" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">GRAFIT 12cm</text>
                    
                    <rect fill="#cbd5e1" x="30" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-graphite" x="30" y="95" width="100" height="105" rx="4" />
                    
                    <text x="80" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#ffffff" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <g class="svg-group svg-group-white">
                    <text x="240" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">BIAŁY 15cm</text>
                    
                    <rect fill="#cbd5e1" x="190" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-white" x="190" y="95" width="100" height="105" rx="4" />
                    
                    <text x="240" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#0f172a" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <line x1="30" y1="45" x2="290" y2="45" stroke="#3b82f6" stroke-width="2" stroke-dasharray="6" />
                <text x="160" y="40" font-family="sans-serif" font-size="10" fill="#3b82f6" font-weight="bold" text-anchor="middle">POZIOM ZERO (Płytki)</text>
            </svg>
        </div>
    </div>

    <div class="rk-mat-data-section">
        <h3 class="rk-mat-data-title">Katalog Parametrów Technicznych</h3>
        <div class="rk-mat-grid">
            
            <div class="rk-mat-card alert">
                <div class="rk-card-header">EPS 70 (Podłoga/Dach)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,038</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val" style="color: #ef4444;">≥ 70 kPa (Zbyt miękki!)</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,63 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 3,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card" id="card-white">
                <div class="rk-card-header">EPS 100 (Standard biały)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,036</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,77 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 2,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card recommended" id="card-graphite">
                <div class="rk-card-header">EPS 100 (Premium grafit)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,031</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,22 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 1,5 %</span>
                </div>
            </div>

            <div class="rk-mat-card">
                <div class="rk-card-header">XPS (Polistyren ekstr.)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,029</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 300 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,44 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 0,5 %</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mat-summary">
        Wybór między grafitem a białym EPS sprowadza się najczęściej do analizy dostępnej wysokości progów drzwiowych i warstw posadzkowych. Jeśli wysokość od chudego betonu do planowanego poziomu zero (czystej podłogi) jest ograniczona i wynosi np. 22 cm, zastosowanie <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki anhydrytowej (50 mm)</a> oraz <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur na systemowym styropianie</a> grafitowym 120 mm pozwala na zachowanie optymalnego bufora bezpieczeństwa termicznego i konstrukcyjnego. Przy braku ograniczeń wysokościowych na budowie, ekonomicznie uzasadnione bywa ułożenie 150-200 mm nieco tańszego EPS 100 w wersji białej.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Brak H2/H3 w kodzie błędu)
    const hostStr = window.location.hostname;
    const validHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!validHosts.includes(hostStr)) {
        const wrap = document.getElementById('rk-mat-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny symulator materiałowy (Katalog EPS) oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const slider = document.getElementById('height-slider');
    const valDisplay = document.getElementById('height-val');
    const verdictText = document.getElementById('verdict-text');
    const svgStage = document.getElementById('svg-stage');
    
    const cardWhite = document.getElementById('card-white');
    const cardGraphite = document.getElementById('card-graphite');

    function updateLogic() {
        const height = parseInt(slider.value);
        valDisplay.textContent = height + ' cm';

        // Logika decyzyjna
        if (height < 24) {
            verdictText.textContent = 'EPS 100 Grafitowy';
            verdictText.style.color = '#1e293b'; 
            svgStage.className = 'rk-mat-visual state-graphite';
            
            cardGraphite.classList.add('recommended');
            cardWhite.classList.remove('recommended');
        } else {
            verdictText.textContent = 'EPS 100 Biały (Oszczędność)';
            verdictText.style.color = '#3b82f6'; 
            svgStage.className = 'rk-mat-visual state-white';
            
            cardWhite.classList.add('recommended');
            cardGraphite.classList.remove('recommended');
        }
    }

    slider.addEventListener('input', updateLogic);
    updateLogic();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-card: #1e293b;
    --rk-calc-brand: #0284c7;
    --rk-calc-brand-light: #e0f2fe;
    --rk-calc-accent: #0ea5e9; 
    --rk-calc-success: #10b981;
    --rk-calc-bg: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
}

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

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

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(186, 230, 253, 0.2);
}

.rk-calc-header h2 {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-calc-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Panel Interaktywny - Nowy Układ (Góra/Dół) */
.rk-calc-interactive {
    padding: 40px 50px;
    background: var(--rk-calc-bg);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Suwak na pełną szerokość */
.rk-calc-controls {
    background: #ffffff;
    padding: 35px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-calc-label {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin-bottom: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-calc-val-box {
    background: var(--rk-calc-dark);
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 10px;
    font-size: 22px;
    font-weight: 900;
    transition: background 0.3s;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}

.rk-calc-val-box.pass { background: var(--rk-calc-success); }
.rk-calc-val-box.fail { background: #ef4444; }

.rk-slider-app {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: #cbd5e1;
    outline: none;
    margin-bottom: 15px;
}

.rk-slider-app::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-calc-brand);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    transition: transform 0.1s;
}
.rk-slider-app:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-calc-hints {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #64748b;
    font-weight: 800;
}

/* Dwie Kolumny Wyników */
.rk-results-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-result-card {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    position: relative;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-result-card.white-card { border-top: 5px solid #e2e8f0; }
.rk-result-card.graphite-card { border-top: 5px solid #64748b; }

.rk-result-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.white-card .rk-result-title { color: #cbd5e1; }
.graphite-card .rk-result-title { color: #94a3b8; }

.rk-result-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 20px;
    line-height: 1;
}

.rk-svg-ruler {
    width: 120px;
    height: 180px;
    overflow: visible;
}

.anim-bar-white { fill: #f8fafc; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-bar-graphite { fill: #475569; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-text-label { font-family: sans-serif; font-weight: 700; fill: #94a3b8; font-size: 10px; }

/* Krok po Kroku */
.rk-algo-section { padding: 40px 50px; background: #ffffff; }
.rk-algo-title { font-size: 22px; font-weight: 900; color: var(--rk-calc-dark); margin: 0 0 25px 0; display: flex; align-items: center; gap: 10px; }
.rk-algo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rk-algo-step { background: var(--rk-calc-bg); border: 1px solid var(--rk-calc-border); border-radius: 16px; padding: 25px; position: relative; }
.rk-algo-step-num { position: absolute; top: -15px; left: 20px; background: var(--rk-calc-brand); color: #ffffff; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 16px; box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3); }
.rk-algo-step h4 { font-size: 16px; font-weight: 800; color: var(--rk-calc-dark); margin: 10px 0 15px 0; }
.rk-algo-equation { background: #ffffff; padding: 12px 15px; border-radius: 8px; border: 1px dashed #cbd5e1; font-family: monospace; font-size: 14px; color: #0369a1; font-weight: 700; margin-bottom: 10px; overflow-x: auto; }
.rk-algo-desc { font-size: 14px; line-height: 1.6; color: var(--rk-calc-text); margin: 0; }

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-interactive, .rk-algo-section { padding: 30px 20px; }
    .rk-calc-controls { padding: 25px 20px; }
    .rk-calc-label { flex-direction: column; align-items: flex-start; gap: 15px; font-size: 16px; }
    .rk-results-split { grid-template-columns: 1fr; gap: 20px; }
    .rk-algo-grid { grid-template-columns: 1fr; }
    .rk-calc-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe",
    "description": "Algorytm obliczeniowy PN-EN ISO 13370 wyznaczający opór cieplny (R) i precyzyjną grubość styropianu EPS dla podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-kalkulator",
    "name": "Algorytm Obliczeniowy Opór Cieplny EPS PN-EN ISO 13370",
    "description": "Parametry stałe i zmienne do obliczania grubości materiałów izolacyjnych na bazie zakładanego współczynnika przenikania ciepła U.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator grubości izolacji podłogowej",
      "obliczenia oporu cieplnego PN-EN ISO 13370",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "jak obliczyć styropian pod podłogówkę",
      "wzór na grubość styropianu"
    ],
    "measurementTechnique": "Algorytm 4-krokowy wykorzystujący transformację współczynnika U na całkowity opór cieplny przegrody R_tot, a następnie na fizyczną grubość w mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Sumowanie oporów stałych (R_si = 0,17; R_c = 0,10)",
        "Krok 2: Odwrócenie współczynnika U (R_tot = 1 / U)",
        "Krok 3: Izolacja właściwa (R_izol = R_tot - R_stale - R_g)",
        "Krok 4: Konwersja na mm w oparciu o parametr lambda (0,036 lub 0,031)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-kalkulator",
    "name": "Kalkulator Grubości Izolacji Podłogowej LCC",
    "description": "Interaktywne narzędzie inżynierskie pozwalające płynnie suwakiem symulować wymaganą grubość styropianu w zależności od zadanego standardu energetycznego U.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Inżynieria Obliczeniowa
        </div>
        <h2>Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe</h2>
        <p>
            W celu precyzyjnego wyznaczenia wymaganej grubości styropianu dla uzyskania normowego współczynnika U ≤ 0,20 W/(m²·K), należy przeprowadzić szczegółowe obliczenia oporów cieplnych poszczególnych warstw przegrody. Zmień docelowy parametr U na suwaku, aby zobaczyć precyzyjny wymiar izolacji.
        </p>
    </div>

    <div class="rk-calc-interactive">
        
        <div class="rk-calc-controls">
            <div class="rk-calc-label">
                Docelowy współczynnik przenikania (U):
                <span class="rk-calc-val-box pass" id="calc-u-val">0.20 W/(m²K)</span>
            </div>
            <input type="range" id="calc-u-slider" class="rk-slider-app" min="0.10" max="0.30" step="0.01" value="0.20">
            <div class="rk-calc-hints">
                <span>Dom Pasywny (0.10)</span>
                <span>Norma WT2021 (0.20)</span>
                <span>Budownictwo starsze (0.30)</span>
            </div>
        </div>

        <div class="rk-results-split">
            
            <div class="rk-result-card white-card">
                <div class="rk-result-title">Wymagany EPS Biały (λ 0,036)</div>
                <div class="rk-result-value" id="text-white">134 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#cbd5e1" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-white" id="bar-white" x="25" y="60" width="50" height="100" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

            <div class="rk-result-card graphite-card">
                <div class="rk-result-title">Wymagany EPS Grafit (λ 0,031)</div>
                <div class="rk-result-value" id="text-graphite">115 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#64748b" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-graphite" id="bar-graphite" x="25" y="75" width="50" height="85" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

        </div>

    </div>

    <div class="rk-algo-section">
        <h3 class="rk-algo-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
            Algorytm wg PN-EN ISO 13370 (Dla U = 0,20)
        </h3>
        
        <div class="rk-algo-grid">
            
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">1</div>
                <h4>Określenie oporów przejmowania</h4>
                <div class="rk-algo-desc">
                    Przyjmij standardowe wartości oporów przejmowania ciepła: R_si = 0,17 m²·K/W (kierunek strumienia ciepła w dół) oraz uśredniony opór chudego betonu i okładziny R_c ≈ 0,10 m²·K/W. Zsumuj opory stałe.
                </div>
                <div class="rk-algo-equation">
                    R_stałe = 0,17 + 0,00 + 0,10 = 0,27 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">2</div>
                <h4>Całkowity opór przegrody (R_tot)</h4>
                <div class="rk-algo-desc">
                    Przekształć wzór na współczynnik przenikania ciepła U = 1 / R_tot. Podstawiając graniczną wartość wymaganą przez warunki techniczne U = 0,20 W/(m²·K):
                </div>
                <div class="rk-algo-equation">
                    R_tot = 1 / 0,20 = 5,00 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">3</div>
                <h4>Minimalny opór izolacji (R_izol)</h4>
                <div class="rk-algo-desc">
                    Odejmij od całkowitego oporu R_tot wartość oporów stałych oraz uśredniony opór cieplny gruntu (dla uproszczenia inżynierskich obliczeń strukturalnych przyjmuje się opór gruntu R_g ≈ 1,0 m²·K/W):
                </div>
                <div class="rk-algo-equation">
                    R_izol = 5,00 - 0,27 - 1,00 = 3,73 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">4</div>
                <h4>Obliczenie grubości (d) dla parametru λ</h4>
                <div class="rk-algo-desc">
                    Pomnóż wymagany opór izolacji przez współczynnik przewodzenia ciepła λ (lambda) wybranego materiału. Wynik otrzymasz w metrach, które przeliczamy na milimetry.
                </div>
                <div class="rk-algo-equation" style="color: var(--rk-calc-dark);">
                    Biały (0,036): d = 3,73 × 0,036 = 134 mm<br>
                    Grafit (0,031): d = 3,73 × 0,031 = 115 mm
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authDomains.includes(currentDomain)) {
        const errorWrap = document.getElementById('rk-calc-app');
        if (errorWrap) {
            errorWrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Algorytmu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny kalkulator grubości izolacji oraz system mikrodanych JSON-LD należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Obsługa Słupków SVG
    const uSlider = document.getElementById('calc-u-slider');
    const uValBox = document.getElementById('calc-u-val');
    
    const barWhite = document.getElementById('bar-white');
    const textWhite = document.getElementById('text-white');
    
    const barGraphite = document.getElementById('bar-graphite');
    const textGraphite = document.getElementById('text-graphite');

    const R_STALE = 0.27; 
    const R_GRUNT = 1.00; 
    const LAMBDA_W = 0.036; 
    const LAMBDA_G = 0.031; 

    // Nowe parametry dla izolowanych słupków SVG (viewBox 0 0 100 180)
    const SVG_BASE_Y = 160; 
    const PIXEL_PER_MM = 0.45; // Skalowanie dopasowane do wysokości 180px

    function runCalculation() {
        const U = parseFloat(uSlider.value);
        
        // Klasy wizualne dla normy WT2021
        if (U > 0.20) {
            uValBox.className = 'rk-calc-val-box fail';
        } else {
            uValBox.className = 'rk-calc-val-box pass';
        }
        
        uValBox.textContent = U.toFixed(2) + ' W/(m²K)';

        // Algorytm
        let R_tot = 1 / U;
        let R_izol = R_tot - R_STALE - R_GRUNT;
        if (R_izol < 0) R_izol = 0;

        let d_white_mm = Math.round((R_izol * LAMBDA_W) * 1000);
        let d_graphite_mm = Math.round((R_izol * LAMBDA_G) * 1000);

        // Ustawienie wielkich wartości w HTML
        textWhite.textContent = d_white_mm + ' mm';
        textGraphite.textContent = d_graphite_mm + ' mm';

        // Animacja SVG - ustalenie wysokości
        let h_white_px = d_white_mm * PIXEL_PER_MM;
        let h_graphite_px = d_graphite_mm * PIXEL_PER_MM;
        
        // Ochrona przed przenikaniem przez górną ramkę (max wys. np. 150)
        if (h_white_px > 150) h_white_px = 150;
        if (h_graphite_px > 150) h_graphite_px = 150;
        if (h_white_px < 5) h_white_px = 5;
        if (h_graphite_px < 5) h_graphite_px = 5;

        // Aplikacja atrybutów
        barWhite.setAttribute('height', h_white_px);
        barWhite.setAttribute('y', SVG_BASE_Y - h_white_px);

        barGraphite.setAttribute('height', h_graphite_px);
        barGraphite.setAttribute('y', SVG_BASE_Y - h_graphite_px);
    }

    uSlider.addEventListener('input', runCalculation);
    runCalculation();
});
</script>



<ol start="1" class="wp-block-list"></ol>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Ostrzegawcza czerwień */
    --rk-err-brand-light: #fef2f2;
    --rk-err-safe: #10b981;
    --rk-err-accent: #f59e0b; /* Pomarańcz - uwaga */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

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

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

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

.rk-err-header h2 {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-err-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Audytor */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 380px 1fr; /* Poszerzona kolumna pod dłuższe nazwy błędów */
    background: var(--rk-err-bg);
}

/* Lewa strona - Menu błędów */
.rk-err-menu {
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
    background: #ffffff;
}

.rk-err-menu-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 2px solid transparent;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 12px;
    line-height: 1.4;
}

.rk-err-btn:hover {
    background: var(--rk-err-brand-light);
    color: var(--rk-err-brand);
}

.rk-err-btn.active {
    background: var(--rk-err-brand-light);
    border-color: var(--rk-err-brand);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

.rk-err-btn-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-btn-icon {
    background: var(--rk-err-brand);
    color: #ffffff;
}

/* Prawa strona - Panel i SVG */
.rk-err-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-err-visual {
    width: 100%;
    height: 260px;
    background: var(--rk-err-dark);
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rk-svg-stage {
    width: 100%;
    max-width: 380px;
    height: 100%;
}

/* Zmienne SVG na podstawie stanu */
.svg-wall { fill: #475569; }
.svg-ground { fill: #64748b; transition: all 0.5s; }
.svg-bump { fill: #64748b; transform: scaleY(0); transform-origin: bottom; transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.svg-eps-1 { fill: #fcd34d; transition: all 0.4s; }
.svg-eps-2 { fill: #fbbf24; transition: all 0.4s; }
.svg-concrete { fill: #94a3b8; transition: all 0.4s; }
.svg-tape { fill: #3b82f6; opacity: 1; transition: opacity 0.3s; }
.svg-crack { stroke: #0f172a; stroke-width: 3; fill: none; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.6s ease-out; }
.svg-heat-arrow { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-liquid { fill: #60a5fa; opacity: 0; transform: translateY(-20px); transition: all 0.4s; }

/* Nowe elementy SVG dla długiego ogona */
.svg-pipe { transition: all 0.4s; }
.svg-kan-pipe { fill: #cbd5e1; stroke: #3b82f6; stroke-width: 2; opacity: 0; transition: opacity 0.4s; }
.svg-foam { fill: #fde047; opacity: 0; transition: opacity 0.4s; }
.svg-clip { stroke: #0f172a; stroke-width: 2; fill: none; opacity: 0; }

/* Animacje stanów */
/* 1. Jedna warstwa */
.state-layer .svg-eps-2 { opacity: 0; }
.state-layer .svg-heat-arrow.layer-leak { animation: heatEscapeUp 1.5s infinite linear; }
@keyframes heatEscapeUp { 0% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-40px); opacity: 0; } }

/* 2. Nierówności */
.state-uneven .svg-bump { transform: scaleY(1); }
.state-uneven .svg-eps-1 { transform: translateY(-10px) rotate(-2deg); transform-origin: center; }
.state-uneven .svg-eps-2 { transform: translateY(-10px) rotate(2deg); transform-origin: center; }
.state-uneven .svg-concrete { transform: translateY(-5px); }
.state-uneven .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 3. Dylatacja brzegowa */
.state-edge .svg-tape { opacity: 0; }
.state-edge .svg-heat-arrow.edge-leak { animation: heatEscapeSide 1.5s infinite linear; }
@keyframes heatEscapeSide { 0% { transform: translateX(0); opacity: 0.8; } 100% { transform: translateX(-30px); opacity: 0; } }

/* 4. Folia */
.state-foil .svg-eps-2 { transform: translateX(5px); }
.state-foil .svg-liquid { opacity: 0.8; animation: drip 1.5s infinite ease-in; }
@keyframes drip { 0% { transform: translateY(-10px); opacity: 0.8; } 100% { transform: translateY(30px); opacity: 0; } }

/* 5. Styropian Fasadowy (Miękki) */
.state-soft .svg-eps-1 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-eps-2 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-concrete { transform: translateY(28px); }
.state-soft .svg-pipe { transform: translateY(28px); }
.state-soft .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 6. Krzyżowanie rur Wod-Kan */
.state-cross .svg-kan-pipe { opacity: 1; }
.state-cross .svg-eps-1 { opacity: 0.5; }
.state-cross .svg-heat-arrow.cross-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 7. Łatanie pianką */
.state-gap .svg-eps-2 { transform: translateX(-15px); }
.state-gap .svg-foam { opacity: 1; animation: foamExpand 2s infinite alternate; }
@keyframes foamExpand { from { transform: scaleX(0.9); } to { transform: scaleX(1.1); } }
.state-gap .svg-heat-arrow.gap-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 8. Wyrywanie spinek */
.state-clip .svg-clip { opacity: 1; }
.state-clip .svg-pipe-loose { transform: translateY(-20px); }
.state-clip .svg-concrete { opacity: 0.8; }


/* Panel tekstowy */
.rk-err-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
}

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

.rk-err-content a {
    color: var(--rk-err-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-err-solution {
    background: #dcfce7;
    border-left: 4px solid var(--rk-err-safe);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 20px;
}

.rk-err-solution strong {
    color: #065f46;
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-err-solution span {
    color: #166534;
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-display { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 20px; }
    .rk-err-visual { height: 200px; }
    .rk-err-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wykonawstwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawcze podczas układania styropianu",
    "description": "8 krytycznych błędów izolacyjnych: od braku taśmy brzegowej, przez klawiszowanie podłoża, stosowanie pianki, po wyrywanie rur i styropian fasadowy EPS 70.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wykonawstwo",
    "name": "Katalog 8 Krytycznych Błędów Izolacji Płaszczyznowej",
    "description": "Rozszerzona baza danych klasyfikująca błędy mechaniczne i termiczne przy układaniu polistyrenu pod jastrych grzewczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu ogrzewania podłogowego",
      "styropian fasadowy pod ogrzewanie podłogowe",
      "wyrywanie spinek do podłogówki ze styropianu",
      "rury wodne w styropianie podłogowym krzyżowanie",
      "wypełnianie ubytków w styropianie podłogowym pianką"
    ],
    "measurementTechnique": "Wizualizacja wektorowa uchybień fizycznych uwzględniająca odkształcenia plastyczne EPS 70, kolizje instalacji wod-kan oraz wyrwania mechaniczne klipsów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jedna warstwa EPS: Powstają szczeliny i mostki termiczne.",
        "Nierówne podłoże (pow. 8mm): Powoduje klawiszowanie wylewki.",
        "Brak taśmy brzegowej: Generuje mostek obwodowy w ściany.",
        "Brak szczelności folii: Ucieczka płynnego jastrychu.",
        "Styropian fasadowy EPS 70: Zapadanie się izolacji pod ciężarem.",
        "Krzyżowanie rur wod-kan: Punktowe wychładzanie i utrata twardości podłoża.",
        "Wypełnianie pianką PUR: Trwała degradacja oporu cieplnego.",
        "Zbyt krótkie spinki: Wypychanie rur z izolacji podczas zalewania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wykonawstwo",
    "name": "Audytor Błędów Montażu Styropianu (Wersja PRO)",
    "description": "Rozbudowana aplikacja symulująca zachowanie warstw podłogowych i instalacji w przypadku wystąpienia 8 głównych patologii budowlanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Weryfikacja Wykonawstwa
        </div>
        <h2>Najczęstsze błędy montażowe</h2>
        <p>
            Nawet najlepszej jakości materiał izolacyjny utraci swoje właściwości, jeśli zostanie zamontowany niezgodnie ze sztuką budowlaną. Zobacz 8 krytycznych błędów identyfikowanych podczas audytów inżynierskich.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-menu">
            <div class="rk-err-menu-title">Wybierz błąd do symulacji:</div>
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-target="err-layer">
                    <div class="rk-err-btn-icon">1</div>
                    Jedna warstwa izolacji
                </button>
                <button class="rk-err-btn" data-target="err-uneven">
                    <div class="rk-err-btn-icon">2</div>
                    Nierówne podłoże
                </button>
                <button class="rk-err-btn" data-target="err-edge">
                    <div class="rk-err-btn-icon">3</div>
                    Brak dylatacji brzegowej
                </button>
                <button class="rk-err-btn" data-target="err-foil">
                    <div class="rk-err-btn-icon">4</div>
                    Nieszczelność folii
                </button>
                <button class="rk-err-btn" data-target="err-soft">
                    <div class="rk-err-btn-icon">5</div>
                    Miękki styropian (EPS 70)
                </button>
                <button class="rk-err-btn" data-target="err-cross">
                    <div class="rk-err-btn-icon">6</div>
                    Kolizje z rurami wod-kan
                </button>
                <button class="rk-err-btn" data-target="err-gap">
                    <div class="rk-err-btn-icon">7</div>
                    Łatanie szpar pianką PUR
                </button>
                <button class="rk-err-btn" data-target="err-clip">
                    <div class="rk-err-btn-icon">8</div>
                    Zbyt krótkie spinki (Tacker)
                </button>
            </div>
        </div>

        <div class="rk-err-display">
            
            <div class="rk-err-visual state-layer" id="svg-stage">
                <svg class="rk-svg-stage" viewBox="0 0 300 200">
                    <rect class="svg-wall" x="0" y="0" width="30" height="200" />
                    
                    <rect class="svg-ground" x="30" y="150" width="270" height="50" />
                    <path class="svg-bump" d="M 120 150 Q 150 110 180 150 Z" />

                    <rect class="svg-tape" x="30" y="40" width="5" height="110" />

                    <rect class="svg-eps-1" x="35" y="115" width="120" height="35" rx="2" />
                    <rect class="svg-eps-1" x="155" y="115" width="145" height="35" rx="2" />
                    
                    <rect class="svg-eps-2" x="35" y="80" width="100" height="35" rx="2" />
                    <rect class="svg-eps-2" x="135" y="80" width="165" height="35" rx="2" />

                    <circle class="svg-kan-pipe" cx="155" cy="132" r="14" />

                    <path class="svg-foam" d="M 130 80 L 140 80 L 138 115 L 128 115 Z" />

                    <rect class="svg-concrete" x="35" y="40" width="265" height="40" rx="2" />
                    <circle class="svg-pipe" cx="70" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="120" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe svg-pipe-loose" cx="170" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="220" cy="60" r="6" fill="#ef4444" />

                    <path class="svg-clip" d="M 165 70 L 160 50 M 175 70 L 180 50" />

                    <path class="svg-crack" d="M 140 40 L 155 55 L 145 65 L 150 80" />
                    <path class="svg-heat-arrow layer-leak" d="M 145 150 L 145 100 M 140 110 L 145 100 L 150 110" />
                    <path class="svg-heat-arrow edge-leak" d="M 50 60 L 10 60 M 20 55 L 10 60 L 20 65" />
                    <path class="svg-heat-arrow cross-leak" d="M 155 132 L 155 80 M 145 95 L 155 80 L 165 95" />
                    <path class="svg-heat-arrow gap-leak" d="M 135 115 L 135 70 M 125 85 L 135 70 L 145 85" />
                    <path class="svg-liquid" d="M 140 80 Q 145 100 140 115" stroke="#60a5fa" stroke-width="4" fill="none"/>
                </svg>
            </div>

            <div class="rk-err-content" id="err-content">
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Ochrona domeny (Bez tagów H w stringu błędu)
    const activeDomain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(activeDomain)) {
        const wrap = document.getElementById('rk-err-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny Audytor Błędów oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Skrypt zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Rozszerzona Baza Treści (8 Błędów SEO)
    const errData = {
        'err-layer': {
            title: 'Układanie izolacji w jednej warstwie',
            text: 'Zastosowanie pojedynczej płyty o grubości np. 15 cm generuje pionowe, bezpośrednie szczeliny na łączeniach płyt. Tworzy to potężne, liniowe mostki termiczne, przez które ciepło ucieka w kierunku fundamentu.',
            solution: 'Płyty należy układać bezwzględnie w układzie mijankowym (np. 10 cm + 5 cm) z przesunięciem krawędzi o minimum 20 cm.'
        },
        'err-uneven': {
            title: 'Brak wyrównania podłoża',
            text: 'Układanie płyt na chropowatej powierzchni z zaprawą tworzy pustki powietrzne. Pod dociskiem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">ciężkiej wylewki</a> styropian łamie się, powodując klawiszowanie betonu.',
            solution: 'Nierówności >8 mm bezwzględnie wyrównaj podsypką piaskową lub szybką masą samopoziomującą przed układaniem płyt.'
        },
        'err-edge': {
            title: 'Ignorowanie izolacji brzegowej',
            text: 'Brak pianki dylatacyjnej odcina wylewce grzewczej możliwość naturalnej rozszerzalności termicznej. Gorący beton styka się z zimną ścianą, przekazując energię prosto w mury.',
            solution: 'Wokół wszystkich ścian i słupów zastosuj taśmę brzegową z folią o grubości minimum 8 mm.'
        },
        'err-foil': {
            title: 'Nieszczelność folii (Wylewka anhydrytowa)',
            text: 'Samo ułożenie folii "na zakładkę" to błąd przy jastrychach płynnych. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka anhydrytowa</a> wleje się w szczeliny izolacji, unosząc styropian do góry i tworząc mostki akustyczne.',
            solution: 'Zakłady folii zrastrowanej precyzyjnie sklej taśmą wodoodporną, tworząc szczelną wannę dla płynnego jastrychu.'
        },
        'err-soft': {
            title: 'Zastosowanie styropianu fasadowego',
            text: 'Często spotykany błąd z chęci oszczędności. Miękki styropian (EPS 70 lub fasadowy) drastycznie odkształci się (osiądzie) pod ciężarem wylewki i mebli, zrywając rury oraz pękając beton.',
            solution: 'Zawsze używaj dedykowanego styropianu podłogowego o współczynniku odporności na ściskanie minimum CS(10) 100 kPa.'
        },
        'err-cross': {
            title: 'Krzyżowanie rur bez izolacji',
            text: 'Prowadzenie rur CWU/CO bezpośrednio w warstwie styropianu podłogowego bez wycięcia szerszych kanałów i założenia peszli/otulin skutkuje ubytkami cieplnymi i osłabieniem podparcia rur grzewczych na górze.',
            solution: 'Instalacje wod-kan układaj wyłącznie w pierwszej warstwie izolacji (np. 10 cm), wycinając precyzyjne kanały i stosując grube otuliny.'
        },
        'err-gap': {
            title: 'Łatanie ubytków pianką PUR',
            text: 'Cięcie styropianu "na oko" i wypełnianie powstałych, kilkucentymetrowych szczelin zwykłą pianką montażową niszczy jednorodność oporu cieplnego posadzki. Zwykła piana szybko ulega degradacji i utlenieniu.',
            solution: 'Płyty należy docinać gilotyną termiczną (gorącym drutem), co zapewnia idealne spasowanie bloków "na wcisk" bez zaprawy.'
        },
        'err-clip': {
            title: 'Zbyt krótkie spinki do tackera',
            text: 'Stosowanie spinek o długości 40 mm na folii przytwierdzonej do miększej warstwy wierzchniej (np. 5 cm) skutkuje masowym wyrywaniem rur ze styropianu w trakcie zalewania betonem (rury wypływają na wierzch).',
            solution: 'Dobieraj spinki do grubości warstwy nośnej folii – przy układzie rur rzędu 16x2.0 mm absolutne minimum to spinki 50 mm wbijane prosto.'
        }
    };

    // 3. Logika Interfejsu
    const btns = document.querySelectorAll('.rk-err-btn');
    const svgStage = document.getElementById('svg-stage');
    const contentBox = document.getElementById('err-content');

    function updateView(targetId) {
        // Reset klas SVG
        svgStage.className = `rk-err-visual state-${targetId.replace('err-', '')}`;
        
        // Render Treści
        const data = errData[targetId];
        contentBox.innerHTML = `
            <h3>${data.title}</h3>
            <p>${data.text}</p>
            <div class="rk-err-solution">
                <strong>Standard Inżynierski:</strong>
                <span>${data.solution}</span>
            </div>
        `;
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            updateView(this.getAttribute('data-target'));
        });
    });

    // Startowa inicjalizacja
    updateView('err-layer');
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-brand: #0284c7; /* Błękit inżynieryjny */
    --rk-proj-brand-light: #e0f2fe;
    --rk-proj-accent: #0ea5e9; 
    --rk-proj-success: #10b981;
    --rk-proj-warning: #f59e0b;
    --rk-proj-danger: #ef4444;
    --rk-proj-bg: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #475569;
}

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

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

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(186, 230, 253, 0.2);
}

.rk-proj-header h2 {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-proj-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Symulator Hydrauliczny */
.rk-proj-interactive {
    padding: 40px 50px;
    background: var(--rk-proj-bg);
    border-bottom: 1px solid var(--rk-proj-border);
}

/* Przełącznik (Toggle) */
.rk-proj-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 35px auto;
}

.rk-proj-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-proj-toggle-btn.active[data-state="bad"] {
    background: #ffffff;
    color: var(--rk-proj-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-proj-toggle-btn.active[data-state="good"] {
    background: #ffffff;
    color: var(--rk-proj-success);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Grid Dashboardu */
.rk-proj-dashboard {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: center;
}

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

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    padding: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

.rk-metric-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-proj-text);
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}

/* Stan Zły */
.state-bad .rk-metric-card.alert { border-color: #fca5a5; background: #fef2f2; }
.state-bad .rk-metric-card.alert .rk-metric-val { color: var(--rk-proj-danger); }

/* Stan Dobry */
.state-good .rk-metric-card.ok { border-color: #6ee7b7; background: #ecfdf5; }
.state-good .rk-metric-card.ok .rk-metric-val { color: var(--rk-proj-success); }

/* Wizualizacja SVG (Hydraulika) */
.rk-proj-visual {
    background: var(--rk-proj-dark);
    border-radius: 16px;
    padding: 20px;
    height: 220px;
    position: relative;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
}

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

/* Elementy SVG */
.svg-bg-concrete { fill: #1e293b; }
.svg-pipe-path {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.svg-flow-dash {
    fill: none;
    stroke: rgba(255,255,255,0.6);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Animacje Flow */
.state-bad .svg-pipe-path { stroke: #ef4444; } /* Czerwone - wysokie opory */
.state-bad .svg-pipe-extra { opacity: 1; } /* Gęsty rozstaw */
.state-bad .svg-flow-dash { stroke-dasharray: 10 15; animation: franticFlow 0.5s linear infinite; }
.state-bad .svg-pump-icon { fill: #ef4444; animation: pumpStress 0.2s infinite alternate; }

.state-good .svg-pipe-path { stroke: #3b82f6; } /* Niebieskie - optymalne */
.state-good .svg-pipe-extra { opacity: 0; transform: translateY(-10px); } /* Szerszy rozstaw */
.state-good .svg-flow-dash { stroke-dasharray: 20 30; animation: smoothFlow 1.5s linear infinite; }
.state-good .svg-pump-icon { fill: #10b981; }

@keyframes franticFlow { to { stroke-dashoffset: -50; } }
@keyframes smoothFlow { to { stroke-dashoffset: -100; } }
@keyframes pumpStress { from { transform: scale(0.95) translate(-1px, 1px); } to { transform: scale(1.05) translate(1px, -1px); } }

/* Sekcja z tekstem objaśniającym */
.rk-proj-explanation {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

.rk-proj-explanation p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-proj-text);
    margin: 0 0 20px 0;
}

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

.rk-tech-box {
    background: var(--rk-proj-bg);
    border-left: 4px solid var(--rk-proj-brand);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
    font-family: monospace;
    font-size: 14px;
    color: #0369a1;
    font-weight: 600;
}

/* MOCNE CTA Z ROI */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: linear-gradient(180deg, #ffffff 0%, #f0f9ff 100%);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

.rk-cta-wrapper {
    max-width: 700px;
    margin: 0 auto;
    background: #ffffff;
    border: 2px solid var(--rk-proj-brand);
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.2);
    position: relative;
    overflow: hidden;
}

.rk-cta-wrapper::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 6px;
    background: linear-gradient(90deg, #10b981, #0284c7);
}

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

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

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-brand);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
}

.rk-cta-btn:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
}

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

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

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-interactive, .rk-proj-explanation, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-dashboard { grid-template-columns: 1fr; }
    .rk-proj-toggle-wrap { flex-direction: column; }
    .rk-cta-wrapper { padding: 30px 20px; }
    .rk-cta-btn { width: 100%; padding: 16px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?",
    "description": "Dowiedz się, jak grubość styropianu determinuje wyniki OZC, przepływy hydrauliczne i rozstaw rur. Zobacz interaktywną symulację.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-projekt",
    "name": "Parametry hydrauliczne w zależności od izolacji podłogi",
    "description": "Zestawienie zmiennych hydraulicznych (przepływ masowy, opór, rozstaw rur) wynikających ze zmiany obciążenia cieplnego (OZC) budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wpływ styropianu na projekt podłogówki",
      "obliczenia OZC a izolacja",
      "przepływ masowy czynnika ogrzewanie podłogowe",
      "rozstaw rur 10 czy 15 cm",
      "opory hydrauliczne pompy obiegowej"
    ],
    "measurementTechnique": "Symulacja zmian parametrów instalacji (Q=1.2kW vs Q=1.8kW) przy spadku temperatury ΔT=5K i ich wpływ na pompę obiegową.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Optymalny (15 cm): Zapotrzebowanie 1,2 kW -> Przepływ 206 l/h -> Rozstaw 15 cm",
        "Wariant Słaby (10 cm): Zapotrzebowanie 1,8 kW -> Przepływ 310 l/h -> Rozstaw 10 cm (Zagrożenie hydrauliczne)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-projekt",
    "name": "Symulator Wpływu Izolacji na Hydraulikę",
    "description": "Aplikacja wizualizująca przeciążenie pompy obiegowej i zagęszczenie rur w przypadku zastosowania zbyt cienkiej warstwy styropianu podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Finanse i Hydraulika
        </div>
        <h2>Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?</h2>
        <p>
            Projekt instalacji grzewczej to system naczyń połączonych. Grubość i jakość izolacji termicznej determinują końcowe wyniki obliczeń <strong>Projektowego Obciążenia Cieplnego (OZC)</strong>, co bezpośrednio wpływa na geometrię pętli grzewczych oraz parametry pracy źródła ciepła.
        </p>
    </div>

    <div class="rk-proj-interactive">
        
        <div class="rk-proj-toggle-wrap">
            <button class="rk-proj-toggle-btn active" data-state="bad">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Odchudzona Izolacja (10 cm)
            </button>
            <button class="rk-proj-toggle-btn" data-state="good">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Optymalna Izolacja (15 cm)
            </button>
        </div>

        <div class="rk-proj-dashboard state-bad" id="proj-dashboard">
            
            <div class="rk-proj-metrics">
                <div class="rk-metric-card alert" id="card-ozc">
                    <div class="rk-metric-title">Zapotrzebowanie (Q)</div>
                    <div class="rk-metric-val" id="val-ozc">1,8 kW</div>
                </div>
                <div class="rk-metric-card alert" id="card-flow">
                    <div class="rk-metric-title">Wymagany przepływ</div>
                    <div class="rk-metric-val" id="val-flow">310 l/h</div>
                </div>
                <div class="rk-metric-card alert" id="card-space">
                    <div class="rk-metric-title">Rozstaw rur</div>
                    <div class="rk-metric-val" id="val-space">co 10 cm</div>
                </div>
                <div class="rk-metric-card alert" id="card-loop">
                    <div class="rk-metric-title">Stan pompy obiegowej</div>
                    <div class="rk-metric-val" id="val-loop">Przeciążona</div>
                </div>
            </div>

            <div class="rk-proj-visual">
                <svg class="rk-svg-hydraulics" viewBox="0 0 300 200">
                    <rect class="svg-bg-concrete" x="10" y="20" width="280" height="160" rx="8" />
                    
                    <g transform="translate(0, 10)">
                        <path class="svg-pipe-path" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        <path class="svg-flow-dash" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        
                        <g class="svg-pipe-extra">
                            <path class="svg-pipe-path" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                            <path class="svg-flow-dash" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                        </g>
                    </g>
                    
                    <circle cx="50" cy="180" r="15" fill="#334155" stroke="#cbd5e1" stroke-width="3" />
                    <polygon class="svg-pump-icon" points="43,185 50,170 57,185" />
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-proj-explanation">
        <p>Kiedy redukujemy straty ciepła przez podłogę poprzez zwiększenie grubości styropianu z 10 cm do 15 cm, zapotrzebowanie na moc cieplną pomieszczenia spada. To daje projektantowi potężne możliwości optymalizacyjne:</p>
        
        <ul style="color: var(--rk-proj-text); line-height: 1.8; margin-bottom: 25px;">
            <li><strong>Zwiększenie rozstawu rur:</strong> Zamiast gęstego układania co 10 cm (które generuje wysokie opory hydrauliczne), można zastosować rozstaw co 15 cm.</li>
            <li><strong>Skrócenie długości pętli:</strong> Krótsze pętle oznaczają mniejsze straty ciśnienia w instalacji hydraulicznej.</li>
            <li><strong>Obniżenie parametrów zasilania:</strong> Pompa ciepła może zasilać układ temperaturą o 2-3°C niższą, co przekłada się na drastyczny wzrost jej efektywności sezonowej (SCOP).</li>
        </ul>

        <div class="rk-tech-box">
            PRZYKŁAD HYDRAULICZNY:<br><br>
            [15 cm EPS] Q = 1,2 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong>0,206 m³/h (206 l/h)</strong>.<br><br>
            [10 cm EPS] Q = 1,8 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong style="color:#ef4444;">0,310 m³/h (310 l/h)</strong>.<br>
            Wynik? Przekroczenie dopuszczalnych oporów liniowych i konieczność zakupu większej pompy obiegowej.
        </div>
    </div>

    <div class="rk-proj-cta-section">
        <div class="rk-cta-wrapper">
            <h3 class="rk-cta-title">Zainwestuj w wiedzę. Zaoszczędź na eksploatacji.</h3>
            <p class="rk-cta-desc">
                Prawidłowo wykonany <strong>Projekt Ogrzewania Podłogowego (OZC + Hydraulika)</strong> to nie jest wydatek. To inwestycja, która optymalizuje ilość materiału na budowie i gwarantuje najniższe możliwe rachunki za ogrzewanie. Koszt projektu często zwraca się już w pierwszym sezonie grzewczym pracy pompy ciepła.
            </p>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
                ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (Brak H w alercie)
    const dmn = window.location.hostname;
    const allowedDmns = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDmns.includes(dmn)) {
        const blck = document.getElementById('rk-proj-app');
        if (blck) {
            blck.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel hydrauliczny oraz dane JSON-LD są własnością domeny <strong>Projekt-Ogrzewania.pl</strong>. Kod został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle i Aktualizacja Danych
    const btns = document.querySelectorAll('.rk-proj-toggle-btn');
    const dashboard = document.getElementById('proj-dashboard');
    
    const valOzc = document.getElementById('val-ozc');
    const valFlow = document.getElementById('val-flow');
    const valSpace = document.getElementById('val-space');
    const valLoop = document.getElementById('val-loop');
    
    const cards = document.querySelectorAll('.rk-metric-card');

    const dataStates = {
        'bad': {
            ozc: '1,8 kW',
            flow: '310 l/h',
            space: 'co 10 cm',
            loop: 'Przeciążona',
            cssClass: 'state-bad',
            cardClass: 'alert'
        },
        'good': {
            ozc: '1,2 kW',
            flow: '206 l/h',
            space: 'co 15 cm',
            loop: 'Optymalna',
            cssClass: 'state-good',
            cardClass: 'ok'
        }
    };

    function updateDashboard(state) {
        const data = dataStates[state];
        
        // Zmiana tekstu
        valOzc.textContent = data.ozc;
        valFlow.textContent = data.flow;
        valSpace.textContent = data.space;
        valLoop.textContent = data.loop;

        // Zmiana klas kontenera nadrzędnego (dla animacji SVG)
        dashboard.className = `rk-proj-dashboard ${data.cssClass}`;

        // Zmiana klas kart (kolory)
        cards.forEach(card => {
            card.className = `rk-metric-card ${data.cardClass}`;
        });
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (this.classList.contains('active')) return;
            
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            updateDashboard(this.getAttribute('data-state'));
        });
    });

    // Inicjalizacja bazowa
    updateDashboard('bad');
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-card: #1e293b;
    --rk-cs-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności/pieniędzy */
    --rk-cs-brand-light: #d1fae5;
    --rk-cs-accent: #f59e0b; /* Złoto/Bursztyn */
    --rk-cs-danger: #ef4444; /* Czerwień dla strat */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #475569;
}

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

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

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

.rk-cs-header h2 {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-cs-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Moduł Interaktywny - Porównanie ROI */
.rk-cs-interactive {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
}

.rk-cs-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
}

.rk-cs-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-cs-toggle-btn.active[data-view="before"] {
    background: #ffffff;
    color: var(--rk-cs-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-cs-toggle-btn.active[data-view="after"] {
    background: #ffffff;
    color: var(--rk-cs-brand);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Wyeksponowane Oszczędności (Kluczowy element) */
.rk-cs-savings-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.rk-cs-savings-card {
    background: #ffffff;
    border: 2px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -10px rgba(0,0,0,0.05);
}

.rk-cs-savings-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 5px;
    background: var(--rk-cs-border);
    transition: background 0.5s;
}

/* Stan "Po Audycie" - Zielony/Złoty */
.state-after .rk-cs-savings-card.capex { border-color: var(--rk-cs-brand); box-shadow: 0 15px 30px -10px rgba(16,185,129,0.2); }
.state-after .rk-cs-savings-card.capex::before { background: var(--rk-cs-brand); }
.state-after .rk-cs-savings-card.opex { border-color: var(--rk-cs-accent); box-shadow: 0 15px 30px -10px rgba(245,158,11,0.2); }
.state-after .rk-cs-savings-card.opex::before { background: var(--rk-cs-accent); }

/* Stan "Przed" - Czerwony */
.state-before .rk-cs-savings-card { border-color: #fca5a5; background: #fef2f2; }
.state-before .rk-cs-savings-card::before { background: var(--rk-cs-danger); }

.rk-cs-card-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-cs-text);
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.rk-cs-card-val {
    font-size: 48px;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
    transition: color 0.5s;
}

.rk-cs-card-val span {
    font-size: 20px;
    font-weight: 700;
}

.state-after .capex .rk-cs-card-val { color: var(--rk-cs-brand); }
.state-after .opex .rk-cs-card-val { color: var(--rk-cs-accent); }
.state-before .rk-cs-card-val { color: var(--rk-cs-danger); }

.rk-cs-card-desc {
    font-size: 14px;
    color: var(--rk-cs-text);
    font-weight: 600;
}

/* Detale Techniczne & SVG */
.rk-cs-tech-split {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    overflow: hidden;
}

.rk-cs-tech-details {
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

.rk-tech-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-tech-row:last-child { border-bottom: none; padding-bottom: 0; }

.rk-tech-label { font-size: 15px; font-weight: 700; color: var(--rk-cs-text); }
.rk-tech-val { font-size: 18px; font-weight: 900; color: var(--rk-cs-dark); transition: color 0.3s; }

.state-before .val-bad { color: var(--rk-cs-danger); }
.state-after .val-good { color: var(--rk-cs-brand); }

/* SVG Wizualizacja (Pompa i Dom) */
.rk-cs-svg-box {
    background: var(--rk-cs-dark);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-svg-roi { width: 100%; height: 100%; max-height: 220px; }

/* Elementy SVG */
.anim-pump-body { transition: fill 0.5s; }
.state-before .anim-pump-body { fill: #ef4444; }
.state-after .anim-pump-body { fill: #10b981; }

.anim-eps-layer { transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-before .anim-eps-layer { height: 15px; y: 135px; fill: #fcd34d; }
.state-after .anim-eps-layer { height: 35px; y: 115px; fill: #475569; }

.anim-money-drop { opacity: 0; transition: opacity 0.3s; }
.state-before .anim-money-drop { opacity: 1; animation: dropMoney 1.5s infinite linear; }

.anim-shield { opacity: 0; transition: opacity 0.5s; transform-origin: center; transform: scale(0); }
.state-after .anim-shield { opacity: 1; transform: scale(1); }

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

/* Tekst Case Study */
.rk-cs-story {
    padding: 0 50px 40px 50px;
    background: var(--rk-cs-bg);
}

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

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

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

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-interactive, .rk-cs-story { padding: 30px 20px; }
    .rk-cs-toggle-wrap { flex-direction: column; }
    .rk-cs-savings-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-cs-tech-split { grid-template-columns: 1fr; }
    .rk-cs-svg-box { height: 200px; }
    .rk-cs-card-val { font-size: 38px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Analiza inwestycji i zwrot z izolacji (Podkarpacie 2026)",
    "description": "Zobacz, jak profesjonalny audyt OZC i zmiana styropianu z 10 cm EPS 70 na 14 cm grafitu wygenerowała 3200 PLN oszczędności na pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Analiza ROI: Optymalizacja Izolacji Podłogowej",
    "description": "Zestawienie kosztów inwestycyjnych (CAPEX) i operacyjnych (OPEX) przed i po optymalizacji grubości styropianu dla domu 165 m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w styropian",
      "koszty pompy ciepła a izolacja",
      "oszczędności na ogrzewaniu podłogowym",
      "audyt OZC Podkarpacie",
      "współczynnik U a moc pompy"
    ],
    "measurementTechnique": "Porównanie zapotrzebowania na moc pompy ciepła (8 kW vs 6 kW) w oparciu o spadek współczynnika U (0,32 -> 0,16 W/m2K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Wykonawcy: EPS 70 10cm, U=0,32, Pompa 8kW, Straty 24 kWh/m2.",
        "Projekt Inżynierski: EPS 100 Grafit 14cm, U=0,16, Pompa 6kW.",
        "Oszczędność CAPEX (Pompa): 3200 PLN jednorazowo.",
        "Oszczędność OPEX (Prąd): 480 PLN rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Kalkulator Oszczędności Inwestycyjnych (ROI)",
    "description": "Interaktywny symulator prezentujący różnicę w kosztach zakupu pompy ciepła oraz rocznych rachunkach przy zmianie warstw izolacji.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            Case Study Inwestora
        </div>
        <h2>Analiza inwestycji w Podkarpaciu (Maj 2025)</h2>
        <p>
            Teoria to jedno, ale liczby nie kłamią. Zobacz na realnym przykładzie mojego klienta (dom 165 m², III strefa klimatyczna, projektowa -20°C), jak odchudzanie izolacji uderza bezpośrednio w portfel, oraz jak <strong>inżynierski audyt OZC odzyskał tysiące złotych</strong>.
        </p>
    </div>

    <div class="rk-cs-interactive state-after" id="cs-interactive-board">
        
        <div class="rk-cs-toggle-wrap">
            <button class="rk-cs-toggle-btn" data-view="before">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Wizja Wykonawcy ("Na Oko")
            </button>
            <button class="rk-cs-toggle-btn active" data-view="after">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Audyt Inżynierski (OZC)
            </button>
        </div>

        <div class="rk-cs-savings-dashboard">
            <div class="rk-cs-savings-card capex">
                <div class="rk-cs-card-title" id="title-capex">Oszczędność przy zakupie Pompy Ciepła</div>
                <div class="rk-cs-card-val"><span id="sign-capex">+</span><span id="val-capex">3200</span> <span>PLN</span></div>
                <div class="rk-cs-card-desc" id="desc-capex">Uniknięto zakupu przewymiarowanego urządzenia 8 kW.</div>
            </div>
            <div class="rk-cs-savings-card opex">
                <div class="rk-cs-card-title" id="title-opex">Zysk na rachunkach co sezon grzewczy</div>
                <div class="rk-cs-card-val"><span id="sign-opex">+</span><span id="val-opex">480</span> <span>PLN/rok</span></div>
                <div class="rk-cs-card-desc" id="desc-opex">Gwarancja niższych kosztów eksploatacyjnych dzięki COP.</div>
            </div>
        </div>

        <div class="rk-cs-tech-split">
            <div class="rk-cs-tech-details">
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Zastosowany styropian:</span>
                    <span class="rk-tech-val" id="tech-mat">14 cm EPS 100 Grafit</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Współczynnik przenikania (U):</span>
                    <span class="rk-tech-val val-good" id="tech-u">0,16 W/(m²·K)</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Wymagana moc pompy:</span>
                    <span class="rk-tech-val val-good" id="tech-pump">Tylko 6 kW</span>
                </div>
            </div>

            <div class="rk-cs-svg-box">
                <svg class="rk-svg-roi" viewBox="0 0 200 200">
                    <rect x="50" y="50" width="100" height="100" fill="#1e293b" rx="4"></rect>
                    <polygon points="40,50 100,10 160,50" fill="#334155"></polygon>
                    
                    <rect class="anim-eps-layer" x="55" y="115" width="90" height="35" rx="2"></rect>
                    
                    <rect class="anim-pump-body" x="15" y="110" width="25" height="40" rx="3"></rect>
                    <circle cx="27.5" cy="125" r="8" fill="#0f172a"></circle>
                    
                    <g class="anim-money-drop">
                        <circle cx="80" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="80" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                        <circle cx="120" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="120" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                    </g>

                    <g class="anim-shield">
                        <path d="M100 165 L140 165 L120 190 Z" fill="#10b981"></path>
                        <path d="M100 165 Q120 185 140 165 Z" fill="#34d399"></path>
                        <text x="120" y="175" font-family="sans-serif" font-size="10" font-weight="bold" fill="#ffffff" text-anchor="middle">ZYSK</text>
                    </g>
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-cs-story">
        <p>
            Modyfikację założeń doskonale obrazuje przypadek z mojej inżynierskiej praktyki. Pierwotny plan wykonawcy u pana Janusza zakładał ułożenie jednej warstwy przypadkowego styropianu <strong>EPS 70 o grubości zaledwie 10 cm</strong>.
        </p>
        <p>
            Skutkowałoby to współczynnikiem przenikania ciepła na poziomie U = 0,32 W/(m²·K) – wartością rażąco naruszającą prawo budowlane i generującą straty ciepła rzędu 24 kWh/(m²·rok) przez samą podłogę na gruncie. Wykonawca planował zamaskować ten błąd doborem większej i droższej pompy ciepła o mocy 8 kW.
        </p>
        <p>
            Po wykonaniu profesjonalnego audytu i szczegółowych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>, skorygowałem projekt. Wprowadziliśmy <strong>układ dwuwarstwowy z przesunięciem spoin o łącznej grubości 14 cm styropianu grafitowego EPS 100</strong> (λ = 0,031 W/(m·K)). W efekcie uzyskaliśmy rewelacyjny współczynnik U = 0,16 W/(m²·K), co obniżyło projektowe obciążenie cieplne całego budynku o równe 1,4 kW. Oszczędność to nie tylko tańsza o 3200 zł mniejsza pompa, ale przede wszystkim spokój i niższe rachunki na dekady.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const hostDomain = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostDomain)) {
        const shield = document.getElementById('rk-cs-app');
        if (shield) {
            shield.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Blokada Skryptu ROI</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel analizy kosztów i oszczędności (Case Study) należy do domeny <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zatrzymane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu Oszczędności
    const btns = document.querySelectorAll('.rk-cs-toggle-btn');
    const board = document.getElementById('cs-interactive-board');
    
    // Pola Danych
    const valCapex = document.getElementById('val-capex');
    const signCapex = document.getElementById('sign-capex');
    const titleCapex = document.getElementById('title-capex');
    const descCapex = document.getElementById('desc-capex');

    const valOpex = document.getElementById('val-opex');
    const signOpex = document.getElementById('sign-opex');
    const titleOpex = document.getElementById('title-opex');
    const descOpex = document.getElementById('desc-opex');

    const tMat = document.getElementById('tech-mat');
    const tU = document.getElementById('tech-u');
    const tPump = document.getElementById('tech-pump');

    const states = {
        'before': {
            css: 'state-before',
            capexTitle: 'Przepłacasz za Pompę Ciepła',
            capexSign: '-',
            capexVal: '3200',
            capexDesc: 'Wymuszony zakup przewymiarowanej jednostki 8 kW.',
            opexTitle: 'Straty na rachunkach co sezon',
            opexSign: '-',
            opexVal: '480',
            opexDesc: 'Ciepło ucieka w grunt. Wyższe rachunki za prąd.',
            mat: '10 cm EPS 70 (Przypadkowy)',
            uVal: '0,32 W/(m²·K)',
            pump: 'Aż 8 kW (Przewymiarowana)'
        },
        'after': {
            css: 'state-after',
            capexTitle: 'Oszczędność przy zakupie Pompy Ciepła',
            capexSign: '+',
            capexVal: '3200',
            capexDesc: 'Uniknięto zakupu przewymiarowanego urządzenia 8 kW.',
            opexTitle: 'Zysk na rachunkach co sezon grzewczy',
            opexSign: '+',
            opexVal: '480',
            opexDesc: 'Gwarancja niższych kosztów eksploatacyjnych dzięki wyższemu COP.',
            mat: '14 cm EPS 100 Grafit',
            uVal: '0,16 W/(m²·K)',
            pump: 'Tylko 6 kW (Zoptymalizowana)'
        }
    };

    function animateValue(obj, start, end, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            obj.innerHTML = Math.floor(progress * (end - start) + start);
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    function switchState(stateKey) {
        const s = states[stateKey];
        
        // Zmiana klasy głównej (odpala CSS i SVG animacje)
        board.className = `rk-cs-interactive ${s.css}`;

        // Teksty
        titleCapex.textContent = s.capexTitle;
        signCapex.textContent = s.capexSign;
        descCapex.textContent = s.capexDesc;

        titleOpex.textContent = s.opexTitle;
        signOpex.textContent = s.opexSign;
        descOpex.textContent = s.opexDesc;

        tMat.textContent = s.mat;
        tU.textContent = s.uVal;
        tPump.textContent = s.pump;

        // Odświeżenie klas dla kolorów U i Pompy
        if (stateKey === 'before') {
            tU.className = 'rk-tech-val val-bad';
            tPump.className = 'rk-tech-val val-bad';
        } else {
            tU.className = 'rk-tech-val val-good';
            tPump.className = 'rk-tech-val val-good';
        }

        // Animacja samych liczb
        animateValue(valCapex, 0, parseInt(s.capexVal), 600);
        animateValue(valOpex, 0, parseInt(s.opexVal), 600);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if(this.classList.contains('active')) return;
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            switchState(this.getAttribute('data-view'));
        });
    });

    // Uruchomienie animacji startowej (Po Audycie) po załadowaniu
    setTimeout(() => {
        animateValue(valCapex, 0, 3200, 800);
        animateValue(valOpex, 0, 480, 800);
    }, 300);
});
</script>



<style>
:root {
    --rk-sum-eps-dark: #020617;
    --rk-sum-eps-panel: #0f172a;
    --rk-sum-eps-primary: #f59e0b; /* Termiczny bursztyn/złoto */
    --rk-sum-eps-primary-light: #fef3c7;
    --rk-sum-eps-accent: #3b82f6; /* Błękit dla kontrastu */
    --rk-sum-eps-bg: #f8fafc;
    --rk-sum-eps-border: #cbd5e1;
    --rk-sum-eps-text: #334155;
    --rk-sum-eps-text-dim: #64748b;
}

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

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

.rk-sum-eps-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(245, 158, 11, 0.15) 0%, transparent 70%);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Panel Detali (Prawy) */
.rk-eps-rule-details {
    padding: 40px;
    position: relative;
}

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

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

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

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

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

.rk-eps-link {
    color: var(--rk-sum-eps-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-sum-eps-accent);
    transition: 0.3s;
}
.rk-eps-link:hover { border-bottom-style: solid; color: #1d4ed8; }

.rk-eps-svg-box {
    width: 100%;
    height: 160px;
    background: var(--rk-sum-eps-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
    overflow: hidden;
}

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

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

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

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

.rk-eps-inputs {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-eps-input-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

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

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

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

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

.rk-eps-result-box.highlight { border-color: var(--rk-sum-eps-primary); background: rgba(245, 158, 11, 0.1); }

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

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

.rk-eps-author-photo {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-eps-primary);
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-eps-author-info { flex-grow: 1; }
.rk-eps-author-info h4 { margin: 0 0 6px 0; font-size: 18px; font-weight: 900; color: var(--rk-sum-eps-dark); }
.rk-eps-author-info p { margin: 0; font-size: 14px; color: var(--rk-sum-eps-text); line-height: 1.6; }

.rk-eps-social { display: flex; gap: 15px; margin-top: 12px; }
.rk-eps-social a { color: var(--rk-sum-eps-accent); font-size: 13px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; transition: color 0.2s; }
.rk-eps-social a:hover { color: #1d4ed8; text-decoration: underline; }

/* Animacje SVG */
.svg-heat-block { opacity: 0; }
.active .svg-heat-block { opacity: 1; animation: blockHeat 2s infinite alternate; }
@keyframes blockHeat { from { transform: translateY(0); } to { transform: translateY(-10px); } }

.svg-weight-press { transform: translateY(-20px); }
.active .svg-weight-press { animation: weightPress 1.5s forwards; }
@keyframes weightPress { 100% { transform: translateY(0); } }

.svg-overlap-slide { transform: translateX(20px); opacity: 0; }
.active .svg-overlap-slide { animation: overlapSlide 1s forwards; }
@keyframes overlapSlide { 100% { transform: translateX(0); opacity: 1; } }

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?",
    "description": "Kompaktowe zestawienie norm WT2021, wymagań twardości EPS 100 oraz interaktywny kalkulator objętości izolacji podłogowej. Twórca: Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-summary",
    "name": "Wskaźniki materiałowe dla izolacji EPS podłogówki",
    "description": "Twarde dane przeliczeniowe łączące metraż budynku z objętością, szacunkową ilością paczek styropianu oraz oporem cieplnym przegrody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu eps 100",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "mostki termiczne w podłodze",
      "objętość styropianu kalkulator"
    ],
    "measurementTechnique": "Szacowanie oparte na iloczynie powierzchni i docelowej grubości wyrażonej w metrach. Opór cieplny (R) zoptymalizowany dla białego EPS 100 o parametrze λ=0.036 W/mK.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna grubość na gruncie: 15 cm Biały lub 12 cm Grafit (WT2021)",
        "Minimalna twardość pod wylewkę: CS(10) ≥ 100 kPa (EPS 100)",
        "Średnia pojemność paczki EPS: ~0.3 m3"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-summary",
    "name": "Kalkulator Objętości Styropianu",
    "description": "Narzędzie inżynierskie podsumowujące. Przelicza metraż podłogi oraz wybraną grubość styropianu na kubaturę (m3), opór cieplny oraz ilość paczek.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-eps-container" id="rk-sum-eps-app">
    
    <div class="rk-sum-eps-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski CEO Projekt ogrzewania" class="rk-eps-expert-avatar" loading="lazy">
        <div class="rk-eps-header-content">
            <div class="rk-eps-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?</h2>
            <p>Zebrałem dla Ciebie 3 żelazne zasady izolacji podłogowej. Ich zignorowanie przed zalaniem jastrychu będzie Cię kosztować tysiące złotych przez lata.</p>
        </div>
    </div>

    <div class="rk-sum-eps-body">
        
        <div class="rk-eps-rules-list">
            <button class="rk-eps-rule-btn active" data-panel="eps-det-1">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Norma WT2021 to baza</h3>
                    <p>Minimum 15 cm białego styropianu na gruncie.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-2">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="12" y1="2" x2="12" y2="22"></line><line x1="2" y1="12" x2="22" y2="12"></line></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Twardość ma znaczenie</h3>
                    <p>EPS 100 to absolutne minimum pod jastrych.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-3">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="21" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="3" y2="18"></line></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Montaż w mijankę</h3>
                    <p>Wyeliminuj pionowe mostki termiczne spoin.</p>
                </div>
            </button>
        </div>

        <div class="rk-eps-rule-details">
            
            <div class="rk-eps-detail-panel active" id="eps-det-1">
                <h4>Fizyki nie oszukasz</h4>
                <p>Aby spełnić normę WT2021 (<a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-eps-link">współczynnik U ≤ 0,20</a>), potrzebujesz grubej bariery. Chudszy styropian to natychmiastowa ucieczka ciepła w grunt i straty pieniędzy.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="50" y="40" width="100" height="40" fill="#fcd34d" rx="4"></rect>
                        <text x="100" y="65" font-family="sans-serif" font-weight="900" font-size="12" fill="#0f172a" text-anchor="middle">EPS 15 cm</text>
                        <g class="svg-heat-block">
                            <path d="M 80 85 L 85 70 L 90 85 Z" fill="#ef4444"></path>
                            <path d="M 120 85 L 115 70 L 110 85 Z" fill="#ef4444"></path>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-2">
                <h4>Zagrożenie dla wylewki</h4>
                <p>Zastosowanie taniego styropianu fasadowego (EPS 70) skończy się tragedią. Płyty ugną się pod masą jastrychu (ok. 130 kg/m²), niszcząc <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-eps-link">wylewkę</a> i zrywając instalację.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <g class="svg-weight-press">
                            <rect x="80" y="10" width="40" height="30" fill="#94a3b8" rx="2"></rect>
                            <text x="100" y="30" fill="#0f172a" font-weight="bold" font-size="10" text-anchor="middle">130 KG</text>
                            <path d="M 100 45 L 95 35 L 105 35 Z" fill="#ffffff"></path>
                        </g>
                        <rect x="60" y="60" width="80" height="20" fill="#38bdf8" rx="2"></rect>
                        <text x="100" y="74" fill="#0f172a" font-weight="900" font-size="10" text-anchor="middle">EPS 100 (SZTYWNY)</text>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-3">
                <h4>Eliminacja mostków liniowych</h4>
                <p>Nigdy nie układaj styropianu w jednej, grubej warstwie. Konieczny jest montaż krzyżowy (np. 10 cm + 5 cm) przesunięty o minimum 20 cm, aby <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-eps-link">zapobiec ucieczce energii</a> w dół przez spoiny płyt.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="30" width="100" height="20" fill="#fbbf24" rx="2"></rect>
                        <rect class="svg-overlap-slide" x="60" y="55" width="100" height="20" fill="#f59e0b" rx="2"></rect>
                        <line x1="60" y1="20" x2="60" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                        <line x1="120" y1="20" x2="120" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-eps-quick-calc">
        <div class="rk-eps-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-eps-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Szybki estymator materiałowy
            </h4>
            <span style="font-size:12px; color:#94a3b8;">(Szacunki bazowe)</span>
        </div>

        <div class="rk-eps-calc-grid">
            
            <div class="rk-eps-inputs">
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Powierzchnia podłóg:
                        <span id="epsAreaOut">120 m²</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsAreaSlider" min="50" max="300" step="10" value="120">
                </div>
                
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Grubość izolacji EPS:
                        <span id="epsThickOut">15 cm</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsThickSlider" min="5" max="25" step="1" value="15">
                </div>
            </div>

            <div class="rk-eps-results">
                <div class="rk-eps-result-box highlight">
                    <span class="rk-eps-res-val" id="resVolume">18.0 <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span></span>
                    <span class="rk-eps-res-lab">Suma objętości EPS</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resRValue">4.17 <span style="font-size:14px;color:#94a3b8;">R</span></span>
                    <span class="rk-eps-res-lab">Szacunkowy opór (Biały)</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resPacks">60 <span style="font-size:14px;color:#94a3b8;">szt.</span></span>
                    <span class="rk-eps-res-lab">Paczki (~0.3m³ / szt.)</span>
                </div>
            </div>

        </div>
    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!authDomains.includes(currentDomain)) {
        document.getElementById('rk-sum-eps-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:1px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Kod podsumowania jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Zakładek
    const btns = document.querySelectorAll('.rk-eps-rule-btn');
    const panels = document.querySelectorAll('.rk-eps-detail-panel');

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

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

    // 3. Logika Estymatora Objętości Styropianu
    const sliderArea = document.getElementById('epsAreaSlider');
    const outArea = document.getElementById('epsAreaOut');
    
    const sliderThick = document.getElementById('epsThickSlider');
    const outThick = document.getElementById('epsThickOut');

    const resVol = document.getElementById('resVolume');
    const resR = document.getElementById('resRValue');
    const resPacks = document.getElementById('resPacks');

    function calculateEPS() {
        const area = parseInt(sliderArea.value);
        const thickCm = parseInt(sliderThick.value);
        const thickM = thickCm / 100;
        
        outArea.textContent = area + ' m²';
        outThick.textContent = thickCm + ' cm';

        // Objętość = pole * grubość (w metrach)
        const volume = area * thickM;
        // Szacunkowy opór cieplny (dla EPS białego lambda ~0.036)
        const rValue = thickM / 0.036;
        // Szacunkowa ilość paczek (zakładając średnio 0.3 m3 w paczce)
        const packs = Math.ceil(volume / 0.3);

        resVol.innerHTML = volume.toFixed(1) + ' <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span>';
        resR.innerHTML = rValue.toFixed(2) + ' <span style="font-size:14px;color:#94a3b8;">R</span>';
        resPacks.innerHTML = packs + ' <span style="font-size:14px;color:#94a3b8;">szt.</span>';
    }

    if(sliderArea && sliderThick) {
        sliderArea.addEventListener('input', calculateEPS);
        sliderThick.addEventListener('input', calculateEPS);
        calculateEPS(); // Init
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #6366f1; /* Eksperckie Indygo */
    --rk-faq-brand-light: #eef2ff;
    --rk-faq-accent: #f59e0b; /* Bursztyn dla akcentów twardości */
    --rk-faq-blue: #3b82f6;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
}

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

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.35);
    color: #c7d2fe;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(199, 210, 254, 0.2);
}

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

.rk-faq-header h2 span { 
    color: #818cf8; 
}

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

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

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    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);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 12px 20px -8px rgba(99, 102, 241, 0.15);
}

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

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

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

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

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

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

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

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

/* Zawartość Odpowiedzi */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 30px;
    align-items: center;
}

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

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

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(99, 102, 241, 0.4);
    transition: all 0.3s;
}

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

/* Kontenery Wizualizacji SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 14px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
}

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

/* --- Dedykowane Animacje SVG dla Akapitów FAQ --- */

/* 1. Strop międzykondygnacyjny */
.anim-acoustic-wave { stroke: #3b82f6; stroke-width: 2; fill: none; opacity: 0; transition: all 0.4s; }
.rk-faq-item.active .anim-acoustic-wave { opacity: 1; animation: soundDiminish 1.5s infinite linear; }
@keyframes soundDiminish {
    0% { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(1.3); opacity: 0; transform-origin: center; }
}

/* 2. Raster i ucieczka ciepła */
.anim-heat-drop { stroke: #ef4444; stroke-width: 3; stroke-linecap: round; opacity: 0; }
.rk-faq-item.active .anim-heat-drop { opacity: 1; animation: heatPassesThrough 2s infinite linear; }
@keyframes heatPassesThrough {
    0% { transform: translateY(-20px); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0.2; }
}

/* 3. Wytrzymałość EPS vs XPS */
.anim-press-plate { fill: #64748b; transition: transform 0.6s 0.2s cubic-bezier(0.25, 1, 0.5, 1); }
.rk-faq-item.active .anim-press-plate { transform: translateY(8px); }

/* 4. Płynny jastrych anhydrytowy */
.anim-fluid-pour { fill: #f59e0b; transform: scaleX(0); transform-origin: left; transition: transform 0.8s 0.2s ease-out; }
.rk-faq-item.active .anim-fluid-pour { transform: scaleX(1); }

/* 5. Gęstość i twardość kciuka */
.anim-stamp { fill: #10b981; opacity: 0; transform: scale(0.5); transition: all 0.5s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.rk-faq-item.active .anim-stamp { opacity: 1; transform: scale(1); transform-origin: center; }


/* Responsywność mobilna */
@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 15px 10px; }
    .rk-faq-visual { height: 120px; max-width: 240px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o styropian pod ogrzewanie podłogowe",
    "description": "Eksperckie odpowiedzi na pytania inwestorów o grubość izolacji na stropie, rolę folii z rastrem oraz parametry twardości EPS i XPS pod jastrych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi 30-50 mm (3-5 cm). Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi izolację akustyczną oraz techniczną bazę do mocowania spinek montażowych rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu odbijającego część promieniowania podczerwonego oraz ułatwia prawidłowy rozstaw rur co 10 lub 15 cm. Posiada ona zerowy opór cieplny, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych."
        }
      },
      {
        "@type": "Question",
        "name": "Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Polistyren ekstrudowany XPS jest obiektywnie lepszym materiałem ze względu na wyższą wytrzymałość na ściskanie (od 300 kPa) oraz niższą nasiąkliwość wodą, jednak ze względu na wysoki koszt stosuje się go głównie w miejscach narażonych na ekstremalne obciążenia (np. garaże) lub wilgoć. W pomieszczeniach mieszkalnych w zupełności wystarczający jest styropian EPS 100."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pod względem mechanicznym wymagania są identyczne – minimalna twardość to EPS 100. Kluczowa różnica tkwi w hydroizolacji: wylewka anhydrytowa ma płynną konsystencję, co bezwzględnie wymaga szczelnego wyklejenia styków folii taśmami, aby płynny jastrych nie wpłynął pomiędzy płyty styropianowe."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Każda paczka styropianu posiada etykietę z kodem specyfikacji technicznej, na której należy szukać oznaczenia CS(10)100 lub wyższego. Dodatkowo, styropian EPS 100 charakteryzuje się minimalną gęstością własną na poziomie ok. 18 kg/m3 – płyty w dłoniach muszą być sztywne i nie mogą się łatwo kruszyć pod naciskiem kciuka."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zbiorcza Tabela Wytycznych Normatywnych dla Izolacji Podłogowej",
    "description": "Zestawienie fizycznych i mechanicznych parametrów materiałów izolacyjnych wymaganych przez normę PN-EN 1264 w strukturze akapitów FAQ.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "styropian na stropie",
      "folia z rastrem podłogówka",
      "twardość styropianu EPS 100",
      "izolacja pod wylewkę anhydrytową",
      "wytrzymałość xps na ściskanie"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Panel Wyjaśnień Technicznych",
    "description": "System dynamicznej wizualizacji wektorowej procesów zachodzących w warstwach izolacji termicznej podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Inżynierska Baza Odpowiedzi
        </div>
        <h2>FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi <strong>30-50 mm (3-5 cm)</strong>. Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi kluczową izolację akustyczną wyguszającą dźwięki uderzeniowe. Stanowi również techniczną bazę stabilizującą spinki montażowe dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" class="rk-link">rur do ogrzewania podłogowego</a>, co zabezpiecza je przed wypłynięciem podczas zalewania <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-link">grubości wylewki</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="45" width="80" height="15" fill="#475569" />
                                    <rect x="10" y="30" width="80" height="12" fill="#94a3b8" />
                                    <circle class="anim-acoustic-wave" cx="50" cy="36" r="10" />
                                    <circle cx="50" cy="36" r="4" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Nie, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu refleksyjnego odbijającego część promieniowania podczerwonego oraz ułatwia instalatorowi zachowanie równego <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewanym-podlogowym/" class="rk-link">rozstawu rur podłogówki</a>. Posiada ona <strong>zerowy opór cieplny (R)</strong>, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych. Prawdziwą barierą blokującą ucieczkę energii jest wyłącznie zwarta struktura powietrza zamknięta w spienionym polistyrenie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="10" y1="35" x2="90" y2="35" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="2 2" />
                                    <path class="anim-heat-drop" d="M 50 15 L 50 55" />
                                    <circle cx="50" cy="15" r="5" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Polistyren ekstrudowany XPS jest obiektywnie trwalszym materiałem ze względu na wyższą wytrzymałość na ściskanie wynoszącą <strong>minimum 300 kPa</strong> oraz zerową nasiąkliwość wodą. Ze względu na wysoki koszt zakupu stosuje się go głównie w strefach narażonych na wilgoć lub potężne obciążenia skupione, takich jak przydomowe garaże czy kotłownie z ciężkimi zasobnikami. W pomieszczeniach mieszkalnych w zupełności wystarczający i ekonomicznie zoptymalizowany jest twardy styropian <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-link">EPS 100 o wysokim oporze cieplnym</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="25" y="40" width="50" height="20" fill="#3b82f6" rx="2" />
                                    <rect class="anim-press-plate" x="20" y="15" width="60" height="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Pod względem odporności mechanicznej wymagania są tożsame – minimalny próg twardości to EPS 100. Kluczowa różnica tkwi jednak w sposobie przygotowania izolacji przeciwwilgociowej. Płynny jastrych anhydrytowy ze względu na swoją samopoziomującą konsystencję wymaga **bezwzględnego wyklejenia i uszczelnienia styków folii** taśmami wodoodpornymi. Brak szczelności spowoduje, że płynna masa wpłynie w szczeliny styropianu, unosząc płyty do góry i tworząc potężne mostki termiczne niszczące efektywność całego systemu grzewczego.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="15" y="45" width="70" height="15" fill="#64748b" />
                                    <circle cx="30" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="50" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="70" cy="45" r="5" fill="#ef4444" />
                                    <rect class="anim-fluid-pour" x="15" y="25" width="70" height="15" opacity="0.6"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Weryfikację należy zacząć od analizy etykiety technicznej na paczkach – szukaj kodu zwierającego oznaczenie <strong>CS(10)100</strong> lub wyższego (np. CS(10)150). Drugim parametrem weryfikacyjnym jest gęstość własna materiału, która dla oryginalnego EPS 100 powinna wynosić <strong>około 18 kg/m3</strong>. Możesz wykonać prosty test budowlany: markowy styropian podłogowy naciskany mocno kciukiem nie powinien trwale odkształcać się ani kruszyć w strukturze. Jeśli płyta jest miękka i przypomina styropian fasadowy, natychmiast zatrzymaj montaż rur.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="35" width="60" height="25" fill="#cbd5e1" rx="2" />
                                    <text x="32" y="52" font-family="sans-serif" font-size="8" font-weight="900" fill="#475569">EPS 100</text>
                                    <circle class="anim-stamp" cx="50" cy="22" r="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Bez tagów H2/H3 w stringu błędu)
    const currentHost = window.location.hostname;
    const authorizedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authorizedDomains.includes(currentHost)) {
        const appContainer = document.getElementById('rk-faq-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 44px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.5px;">Błąd Licencji i Autoryzacji</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten interaktywny kontener FAQ oraz powiązane z nim mikrodane JSON-LD są chronione prawem autorskim i stanowią własność serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika interaktywnego akordeonu FAQ
    const items = document.querySelectorAll('.rk-faq-item');

    items.forEach(item => {
        const questionBtn = item.querySelector('.rk-faq-question');
        questionBtn.addEventListener('click', () => {
            const isCurrentlyActive = item.classList.contains('active');
            
            // Zamknij wszystkie pozostałe elementy
            items.forEach(i => i.classList.remove('active'));
            
            // Jeśli kliknięty nie był aktywny, otwórz go
            if (!isCurrentlyActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Domyślne otwarcie pierwszego elementu FAQ po załadowaniu
    if(items.length > 0) {
        items[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-iso-dark: #1e293b;
    --rk-iso-blue: #0ea5e9;
    --rk-iso-light: #f8fafc;
    --rk-iso-warm: #f97316;
    --rk-iso-warm-light: #ffedd5;
    --rk-iso-cold: #3b82f6;
    --rk-iso-cold-light: #dbeafe;
    --rk-iso-border: #e2e8f0;
    --rk-iso-bg: #ffffff;
    --rk-iso-text: #334155;
}

.rk-iso-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-iso-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-iso-border);
    overflow: hidden;
}

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

.rk-iso-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-iso-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    max-width: 700px;
}

/* Interaktywny Panel */
.rk-iso-interactive {
    padding: 40px 50px;
    background: var(--rk-iso-light);
}

.rk-iso-interactive h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-iso-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Toggle Switcher */
.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 100px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-toggle-btn.active[data-mode="thick"] {
    background: var(--rk-iso-warm);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(249, 115, 22, 0.5);
}

.rk-toggle-btn.active[data-mode="thin"] {
    background: var(--rk-iso-cold);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(59, 130, 246, 0.5);
}

/* Wizualizacja SVG i Wynik */
.rk-sim-display {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    background: #ffffff;
    padding: 35px;
    border-radius: 20px;
    border: 1px solid var(--rk-iso-border);
    align-items: center;
}

.rk-svg-box {
    position: relative;
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 16px;
    overflow: hidden;
}

.rk-svg-layer-concrete { fill: #cbd5e1; }
.rk-svg-layer-pipe { fill: #ef4444; }
.rk-svg-layer-ground { fill: #8b5cf6; opacity: 0.2; }

/* Dynamiczna Izolacja */
.rk-svg-layer-eps {
    fill: #fcd34d;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animacje strzałek ciepła */
.heat-arrow {
    stroke: #ef4444;
    stroke-width: 3;
    stroke-linecap: round;
    fill: none;
    transition: all 0.5s;
}

/* Stan: Gruby styropian (Odbijanie ciepła) */
.state-thick .rk-svg-layer-eps { transform: scaleY(1); transform-origin: bottom; }
.state-thick .heat-arrow {
    animation: bounceHeat 2s infinite ease-in-out;
}

/* Stan: Cienki styropian (Ucieczka ciepła) */
.state-thin .rk-svg-layer-eps { transform: scaleY(0.3); transform-origin: bottom; fill: #fbbf24; }
.state-thin .heat-arrow {
    stroke: #3b82f6;
    animation: escapeHeat 2s infinite linear;
}

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

@keyframes escapeHeat {
    0% { transform: translateY(0); opacity: 1; stroke: #ef4444; }
    50% { transform: translateY(60px); opacity: 0.8; stroke: #3b82f6; }
    100% { transform: translateY(120px); opacity: 0; stroke: #3b82f6; }
}

/* Panel Danych */
.rk-data-panel h4 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-iso-dark);
}

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

.rk-data-stat {
    display: flex;
    justify-content: space-between;
    padding: 12px 15px;
    background: var(--rk-iso-light);
    border-radius: 10px;
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 14px;
}

.rk-stat-value {
    color: var(--rk-iso-warm);
    font-size: 16px;
}
.state-thin .rk-stat-value { color: var(--rk-iso-cold); }

/* Podsumowanie Textowe */
.rk-iso-summary-text {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-iso-border);
}

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

.rk-iso-summary-text a {
    color: var(--rk-iso-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-iso-header, .rk-iso-interactive, .rk-iso-summary-text { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; border-radius: 16px; gap: 5px; }
    .rk-toggle-btn { border-radius: 12px; }
    .rk-sim-display { grid-template-columns: 1fr; gap: 25px; }
    .rk-svg-box { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?",
    "description": "Zastosowanie 15 cm styropianu EPS 100 lub 12 cm grafitowego to optymalny standard izolacji LCC minimalizujący straty ciepła i koszty ogrzewania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Wskaźniki LCC i Opór Cieplny dla EPS 100",
    "description": "Dane dotyczące strat ciepła w ujęciu rocznym w zależności od zastosowanej grubości styropianu podłogowego zgodnie z WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "styropian podłogowy grubość",
      "współczynnik przenikania ciepła podłogi",
      "projektowe obciążenie cieplne OZC",
      "straty ciepła przez grunt"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R oraz symulacja strat kosztowych w perspektywie rocznej w stosunku do normy WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Norma optymalna: 15 cm EPS 100 lub 12 cm Grafit. Zgodność z WT2021. U = 0,20 W/(m2K).",
        "Izolacja odchudzona: 5-8 cm. Wzrost strat ciepła o 35%, wyższe koszty eksploatacji urządzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Symulator Strat Ciepła przez Podłogę LCC",
    "description": "Interaktywna symulacja wizualizująca straty ciepła przenikającego do gruntu przy zastosowaniu normatywnej oraz odchudzonej grubości styropianu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3 Animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-iso-container" id="rk-iso-app">
    <div class="rk-iso-header">
        <h2>Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?</h2>
        <p>Decyzja o grubości izolacji podłogowej determinuje koszty eksploatacji pompy ciepła na dekady. Zobacz, jak fizyka weryfikuje próby oszczędzania na materiale.</p>
    </div>

    <div class="rk-iso-interactive">
        <h3>Symulator Oporu Cieplnego i Analiza LCC</h3>
        
        <div class="rk-toggle-wrapper" id="iso-toggle">
            <button class="rk-toggle-btn active" data-mode="thick">
                <svg width="20" height="20" 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>
                Normatywne 15 cm (EPS 100)
            </button>
            <button class="rk-toggle-btn" data-mode="thin">
                <svg width="20" height="20" 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"/><line x1="3" y1="3" x2="21" y2="21"/></svg>
                Odchudzone 5 cm (Błąd!)
            </button>
        </div>

        <div class="rk-sim-display state-thick" id="iso-display">
            <div class="rk-svg-box">
                <svg viewBox="0 0 300 220" width="100%" height="100%">
                    <rect class="rk-svg-layer-ground" x="0" y="160" width="300" height="60" />
                    <rect class="rk-svg-layer-eps" x="0" y="70" width="300" height="90" />
                    <rect class="rk-svg-layer-concrete" x="0" y="20" width="300" height="50" />
                    <circle class="rk-svg-layer-pipe" cx="50" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="150" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="250" cy="45" r="8" />
                    
                    <path class="heat-arrow" d="M50 55 L50 85 M45 80 L50 85 L55 80" />
                    <path class="heat-arrow" d="M150 55 L150 85 M145 80 L150 85 L155 80" />
                    <path class="heat-arrow" d="M250 55 L250 85 M245 80 L250 85 L255 80" />
                </svg>
            </div>

            <div class="rk-data-panel" id="iso-results">
                <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                <div class="rk-data-stat">
                    <span>Współczynnik U:</span>
                    <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                </div>
                <div class="rk-data-stat">
                    <span>Zgodność z WT2021:</span>
                    <span class="rk-stat-value">TAK</span>
                </div>
                <div class="rk-data-stat">
                    <span>Straty energii do gruntu:</span>
                    <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-iso-summary-text">
        <h3>Rachunek ekonomiczny a fizyka budynku</h3>
        <p>
            Optymalny dobór podłogowej izolacji termicznej to wypadkowa kalkulacji fizycznych, wymogów prawnych zawartych w WT2021 oraz rachunku ekonomicznego LCC (Life Cycle Cost). Zastosowanie <strong>15 cm styropianu białego EPS 100 lub 12 cm styropianu grafitowego na gruncie</strong> gwarantuje święty spokój inwestora, bezawaryjną pracę posadzki i minimalne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">straty ciepła</a>.
        </p>
        <p>
            Każda próba bezrefleksyjnego odchudzania tej warstwy zemści się w postaci drastycznie wyższych rachunków za prąd lub gaz. System zacznie ogrzewać fundamenty i masę ziemi zamiast Twojego salonu, co obniży odczuwalny komfort cieplny.
        </p>
        <p>
            Pamiętaj, że ostateczne wytyczne i grubości zawsze powinien definiować indywidualny, poparty rzetelnymi <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniami OZC</a> projekt instalacji, dopasowany precyzyjnie do geometrii Twojego budynku, rodzaju gruntu oraz specyfiki i niskiej temperatury zasilania wybranego źródła ciepła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z wytycznymi)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-iso-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 3px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px;">Blokada Praw Autorskich</div>
                    <div style="font-size: 16px; color: #e2e8f0; max-width: 550px; margin: 0 auto; line-height: 1.7;">
                        Skrypt interaktywnego podsumowania LCC oraz zintegrowane dane strukturalne JSON-LD są wyłączną własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie modułu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Izolacji LCC
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const display = document.getElementById('iso-display');
    const resultsPanel = document.getElementById('iso-results');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana aktywnego przycisku
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const mode = this.getAttribute('data-mode');

            // Aktualizacja klas interfejsu i SVG
            if (mode === 'thick') {
                display.className = 'rk-sim-display state-thick';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                    <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value">TAK</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                    </div>
                `;
            } else {
                display.className = 'rk-sim-display state-thin';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-cold);">Mostek Termiczny w Grunt</h4>
                    <p>Zbyt cienka izolacja sprawia, że ciepło pokonuje barierę, uciekając w chłodny grunt. Pompa ciepła pracuje w trybie ciągłym.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">~ 0,35 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">NIE (Naruszenie)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">+ 35% rachunków</span>
                    </div>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --dl-eps-primary: #0f172a;
    --dl-eps-accent: #f59e0b; /* Termiczny pomarańcz EPS */
    --dl-eps-accent-dark: #d97706;
    --dl-eps-bg: #f8fafc;
    --dl-eps-border: #e2e8f0;
    --dl-eps-text: #334155;
    --dl-eps-white: #ffffff;
    --dl-eps-muted: #94a3b8;
}

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

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

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

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    border: 1px solid rgba(245, 158, 11, 0.3);
    color: #fcd34d;
    padding: 8px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

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

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

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

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

@keyframes floatPdfIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-12px); }
}

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

.rk-dl-preview-box {
    flex: 1;
    background: var(--dl-eps-bg);
    border: 1px solid var(--dl-eps-border);
    border-radius: 16px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
    box-shadow: 0 10px 20px rgba(0,0,0,0.03);
}

.rk-dl-preview-box:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px rgba(245, 158, 11, 0.15);
    border-color: var(--dl-eps-accent);
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
    border: 1px solid #e2e8f0;
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
}

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

.rk-dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-dl-feature-item {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 15px;
    font-weight: 700;
    color: var(--dl-eps-text);
}

.rk-dl-check-icon {
    width: 24px;
    height: 24px;
    color: var(--dl-eps-accent);
    flex-shrink: 0;
    background: var(--dl-eps-bg);
    border-radius: 50%;
    padding: 3px;
}

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

.rk-dl-btn:hover {
    background: var(--dl-eps-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fde68a;
}

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

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

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

.rk-dl-footer a {
    color: var(--dl-eps-accent-dark);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Infografika PDF – Ile styropianu pod ogrzewanie podłogowe?",
    "description": "Pobierz inżynierskie podsumowanie wymogów izolacyjnych (WT2021, opory cieplne R, układy warstwowe EPS 100) w wygodnym formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Kompendium: Parametry Izolacji EPS pod Podłogówkę",
    "description": "Skondensowany zbiór wytycznych wykonawczych, norm WT2021 oraz porównania styropianu białego i grafitowego dla instalatorów i inwestorów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika styropian podłogówka pdf",
      "grubość izolacji pod ogrzewanie podłogowe schemat",
      "zestawienie twardości eps 100",
      "parametry styropianu grafitowego ściąga",
      "jak układać styropian instrukcja"
    ],
    "measurementTechnique": "Wizualna agregacja parametrów fizycznych (R, U) oraz instrukcji montażowych w formie graficznego schematu referencyjnego.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Materiały referencyjne i szkoleniowe dla izolacji podłogowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Centrum Pobierania: Infografika Izolacyjna",
    "description": "Moduł umożliwiający szybki podgląd i bezpieczne pobranie na urządzenie mobilne lub desktopowe materiałów inżynierskich w wysokiej rozdzielczości.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-eps-container" id="rk-dl-eps-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-content">
            <div class="rk-dl-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                Zasoby do pobrania
            </div>
            <h2>Pobierz Kompendium Izolacyjne</h2>
            <p>Cała inżynierska wiedza z tego artykułu na jednej planszy. Zapisz PDF na telefonie i zabierz jako ściągawkę na plac budowy przed przyjazdem wykonawcy.</p>
        </div>
        <div class="rk-dl-visual">
            <svg class="rk-dl-pdf-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="17.5" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp" alt="Infografika - Ile styropianu pod ogrzewanie podłogowe" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-zoom-hint">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ grafikę
            </div>
        </div>

        <div class="rk-dl-info-side">
            <ul class="rk-dl-features">
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie wymogów cieplnych WT2021
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" 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>
                    Biały EPS 100 kontra Grafit (Tabela)
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Schemat: Prawidłowy montaż w mijankę
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" 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 HD gotowy do druku A4
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe.pdf" class="rk-dl-btn" target="_blank" rel="noopener noreferrer">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
            
            <p style="margin-top: 25px; font-size: 13px; color: var(--dl-eps-muted); line-height: 1.5; font-weight: 600;">
                Masz pytania dotyczące swojej inwestycji? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-eps-accent-dark); font-weight:800;">Zamów indywidualny projekt</a> i zyskaj pewność co do materiałów.
            </p>
        </div>

    </div>

    <div class="rk-dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor merytoryczny: <strong>Robert Kucharski</strong>. Możesz swobodnie przesyłać ten plik swojemu instalatorowi, z zachowaniem informacji o autorze.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie przed kradzieżą (Domain Lock) bez H-tagów
    const hostNm = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostNm)) {
        const wrap = document.getElementById('rk-dl-eps-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; text-transform: uppercase;">Zasoby Prawne Chronione</div>
                    <div style="font-size: 14px; color: #b91c1c; max-width: 500px; margin: 10px auto 0 auto; line-height: 1.6;">
                        Ten moduł pobierania i dokumentacja techniczna są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Osadzanie iframe i pobieranie z zewnętrznych serwerów jest zablokowane.
                    </div>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Podłogówka cena za m² robocizny.</title>
		<link>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/</link>
					<comments>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 04 Jan 2025 12:41:44 +0000</pubDate>
				<category><![CDATA[Budżet instalacji]]></category>
		<category><![CDATA[Cena robocizny 2025]]></category>
		<category><![CDATA[Czynniki kosztowe]]></category>
		<category><![CDATA[Efektywność cieplna]]></category>
		<category><![CDATA[Koszty ogrzewania podłogowego]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Rozstaw rur podłogówki]]></category>
		<category><![CDATA[budżet na podłogówkę]]></category>
		<category><![CDATA[cena robocizny podłogówki]]></category>
		<category><![CDATA[efektywność cieplna]]></category>
		<category><![CDATA[instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[materiały podłogówka]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka cena]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1892</guid>

					<description><![CDATA[<p>Podłogówka cena za m² robocizny to jedno z najczęściej zadawanych pytań przez inwestorów. W tym artykule szczegółowo omawiamy koszty instalacji ogrzewania podłogowego, uwzględniając rozstaw rur, lokalizację inwestycji oraz rok 2025 jako punkt odniesienia cenowego. Dowiesz się, jakie czynniki wpływają na koszt, dlaczego warto inwestować w profesjonalny projekt i jak optymalizować wydatki, aby zapewnić komfort cieplny i efektywność energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">Podłogówka cena za m² robocizny.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --accent-hover: #0369a1;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

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

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    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: 40px 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: 20px;
    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: var(--accent-hover);
}

.hero-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 35px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Interaktywny Wizualizator Zakresu Prac */
.interactive-scope-container {
    background: #ffffff;
    border: 1px solid #bae6fd;
    border-radius: 20px;
    padding: 25px;
    margin-top: 30px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.05);
}

.scope-grid {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    flex-wrap: wrap;
}

.scope-btn {
    flex: 1;
    min-width: 120px;
    background: var(--bg-light);
    border: 2px solid transparent;
    padding: 15px 10px;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--text-muted);
}

.scope-btn svg {
    width: 28px;
    height: 28px;
    stroke: currentColor;
    transition: transform 0.3s ease;
}

.scope-btn span {
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.scope-btn:hover {
    background: #e0f2fe;
    color: var(--accent);
}

.scope-btn:hover svg {
    transform: scale(1.1);
}

.scope-btn.active {
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent-hover);
    box-shadow: 0 8px 15px rgba(2, 132, 199, 0.2);
}

.scope-btn.active svg {
    stroke: #ffffff;
    transform: scale(1.1);
}

.scope-content-box {
    background: var(--bg-light);
    border-left: 4px solid var(--accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    min-height: 120px;
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

.scope-content-box.active {
    display: block;
}

.scope-content-box h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    color: var(--primary);
}

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

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

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
}

@media (max-width: 600px) {
    .scope-grid { flex-direction: column; }
    .scope-btn { flex-direction: row; justify-content: flex-start; padding: 12px 20px; }
    .scope-btn svg { width: 24px; height: 24px; }
    .scope-content-box { padding: 15px; border-radius: 12px; border-left: none; border-top: 4px solid var(--accent); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podłogówka cena za m² robocizny - Zakres prac i koszty 2026",
    "description": "Szczegółowa analiza stawek robocizny za montaż ogrzewania podłogowego w 2026 roku. Sprawdź, od czego zależy ostateczna cena instalacji i co dokładnie obejmuje kompleksowa wycena.",
    "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/podlogowka-cena-za-m2-robocizny/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zakres prac monterskich w cenie robocizny ogrzewania podłogowego",
    "description": "Zestawienie elementów wchodzących w skład uśrednionych rynkowych kosztów wykonawczych dla wodnego ogrzewania podłogowego (32-45 PLN/m²).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Przygotowanie i izolacja",
        "value": "Wliczone w stawkę",
        "description": "Rozłożenie izolacji termicznej, przeciwwilgociowej i folii z rastrem."
      },
      {
        "@type": "PropertyValue",
        "name": "Montaż układu rur",
        "value": "Wliczone w stawkę",
        "description": "Układanie i kotwienie pętli grzewczych z uwzględnieniem stref brzegowych."
      },
      {
        "@type": "PropertyValue",
        "name": "Podłączenie rozdzielacza",
        "value": "Wliczone w stawkę",
        "description": "Złożenie i uzbrojenie rozdzielacza oraz podpięcie wszystkich obiegów."
      },
      {
        "@type": "PropertyValue",
        "name": "Próba szczelności",
        "value": "Wliczone w stawkę",
        "description": "Obowiązkowa próba ciśnieniowa wodą lub powietrzem przed wylaniem jastrychu."
      }
    ],
    "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 wizualizator zakresu prac instalacyjnych",
    "applicationCategory": "EducationalApplication",
    "description": "Interaktywny panel pozwalający inwestorowi na eksplorację poszczególnych etapów wchodzących w skład rynkowej stawki za robociznę ogrzewania podłogowego.",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza stawek 2026
        </div>
        
        <p class="hero-text"><strong>Podłogówka cena za m² robocizny</strong> to jeden z kluczowych parametrów, który inwestor musi uwzględnić przy planowaniu instalacji ogrzewania płaszczyznowego. W 2026 roku podłogówka cena za m² robocizny oscyluje najczęściej w przedziale <strong>32–45 zł/m²</strong> i obejmuje kompleksowe prace monterskie – od przygotowania podłoża, przez ułożenie izolacji termicznej i przeciwwilgociowej, aż po montaż rur grzewczych oraz podłączenie i uruchomienie rozdzielacza.</p>
        
        <p class="hero-text">Na ostateczną wartość, jaką osiąga podłogówka cena za m² robocizny, wpływa przede wszystkim stopień skomplikowania instalacji, zastosowana technologia montażu oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w pętlach</a>, który bezpośrednio determinuje czas pracy i precyzję wykonania. W praktyce oznacza to, że <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">dobrze zaprojektowany system</a> pozwala nie tylko kontrolować koszty wykonawcze, ale również zapewnia wyższą efektywność energetyczną na lata.</p>

        <h2>Analiza stawek robocizny za ogrzewanie podłogowe</h2>

        <div class="interactive-scope-container">
            <div class="scope-grid">
                <button class="scope-btn active" data-target="step-izolacja">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    <span>Izolacja</span>
                </button>
                <button class="scope-btn" data-target="step-rury">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="m8 17 4 4 4-4"></path></svg>
                    <span>Układanie Rur</span>
                </button>
                <button class="scope-btn" data-target="step-rozdzielacz">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="9" x2="9" y2="15"></line><line x1="15" y1="9" x2="15" y2="15"></line></svg>
                    <span>Rozdzielacz</span>
                </button>
                <button class="scope-btn" data-target="step-proba">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                    <span>Próba Ciśnieniowa</span>
                </button>
            </div>

            <div id="step-izolacja" class="scope-content-box active">
                <h4>1. Przygotowanie podłoża i izolacja</h4>
                <p>Ułożenie płyt styropianowych (EPS) oraz folii przeciwwilgociowej z rastrem. W profesjonalnej wycenie wliczone jest również wykonanie dylatacji brzegowych (taśma przyścienna), co jest kluczowe dla ochrony <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu podłogowego</a> przed pękaniem podczas pracy cieplnej wylewki.</p>
            </div>
            <div id="step-rury" class="scope-content-box">
                <h4>2. Precyzyjny montaż rur grzewczych</h4>
                <p>Rozwinięcie i zakotwienie rur PEX/PERT za pomocą spinek (tacker) z zachowaniem projektowanego układu (np. ślimakowy). Stawka uwzględnia odpowiednie zagęszczenie rur w tzw. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a>, np. przy oknach tarasowych i drzwiach wyjściowych.</p>
            </div>
            <div id="step-rozdzielacz" class="scope-content-box">
                <h4>3. Podłączenie do rozdzielacza</h4>
                <p>Wpięcie wszystkich obiegów (pętli) do szafki rozdzielaczowej. W tym etapie instalator wykonuje również wstępną regulację hydrauliczną (ustawienie przepływów na rotametrach), aby zapewnić równomierne oddawanie ciepła w każdym z pomieszczeń.</p>
            </div>
            <div id="step-proba" class="scope-content-box">
                <h4>4. Obowiązkowa próba szczelności</h4>
                <p>To krytyczny punkt, którego nie wolno pominąć! Przed zalaniem rur betonem wykonawca przeprowadza nabicie instalacji ciśnieniem powietrza lub wody i sporządza protokół szczelności zgodnie z normą PN-EN 1264. To Twoja gwarancja bezpieczeństwa przed wylaniem posadzki.</p>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 25px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <div style="font-size: 16px; color: #0f172a; margin-bottom: 15px; font-weight: bold;">Podsumowanie prac objętych stawką 32-45 zł/m²:</div>
            <ul style="color: #475569; line-height: 1.8; margin: 0; padding-left: 20px;">
                <li>Przygotowanie izolacji termicznej i dylatacji przyściennych.</li>
                <li>Montaż rur grzewczych zgodnie z obliczeniami zapotrzebowania cieplnego.</li>
                <li>Osadzenie i podłączenie rozdzielacza wraz ze wstępną regulacją.</li>
                <li>Udokumentowana próba ciśnieniowa (szczelności).</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OBSŁUGA INTERAKTYWNEGO WIZUALIZATORA ---
    const buttons = document.querySelectorAll('.scope-btn');
    const contentBoxes = document.querySelectorAll('.scope-content-box');

    buttons.forEach(button => {
        button.addEventListener('click', () => {
            // Usuń aktywną klasę ze wszystkich przycisków i okien treści
            buttons.forEach(btn => btn.classList.remove('active'));
            contentBoxes.forEach(box => box.classList.remove('active'));

            // Dodaj aktywną klasę do klikniętego przycisku
            button.classList.add('active');

            // Pokaż odpowiednią treść
            const targetId = button.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // --- 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('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 interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został wdrożony bez licencji.
                    </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: #ea580c; 
    --accent-hover: #c2410c;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

.complexity-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--card-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.complexity-header {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.complexity-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.complexity-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0;
}

/* Interaktywny Grid Wyzwań */
.complexity-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

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

.complexity-card:hover {
    border-color: #fdba74;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.05);
}

.complexity-card.active {
    border-color: var(--accent);
    background: var(--bg-light);
}

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

.card-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #f1f5f9;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s;
}

.complexity-card.active .card-icon {
    background: var(--accent);
    color: #ffffff;
}

.complexity-card h3 {
    font-size: 16px;
    font-weight: 800;
    margin: 0;
    color: var(--primary);
}

.complexity-details {
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s ease;
    opacity: 0;
}

.complexity-card.active .complexity-details {
    max-height: 250px;
    margin-top: 15px;
    opacity: 1;
}

.complexity-details p {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 12px;
}

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

.cost-impact-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    background: #fee2e2;
    color: #dc2626;
}

.complexity-card.active .cost-impact-tag {
    background: #dc2626;
    color: #ffffff;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Dlaczego stopień skomplikowania projektu podnosi stawkę za m² robocizny?",
    "description": "Analiza techniczna wpływu trudnych brył budynków, automatyki i zbalansowania hydraulicznego na cenę robocizny podłogówki w 2026 roku.",
    "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" }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wskaźniki wzrostu kosztów robocizny podłogówki",
    "description": "Zestawienie procentowych i kwotowych narzutów na robociznę wynikających ze stopnia skomplikowania instalacji HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wzrost ceny: nieregularne kształty",
        "value": "+15-25%"
      },
      {
        "@type": "PropertyValue",
        "name": "Koszt montażu automatyki (na strefę)",
        "value": "150-250 PLN"
      },
      {
        "@type": "PropertyValue",
        "name": "Czas balansowania hydraulicznego",
        "value": "3-5 h"
      }
    ],
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Analizator Trudności Montażowych HVAC",
    "applicationCategory": "EducationalApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "operatingSystem": "All",
    "description": "Interaktywny panel edukacyjny wyjaśniający dylematy inżynierskie i wzrost pracochłonności przy niestandardowych projektach ogrzewania płaszczyznowego."
  }
]
</script>

<div class="complexity-box" id="complexity-app-container">
    
    <div class="complexity-header">
        <h2>Dlaczego stopień skomplikowania projektu podnosi stawkę za m²?</h2>
        <p>Inwestorzy często pytają, skąd biorą się różnice w ofertach. Prawda jest taka, że <strong>cena robocizny podłogówki w trudnych pomieszczeniach</strong> nie może być taka sama jak w prostym garażu. Kliknij w wybrane wyzwanie, aby zobaczyć, co realnie wydłuża czas pracy montera.</p>
    </div>

    <div class="complexity-grid">
        <div class="complexity-card active">
            <div class="card-top">
                <div class="card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3h18v18H3z"></path><path d="M21 9H3"></path><path d="M21 15H3"></path><path d="M12 3v18"></path></svg>
                </div>
                <h3>Nieregularna bryła i skosy</h3>
            </div>
            <span class="cost-impact-tag">+15–25% stawki</span>
            <div class="complexity-details">
                <p>Pomieszczenia z wykuszami, wnękami i łukami wymagają precyzyjnego kotwienia rur przy każdym załamaniu. Zwiększa to ryzyko przewężenia przekroju, co musi monitorować inżynier. Każde cięcie styropianu pod skosem to dodatkowe minuty, które sumują się w godziny.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg>
                </div>
                <h3>Automatyka strefowa</h3>
            </div>
            <span class="cost-impact-tag">150–250 zł / strefa</span>
            <div class="complexity-details">
                <p><strong>Koszt montażu sterowania strefowego podłogówki</strong> obejmuje instalację listew sterujących oraz siłowników termoelektrycznych na rozdzielaczu. Wymaga to nie tylko wiedzy hydraulicznej, ale i precyzyjnego sparowania termostatów z obiegami.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Balansowanie hydrauliczne</h3>
            </div>
            <span class="cost-impact-tag">3–5h pracy fachowca</span>
            <div class="complexity-details">
                <p><strong>Zbalansowanie hydrauliczne instalacji (cena</strong> wliczona w profesjonalną usługę) to etap krytyczny. Brak pracy z <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrami</a> skutkuje niedogrzaniem odległych pętli i reklamacjami.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <h3>Wielopoziomowość i piony</h3>
            </div>
            <span class="cost-impact-tag">Wycena indywidualna</span>
            <div class="complexity-details">
                <p>Konieczność prowadzenia kilku pionów zasilających i montażu rozdzielaczy na różnych kondygnacjach to wyzwanie logistyczne. Dowiedz się więcej o tym, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać projekt</a> dla takich budynków.</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)) {
        document.getElementById('complexity-app-container').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; font-family: sans-serif; border-radius: 24px;">
                <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                <div style="font-size: 22px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                <p style="font-size: 14px; max-width: 500px; margin: 0 auto 20px auto; color: #9a3412;">Ten moduł interaktywny został skopiowany z serwisu Projekt-Ogrzewania.pl bez zgody autora.</p>
                <a href="https://projekt-ogrzewania.pl/" style="background: #ea580c; color: white; padding: 12px 24px; border-radius: 10px; text-decoration: none; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
            </div>
        `;
        return;
    }

    // --- LOGIKA INTERAKCJI ---
    const cards = document.querySelectorAll('.complexity-card');
    cards.forEach(card => {
        card.addEventListener('click', function() {
            cards.forEach(c => c.classList.remove('active'));
            this.classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; 
    --accent-hover: #c2410c;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

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

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(234, 88, 12, 0.08) 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: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

.hero-content h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 35px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hero-content h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--primary);
    margin-top: 30px;
    margin-bottom: 15px;
}

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

/* Moduł interaktywny - Symulator Rozstawu */
.interactive-calc-wrapper {
    background: #ffffff;
    border: 1px solid #fed7aa;
    border-radius: 20px;
    padding: 30px;
    margin-top: 30px;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.05);
}

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

.calc-control-group {
    margin-bottom: 25px;
}

.calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.calc-value-display {
    color: var(--accent);
    font-size: 18px;
}

/* Suwak */
.range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #fed7aa;
    border-radius: 5px;
    outline: none;
    transition: background 0.3s;
}

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

.range-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Przełączniki (Toggles) */
.toggle-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.toggle-btn {
    flex: 1;
    min-width: 120px;
    padding: 12px 15px;
    background: #fff7ed;
    border: 2px solid #fed7aa;
    border-radius: 12px;
    color: var(--primary);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.toggle-btn span.rate-hint {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
}

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

.toggle-btn.active span.rate-hint {
    color: #ffedd5;
}

.toggle-btn:hover:not(.active) {
    background: #ffedd5;
    border-color: var(--accent);
}

/* Panel Wyników i Wizualizacji */
.results-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.data-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background: var(--bg-light);
    border-radius: 10px;
    font-size: 14px;
    border: 1px solid #ffedd5;
}

.data-row span:first-child {
    color: #64748b;
    font-weight: 600;
}

.data-row span:last-child {
    color: var(--primary);
    font-weight: 800;
    font-size: 16px;
}

.calc-result-box {
    background: var(--primary);
    border-radius: 16px;
    padding: 25px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.calc-result-box::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 150px;
    height: 150px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
}

.result-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 10px;
}

.result-value {
    font-size: 38px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 10px;
}

.result-value span {
    font-size: 18px;
    font-weight: 600;
    color: var(--accent);
}

.visual-density {
    margin-top: 10px;
    height: 60px;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 15px, rgba(234, 88, 12, 0.2) 15px, rgba(234, 88, 12, 0.2) 18px);
    border-radius: 8px;
    border: 1px dashed #fed7aa;
    transition: all 0.3s ease;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
}

@media (max-width: 650px) {
    .results-container { grid-template-columns: 1fr; }
    .toggle-group { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Jak rozstaw rur wpływa na końcowy koszt montażu i efektywność",
    "description": "Zmniejszenie rozstawu rur z 15 cm do 10 cm zwiększa pracochłonność o 33%, podnosząc cenę robocizny za m². Analiza dla standardów WT 2021.",
    "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/podlogowka-cena-za-m2-robocizny/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność zużycia rury od rozstawu pętli",
    "description": "Dane techniczne pokazujące, ile metrów bieżących rury przypada na metr kwadratowy podłogi przy konkretnym zagęszczeniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zużycie przy rozstawie 15 cm",
        "value": "6,7 mb/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Zużycie przy rozstawie 10 cm",
        "value": "10,0 mb/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzrost pracochłonności 15cm vs 10cm",
        "value": "+33%"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator gęstości rur i pracochłonności",
    "applicationCategory": "CalculatorApplication",
    "description": "Narzędzie interaktywne ilustrujące zależność między wybranym rozstawem rur a całkowitym kosztem robocizny i ilością użytego materiału.",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Efektywność vs Koszt
        </div>
        
        <h2>Jak rozstaw rur wpływa na końcowy koszt montażu i efektywność?</h2>
        
        <p class="hero-text">Zmniejszenie rozstawu rur z 15 cm do 10 cm zwiększa pracochłonność montażu o <strong>33%</strong>, co bezpośrednio przekłada się na wzrost ceny robocizny o około 7–10 zł/m². Przy rozstawie 10 cm instalator musi ułożyć 10 metrów bieżących rury na każdy metr kwadratowy, podczas gdy przy rozstawie 15 cm jest to tylko 6,7 metra.</p>
        
        <p class="hero-text">Zwiększona gęstość rur wymaga również większej liczby pętli grzewczych, co oznacza więcej czasu poświęconego na precyzyjne podłączenie rur do sekcji rozdzielacza i ich prawidłowe oznaczenie. Wybór rozstawu rur musi wynikać z obliczeń zapotrzebowania na ciepło (q w W/m²). W nowoczesnym budownictwie o standardzie WT 2021, gdzie zapotrzebowanie wynosi zazwyczaj 30–45 W/m², <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw 15 cm jest wystarczający</a>.</p>

        <h4>Zagęszczenie w strefach brzegowych</h4>
        
        <p class="hero-text">Jednak w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a> (przy dużych przeszkleniach i ścianach zewnętrznych) norma PN-EN 1264 sugeruje zagęszczenie rur do 10 cm lub nawet 7,5 cm, aby zniwelować wpływ mostków termicznych. Dla instalatora oznacza to konieczność częstszego gięcia rur i zachowania minimalnych promieni gięcia (zazwyczaj 5 × średnica rury), co jest procesem żmudnym i podnoszącym koszt usługi.</p>

        <div class="interactive-calc-wrapper">
            <div class="calc-grid">
                
                <div class="calc-control-group">
                    <div class="calc-label">
                        <span>Analizowana Powierzchnia</span>
                        <span class="calc-value-display"><span id="areaValue">100</span> m²</span>
                    </div>
                    <input type="range" id="areaSlider" class="range-slider" min="30" max="250" step="10" value="100">
                </div>
                
                <div class="calc-control-group">
                    <div class="calc-label"><span>Wybierz gęstość ułożenia pętli</span></div>
                    <div class="toggle-group" id="densityToggles">
                        <button class="toggle-btn" data-spacing="20" data-pipe="5" data-rate="32" data-visual="20">
                            Co 20 cm
                            <span class="rate-hint">Pokoje techniczne</span>
                        </button>
                        <button class="toggle-btn active" data-spacing="15" data-pipe="6.7" data-rate="35" data-visual="15">
                            Co 15 cm
                            <span class="rate-hint">Standard (WT2021)</span>
                        </button>
                        <button class="toggle-btn" data-spacing="10" data-pipe="10" data-rate="42" data-visual="10">
                            Co 10 cm
                            <span class="rate-hint">Łazienki / Okna</span>
                        </button>
                    </div>
                    <div class="visual-density" id="densityVisual"></div>
                    <div style="text-align:center; font-size: 11px; color: #94a3b8; margin-top:5px;">Symulacja gęstości rur</div>
                </div>

                <div class="results-container">
                    <div class="data-panel">
                        <div class="data-row">
                            <span>Zużycie rury (na m²)</span>
                            <span id="pipePerSqM">6.7 mb</span>
                        </div>
                        <div class="data-row">
                            <span>Ilość rury (całość)</span>
                            <span id="totalPipe">670 mb</span>
                        </div>
                        <div class="data-row">
                            <span>Pracochłonność względem 15cm</span>
                            <span id="workloadDiff" style="color: #64748b;">100% (Baza)</span>
                        </div>
                    </div>
                    
                    <div class="calc-result-box">
                        <div class="result-label">Koszt Robocizny</div>
                        <div class="result-value" id="totalCost">3 500 <span>zł</span></div>
                        <div style="font-size: 13px; color: #ffedd5; margin-top: 5px;">
                            Przyjęto: <strong id="currentRateLabel">35 zł/m²</strong>
                        </div>
                    </div>
                </div>

            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <div style="font-size: 16px; color: #0f172a; margin-bottom: 10px; font-weight: bold;">Zależność zużycia rury od rozstawu:</div>
            <ul style="color: #475569; line-height: 1.6;">
                <li><strong>Rozstaw 20 cm:</strong> 5 mb rury na 1 m²</li>
                <li><strong>Rozstaw 15 cm:</strong> 6,7 mb rury na 1 m² (Standard)</li>
                <li><strong>Rozstaw 10 cm:</strong> 10 mb rury na 1 m² (Zwiększona pracochłonność)</li>
                <li><strong>Rozstaw 7,5 cm:</strong> 13,3 mb rury na 1 m² (Strefy brzegowe)</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- LOGIKA SYMULATORA GĘSTOŚCI ---
    const areaSlider = document.getElementById('areaSlider');
    const areaValue = document.getElementById('areaValue');
    const totalCostDisplay = document.getElementById('totalCost');
    const densityToggles = document.querySelectorAll('.toggle-btn');
    const currentRateLabel = document.getElementById('currentRateLabel');
    
    const pipePerSqMDisplay = document.getElementById('pipePerSqM');
    const totalPipeDisplay = document.getElementById('totalPipe');
    const workloadDiffDisplay = document.getElementById('workloadDiff');
    const densityVisual = document.getElementById('densityVisual');
    
    let currentArea = 100;
    let currentRate = 35;
    let currentPipe = 6.7;
    let currentSpacingVisual = 15;

    function formatCurrency(number) {
        return new Intl.NumberFormat('pl-PL', { maximumFractionDigits: 0 }).format(number);
    }

    function calculate() {
        const totalCost = currentArea * currentRate;
        const totalPipe = currentArea * currentPipe;
        
        totalCostDisplay.innerHTML = `${formatCurrency(totalCost)} <span>zł</span>`;
        currentRateLabel.textContent = `${currentRate} zł/m²`;
        
        pipePerSqMDisplay.textContent = `${currentPipe.toString().replace('.', ',')} mb`;
        totalPipeDisplay.textContent = `${formatCurrency(totalPipe)} mb`;
        
        // Obliczenia pracochłonności wzgledem 15cm
        if (currentPipe === 6.7) {
            workloadDiffDisplay.textContent = "100% (Baza)";
            workloadDiffDisplay.style.color = "#64748b";
        } else if (currentPipe > 6.7) {
            const diff = Math.round(((currentPipe / 6.7) - 1) * 100);
            workloadDiffDisplay.textContent = `+${diff}% czasu`;
            workloadDiffDisplay.style.color = "#ea580c";
        } else {
            const diff = Math.round((1 - (currentPipe / 6.7)) * 100);
            workloadDiffDisplay.textContent = `-${diff}% czasu`;
            workloadDiffDisplay.style.color = "#16a34a";
        }
        
        // Aktualizacja wizualizacji gęstości
        densityVisual.style.backgroundImage = `repeating-linear-gradient(90deg, transparent, transparent ${currentSpacingVisual}px, rgba(234, 88, 12, 0.6) ${currentSpacingVisual}px, rgba(234, 88, 12, 0.6) ${currentSpacingVisual + 3}px)`;
    }

    if(areaSlider) {
        areaSlider.addEventListener('input', function(e) {
            currentArea = parseInt(e.target.value);
            areaValue.textContent = currentArea;
            calculate();
        });
    }

    densityToggles.forEach(btn => {
        btn.addEventListener('click', function() {
            densityToggles.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            currentRate = parseFloat(this.getAttribute('data-rate'));
            currentPipe = parseFloat(this.getAttribute('data-pipe'));
            currentSpacingVisual = parseInt(this.getAttribute('data-visual'));
            
            calculate();
        });
    });

    calculate(); // Initial run

    // --- 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('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <div style="font-size: 16px; max-width: 500px; color: #9a3412; line-height: 1.5; margin-bottom: 25px;">
                        Ten symulator gęstości rur i pracochłonności jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.
                    </div>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #ea580c; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s; text-transform: uppercase;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; /* Ciepły pomarańczowy, spójny z tematyką ogrzewania */
    --accent-hover: #c2410c;
    --danger: #dc2626;
    --warning: #f59e0b;
    --success: #16a34a;
    --bg-light: #fff7ed;
    --border-color: #fdba74;
}

.premium-anatomy-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(234, 88, 12, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.anatomy-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

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

.anatomy-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.anatomy-header p:last-child {
    margin-bottom: 0;
}

.anatomy-workspace {
    display: flex;
    min-height: 520px;
}

/* LEWA STRONA - ZAKŁADKI / CZYNNIKI */
.anatomy-layers {
    width: 40%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px 20px;
    gap: 12px;
}

.layer-btn {
    position: relative;
    width: 100%;
    padding: 16px;
    border-radius: 12px;
    border: 2px solid #ffedd5;
    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;
}

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

/* Subtelne różnice kolorystyczne dla kategorii */
.layer-btn[data-layer="lokalizacja"]::before { background: #3b82f6; } 
.layer-btn[data-layer="skomplikowanie"]::before { background: #8b5cf6; } 
.layer-btn[data-layer="system"]::before { background: #f59e0b; } 
.layer-btn[data-layer="ekipa"]::before { background: #10b981; } 
.layer-btn[data-layer="zakres"]::before { background: #ef4444; } 

.layer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.05);
    border-color: #fdba74;
}

.layer-btn.layer-active {
    border-color: var(--accent);
    background: #fff7ed;
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.15);
}

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

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

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

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

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

/* PRAWA STRONA - SZCZEGÓŁY WARSTWY */
.anatomy-details {
    width: 60%;
    background: var(--bg-light);
    padding: 40px;
    position: relative;
}

.detail-pane {
    display: none;
    animation: fadeInSlide 0.4s ease-out forwards;
}

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

.detail-pane h4 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.detail-pane ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
}

.detail-pane li {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 10px;
}

.detail-pane a {
    color: var(--accent);
    text-decoration: underline;
    font-weight: 600;
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    margin-top: 20px;
    line-height: 1.6;
}

.highlight-box strong {
    color: var(--primary);
    font-weight: 800;
}

/* Mini interaktywny suwak w panelu 1 */
.mini-slider-container {
    margin-top: 20px;
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #fdba74;
}

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

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

.mini-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--accent);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Co wpływa na ostateczną cenę robocizny podłogówki?",
    "description": "5 kluczowych czynników decydujących o wycenie instalacji ogrzewania podłogowego w 2026 roku: lokalizacja, stopień skomplikowania, technologia, doświadczenie ekipy oraz pełen zakres prac.",
    "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"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Czynniki kosztotwórcze robocizny ogrzewania podłogowego 2026",
    "description": "Zestawienie mnożników i zmiennych wpływających na odchylenia od bazowej stawki za m² układania podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Narzut lokalizacyjny (Warszawa)",
        "value": "+18 do +25%"
      },
      {
        "@type": "PropertyValue",
        "name": "Narzut za skomplikowanie (wiele pomieszczeń)",
        "value": "Wzrost z 0.38 do 0.65 r-g/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Montaż na siatce stalowej",
        "value": "+12% czasu pracy"
      },
      {
        "@type": "PropertyValue",
        "name": "Dopłata za dojazd powyżej 50km",
        "value": "2.5 - 3.5 PLN/km"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Panel analizy czynników wyceny instalacyjnej",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne typu 'anatomy', pozwalające inwestorowi badać wpływ różnych zmiennych projektowych (system, dojazd, ekipa) na ostateczną cenę usług hydraulicznych.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-anatomy-box" id="pricing-factors-app-container">
    
    <div class="anatomy-header">
        <h2>Co wpływa na cenę robocizny oprócz rozstawu?</h2>
        <p>Gdy inwestorzy pytają o to, jaka jest obecnie <strong>podłogówka cena za m² robocizny</strong>, często spodziewają się jednej, sztywnej kwoty. W rzeczywistości stawka w 2026 roku zależy od pięciu zmiennych czynników technicznych i rynkowych, które wyceniam indywidualnie w każdym zleceniu.</p>
    </div>

    <div class="anatomy-workspace">
        
        <div class="anatomy-layers">
            <span style="font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; text-align: center; margin-bottom: 5px;">Eksploruj czynniki wyceny</span>
            
            <button class="layer-btn layer-active" data-target="pane-lokalizacja" data-layer="lokalizacja">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                <div>
                    <div class="layer-title">Lokalizacja Inwestycji</div>
                    <span class="layer-subtitle">Region i Dojazd do klienta</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-skomplikowanie" data-layer="skomplikowanie">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                <div>
                    <div class="layer-title">Stopień Skomplikowania</div>
                    <span class="layer-subtitle">Bryła budynku i ilość pętli</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-system" data-layer="system">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                <div>
                    <div class="layer-title">System Mocowania</div>
                    <span class="layer-subtitle">Spinki vs Tacker vs Płyty</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-ekipa" data-layer="ekipa">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                <div>
                    <div class="layer-title">Doświadczenie Ekipy</div>
                    <span class="layer-subtitle">Gwarancja i profesjonalizm</span>
                </div>
            </button>

            <button class="layer-btn" data-target="pane-zakres" data-layer="zakres">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                <div>
                    <div class="layer-title">Pełen Zakres Prac</div>
                    <span class="layer-subtitle">Dodatki ukryte w wycenie</span>
                </div>
            </button>
        </div>

        <div class="anatomy-details">
            
            <div class="detail-pane pane-active" id="pane-lokalizacja">
                <h4>1. Regionalizacja cen i logistyka</h4>
                <p>Ceny usług instalacyjnych różnią się drastycznie w zależności od województwa. Warszawa centrum to zazwyczaj <strong>+18–25%</strong> względem średniej krajowej. Z kolei wschodnia Polska i małe miejscowości pozwalają oszczędzić od <strong>-5 do -12%</strong>.</p>
                <p>Istotny jest również dojazd. Gdy budowa znajduje się daleko od siedziby firmy, wkraczają dodatkowe koszty logistyczne.</p>
                
                <div class="mini-slider-container">
                    <div class="mini-slider-label">
                        <span>Dystans powyżej 50 km (Dopłata)</span>
                        <span id="travelCostDisplay" style="color: var(--accent);">0 zł</span>
                    </div>
                    <input type="range" id="travelSlider" class="mini-slider" min="0" max="100" step="5" value="0">
                    <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Stawka: 3,00 zł / km. Przesuń suwak, aby sprawdzić dodatkowy koszt transportu ekipy.</div>
                </div>
            </div>

            <div class="detail-pane" id="pane-skomplikowanie">
                <h4>2. Bryła budynku a pracochłonność</h4>
                <p>Metraż to nie wszystko. Czas, w jakim ekipa ułoży instalację, jest mierzony w roboczo-godzinach na metr kwadratowy (r-g/m²).</p>
                <ul>
                    <li><strong>Proste przestrzenie:</strong> Pomieszczenia otwarte (typu open-space) o powierzchni 60 m² to szybka praca: ok. <strong>0,38 r-g/m²</strong>.</li>
                    <li><strong>Skomplikowane układy:</strong> Dom wielopoziomowy, 14 małych pomieszczeń ze skosami, słupami i dwoma rozdzielaczami winduje czas pracy do <strong>0,65 r-g/m²</strong>.</li>
                </ul>
                <div class="highlight-box">
                    Właśnie z powodu architektury, w profesjonalnych cennikach instalatorów widełki za to samo zadanie mogą wynosić <strong>55–80 zł</strong> dla prostych domów, aż po <strong>80–120 zł</strong> dla rozbudowanych projektów deweloperskich.
                </div>
            </div>

            <div class="detail-pane" id="pane-system">
                <h4>3. Technologia przytwierdzania rur</h4>
                <p>Wybór materiałów wpływa bezpośrednio na tempo pracy montera. Każdy system ma swoje wady i zalety finansowe:</p>
                <ul>
                    <li><a href="https://projekt-ogrzewania.pl/spinka-do-styropianu-do-takera/">Spinki do styropianu EPS 100:</a> Jest to metoda najszybsza (ok. 0,42 r-g/m²). Standard w nowoczesnym budownictwie.</li>
                    <li><strong>Siatka stalowa i opaski:</strong> Wymagają o <strong>+12% więcej czasu</strong> (praca ręczna), stosowane częściej w halach przemysłowych.</li>
                    <li><strong>Płyty systemowe (Tacker z wypustkami):</strong> Przyspieszają montaż o <strong>-8% czasu</strong> w stosunku do spinek, jednak wymagają zakupu znacznie droższego podłoża.</li>
                </ul>
            </div>

            <div class="detail-pane" id="pane-ekipa">
                <h4>4. Kompetencje i rzetelność fachowców</h4>
                <p>Tania robocizna potrafi zemścić się w pierwszym sezonie grzewczym. Podłogówka cena za m² robocizny odzwierciedla też jakość narzędzi i gwarancje.</p>
                <div class="highlight-box" style="border-left-color: var(--success);">
                    <strong>Profesjonalna firma (70–85 zł/m² w wyższym standardzie):</strong><br>
                    Posiada certyfikaty producenta rur. Wykonuje udokumentowaną <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbę szczelności (zgodnie z PN-EN 1264-4)</a>. Daje nawet 10 lat gwarancji na swój montaż.
                </div>
                <div class="highlight-box" style="border-left-color: var(--danger); margin-top: 15px;">
                    <strong>Firma &#8222;po taniości&#8221; (50 zł/m²):</strong><br>
                    Często nie posiada nawet manometru cyfrowego. Nie przeprowadza prób ciśnieniowych i znika z placu budowy tuż po zalaniu rur wylewką.
                </div>
            </div>

            <div class="detail-pane" id="pane-zakres">
                <h4>5. Co dokładnie obejmuje umowa?</h4>
                <p>Zanim zaakceptujesz ofertę, upewnij się, co zostało wliczone w bazową stawkę za metr układania. Koszty dodatkowe mogą drastycznie zmienić ostateczny rachunek.</p>
                <ul>
                    <li>Czy w cenie jest osadzenie i montaż <a href="https://projekt-ogrzewania.pl/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafek podtynkowych</a>?</li>
                    <li>Czy umowa przewiduje <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie instalacji</a> (częsty wymóg w budynkach remontowanych)?</li>
                    <li>Zabezpieczenie rur peszlem w miejscach przejść przez dylatacje.</li>
                    <li><strong>Dokumentacja fotograficzna:</strong> W moich projektach wymagam zawsze minimum 12 zdjęć z napełnionym manometrem podczas próby ciśnieniowej.</li>
                </ul>
            </div>

        </div>
    </div>
    
    <noscript>
        <style>
            .detail-pane { display: block !important; margin-bottom: 30px; }
            .mini-slider-container { display: none; }
        </style>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Zestawienie parametrów wyceny:</h3>
            <ul style="color: #475569; line-height: 1.6;">
                <li><strong>Lokalizacja:</strong> Warszawa (+25%), mniejsze miejscowości (-10%). Dopłaty za dojazd powyżej 50km.</li>
                <li><strong>Skomplikowanie:</strong> Otwarte salony (taniej) vs małe pokoje z dużą liczbą załamań (drożej).</li>
                <li><strong>System:</strong> Spinki EPS to standard. Płyty systemowe są szybsze, ale droższe w materiale.</li>
                <li><strong>Gwarancje:</strong> Droższe ekipy wykonują próby ciśnieniowe zgodne z normami.</li>
                <li><strong>Zakres ukryty:</strong> Upewnij się, że w cenie jest szafka podtynkowa i dokumentacja foto.</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
function initPricingFactorsTabs() {
    // --- 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 lockContainer = document.getElementById('pricing-factors-app-container');
        if (lockContainer) {
            lockContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <div style="font-size: 16px; max-width: 500px; color: #9a3412; line-height: 1.5; margin-bottom: 25px;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został wdrożony nielegalnie.</div>
                    <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/" style="padding: 14px 28px; background: #ea580c; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s; text-transform: uppercase;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
        return; 
    }

    const appContainer = document.getElementById('pricing-factors-app-container');
    if (!appContainer) return;

    // --- LOGIKA ZAKŁADEK ---
    const layerBtns = appContainer.querySelectorAll('.layer-btn');
    const panes = appContainer.querySelectorAll('.detail-pane');

    layerBtns.forEach(function(button) {
        button.addEventListener('click', function(e) {
            e.preventDefault(); 
            layerBtns.forEach(function(btn) { btn.classList.remove('layer-active'); });
            panes.forEach(function(pane) { pane.classList.remove('pane-active'); });
            
            this.classList.add('layer-active');
            const targetId = this.getAttribute('data-target');
            const targetPane = appContainer.querySelector('#' + targetId);
            if(targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });

    // --- LOGIKA MINI-KALKULATORA DOJAZDU ---
    const travelSlider = document.getElementById('travelSlider');
    const travelCostDisplay = document.getElementById('travelCostDisplay');
    
    if (travelSlider && travelCostDisplay) {
        travelSlider.addEventListener('input', function() {
            const distance = parseInt(this.value);
            const ratePerKm = 3.0; // średnio 3 zł/km dopłaty
            const cost = distance * ratePerKm;
            travelCostDisplay.textContent = `+ ${cost.toFixed(0)} zł`;
        });
    }
}

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



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #ea580c; 
    --bg-tip: #fff7ed; 
}

.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;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.05);
}

.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(234, 88, 12, 0.15);
}

.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);
    border: 1px solid #fdba74;
}

.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-text strong {
    color: var(--accent-hvac);
    font-weight: 800;
}

.expert-tip-text a {
    color: var(--accent-hvac);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
    font-style: normal;
}

.expert-tip-text a:hover {
    color: #c2410c;
}

.expert-tip-signature {
    display: block;
    margin-top: 15px;
    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": "Gdy inwestorzy pytają mnie o to, ile ostatecznie wyniesie ich cena za metr kwadratowy robocizny przy układaniu podłogówki, zawsze powtarzam jedną zasadę: patrzcie na projekt, nie na suche stawki. Najtańszy monter rzucający rurę 'na oko' z reguły pomija koszty dylatacji przyściennych i kluczowej próby ciśnieniowej, co kończy się aneksami. Z mojego doświadczenia jako projektanta instalacji wynika, że rzetelne obliczenia OZC pozwalają zoptymalizować układ pętli i zredukować koszty wykonawcze o 10–15%, a przede wszystkim gwarantują, że wylewka nie popęka po pierwszym uruchomieniu pompy ciepła.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Ekspercka optymalizacja kosztów robocizny",
    "description": "Zestawienie inżynierskich zasad wpływających na redukcję rynkowej ceny za wykonanie ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Redukcja kosztów wykonawczych z projektem",
        "value": "10-15%"
      },
      {
        "@type": "PropertyValue",
        "name": "Eliminowane ryzyka",
        "value": "Brak dylatacji, przewymiarowanie, brak próby ciśnieniowej"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o kosztach i błędach</h2>
    
    <div class="expert-tip-container" id="expert-tip-pricing">
        <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 - Główny Projektant" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka Projektanta</span>
            <p class="expert-tip-text">
                &#8222;Gdy inwestorzy pytają mnie o to, ile ostatecznie wyniesie ich <strong>cena za metr kwadratowy robocizny przy układaniu podłogówki</strong>, zawsze powtarzam jedną zasadę: patrzcie na projekt, nie na suche stawki. Najtańszy monter rzucający rurę 'na oko&#8217; z reguły pomija koszty dylatacji przyściennych i kluczowej próby ciśnieniowej, co kończy się aneksami do umowy. Z mojego doświadczenia jako <a href="https://projekt-ogrzewania.pl/author/admin3399/">głównego projektanta instalacji</a> wynika, że rzetelne obliczenia pozwalają zoptymalizować rozstaw rur, co często redukuje ostateczne koszty wykonawcze o 10–15%, a przede wszystkim daje gwarancję, że wylewka nie popęka po odpaleniu ogrzewania.&#8221;
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO &#038; Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fff7ed; border-radius: 20px; margin-top: 20px; font-family: sans-serif; border: 1px solid #fdba74;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Prawidłowa cena robocizny za m² musi wynikać z projektu. Montaż &#8222;na oko&#8221; i najtańsze wyceny to ryzyko braku dylatacji i prób szczelności. Projekt pozwala oszczędzić 10-15% na kosztach materiałów i robociźnie instalatora.</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-pricing');
        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; display: block;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d; margin: 0;">Osobista rekomendacja ekspercka Roberta Kucharskiego jest własnością serwisu Projekt-Ogrzewania.pl i została skopiowana nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
            container.style.boxShadow = 'none';
        }
    }
});
</script>



<p class="wp-block-paragraph"></p>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; 
    --accent-hover: #c2410c;
    --success: #16a34a;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

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

/* Sekcja Nagłówka i Steppera */
.calc-intro-section {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

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

.calc-intro-text {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    margin-bottom: 25px;
}

/* Przyjazny Blok Wzoru */
.friendly-formula-box {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid #fdba74;
    box-shadow: 0 4px 6px -1px rgba(234, 88, 12, 0.05);
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
}

.friendly-formula-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 6px;
    background: var(--accent);
}

.friendly-formula-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--accent);
    text-transform: uppercase;
    margin-bottom: 15px;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.friendly-formula-math {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.math-badge {
    background: var(--bg-light);
    border: 1px solid #fed7aa;
    padding: 8px 14px;
    border-radius: 8px;
    color: #475569;
}

.math-badge strong {
    color: var(--primary);
    font-weight: 800;
}

.math-operator {
    color: #94a3b8;
    font-size: 20px;
}

.math-explanation {
    margin-top: 15px;
    font-size: 14px;
    color: #64748b;
    line-height: 1.6;
    border-top: 1px dashed #e2e8f0;
    padding-top: 15px;
}

/* Interaktywny Stepper */
.stepper-logic {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.step-item {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 18px 20px;
    cursor: pointer;
    transition: all 0.3s;
    background: #fafaf9;
}

.step-item:hover {
    border-color: #fdba74;
    background: #ffffff;
}

.step-item.active {
    background: #ffffff;
    border-color: var(--accent);
    box-shadow: 0 8px 20px rgba(234, 88, 12, 0.08);
}

.step-top {
    display: flex;
    align-items: center;
    gap: 15px;
}

.step-num {
    width: 28px;
    height: 28px;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13px;
    transition: all 0.3s;
}

.step-item.active .step-num { background: var(--accent); color: #fff; }

.step-title { font-weight: 700; font-size: 15px; flex: 1; color: var(--primary); }

.step-toggle-icon {
    color: #94a3b8;
    transition: transform 0.3s;
}

.step-item.active .step-toggle-icon {
    transform: rotate(180deg);
    color: var(--accent);
}

.step-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, margin-top 0.4s;
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
}

.step-item.active .step-body { max-height: 250px; margin-top: 12px; }

.step-formula-tag {
    display: inline-block;
    background: var(--bg-light);
    color: var(--accent);
    padding: 6px 12px;
    border-radius: 6px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    font-size: 13px;
    margin-top: 8px;
    border: 1px dashed #fdba74;
}

/* Sekcja Robocza Kalkulatora */
.calc-main-header { padding: 40px 50px 0 50px; background: #fff; }
.calc-main-header h3 { font-size: 22px; font-weight: 800; margin: 0; color: var(--primary); }

.calc-workspace {
    display: flex;
    flex-wrap: wrap;
    background: #ffffff;
}

.calc-inputs {
    flex: 1.2;
    min-width: 320px;
    padding: 30px 50px 40px 50px;
}

.calc-outputs {
    flex: 0.8;
    min-width: 320px;
    padding: 30px 50px 40px 50px;
    background: #fafaf9;
    border-left: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.input-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
    color: var(--primary);
}

.input-val-box { color: var(--accent); font-size: 16px; }

.range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #ffedd5;
    border-radius: 4px;
    outline: none;
}

.range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    background: var(--accent);
    border-radius: 50%;
    cursor: pointer;
    border: 3px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: transform 0.2s;
}

.range-input::-webkit-slider-thumb:hover { transform: scale(1.15); }

.selector-group { display: flex; gap: 8px; }

/* POPRAWKA KOLORU NA PRZYCISKU */
.selector-btn {
    flex: 1;
    padding: 12px;
    border-radius: 10px;
    border: 2px solid #ffedd5;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary); /* Dodano wyraźny granatowy kolor */
    cursor: pointer;
    transition: 0.2s;
}

.selector-btn:hover:not(.active) {
    border-color: var(--accent);
    background: var(--bg-light);
}

.selector-btn.active { 
    background: var(--accent); 
    border-color: var(--accent); 
    color: #fff; 
}

/* Karty Wyników */
.res-card {
    background: #fff;
    padding: 18px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.res-icon { 
    width: 44px; height: 44px; 
    background: var(--bg-light); 
    color: var(--accent); 
    border-radius: 10px; 
    display: flex; align-items: center; justify-content: center; 
    flex-shrink: 0; 
}

.res-info { display: flex; flex-direction: column; }
.res-lbl { font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; margin-bottom: 3px; }
.res-val { font-size: 22px; font-weight: 900; color: var(--primary); }

.total-card { background: var(--primary); border: none; padding: 25px; }
.total-card .res-icon { background: rgba(255,255,255,0.1); color: #fff; }
.total-card .res-lbl { color: #94a3b8; }
.total-card .res-val { color: #fff; font-size: 32px; }
.total-card .res-val span { color: var(--accent); font-size: 18px; }

/* CTA */
.calc-cta-footer {
    padding: 40px 50px;
    text-align: center;
    background: linear-gradient(135deg, var(--bg-light) 0%, #ffffff 100%);
    border-top: 1px solid var(--border-color);
}

.calc-cta-footer h4 { font-size: 22px; font-weight: 900; color: var(--primary); margin: 0 0 15px 0; }
.calc-cta-footer p { font-size: 15px; color: #475569; margin: 0 auto 25px auto; max-width: 600px; line-height: 1.6; }

.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--accent);
    color: #fff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: 0.3s;
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.4);
}

.cta-btn:hover { background: var(--accent-hover); transform: translateY(-3px); color: #fff; }

@media (max-width: 800px) {
    .calc-intro-section, .calc-main-header, .calc-inputs, .calc-outputs, .calc-cta-footer { padding: 30px 25px; }
    .calc-outputs { border-left: none; border-top: 1px solid var(--border-color); }
    .friendly-formula-math { flex-direction: column; align-items: flex-start; gap: 5px; }
    .math-operator { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Algorytm wyceny robocizny ogrzewania podłogowego 2026",
    "description": "Profesjonalny algorytm obliczania kosztów montażu podłogówki. Zestawienie krok po kroku oraz interaktywny kalkulator inżynierski.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "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" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Inżynierski Kalkulator Robocizny Podłogówki",
    "applicationCategory": "CalculatorApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "operatingSystem": "All",
    "description": "Narzędzie do precyzyjnego wyliczania kosztów wykonawczych instalacji grzewczych w oparciu o algorytm netto/brutto i współczynniki skomplikowania."
  }
]
</script>

<div class="premium-calc-container" id="main-engineer-app">
    
    <div class="calc-intro-section">
        <h2>Algorytm wyceny i kalkulacji kosztów robocizny</h2>
        <p class="calc-intro-text">Wycena instalacji to nie zgadywanka z metrażu budynku. Opieram ją zawsze o precyzyjny wzór inżynierski, który uwzględnia wszystkie zmienne układu.</p>
        
        <div class="friendly-formula-box">
            <div class="friendly-formula-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                Wzór na ostateczny koszt
            </div>
            
            <div class="friendly-formula-math">
                <span class="math-badge"><strong>Całkowita Robocizna</strong></span> 
                <span class="math-operator">=</span> 
                <span class="math-badge">Σ (Metraż × Stawka)</span> 
                <span class="math-operator">+</span> 
                <span class="math-badge">Rozdzielacz</span> 
                <span class="math-operator">+</span> 
                <span class="math-badge">Próba ciśnieniowa</span>
            </div>
            
            <div class="math-explanation">
                <strong>Jak to czytać?</strong> Zamiast strzelać stawką w ciemno, sumujemy (Σ) koszty ułożenia pętli dla poszczególnych stref (w zależności od gęstości rur), a do tego dodajemy stałe koszty montażu rozdzielacza i wykonania udokumentowanej próby szczelności.
            </div>
        </div>

        <div class="stepper-logic">
            <div class="step-item active">
                <div class="step-top">
                    <div class="step-num">1</div>
                    <div class="step-title">Wyznaczenie powierzchni netto</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Odejmujemy powierzchnie pod stałą zabudową, taką jak wyspy kuchenne, wanny czy szafy wnękowe. Pod nimi nie układamy rur grzewczych, więc nie płacisz za ich montaż.
                    <br><span class="step-formula-tag">A_netto = Metraż całkowity – Zabudowa</span>
                </div>
            </div>
            <div class="step-item">
                <div class="step-top">
                    <div class="step-num">2</div>
                    <div class="step-title">Obliczanie długości rur i pętli</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Przy standardowym rozstawie 15 cm mnożymy metraż netto przez współczynnik zagęszczenia (6,7). Całość dzielimy na pętle grzewcze, z których żadna nie powinna przekraczać 85-100 mb.
                    <br><span class="step-formula-tag">Liczba pętli = (A_netto × 6,7 × 1,05) / 85 mb</span>
                </div>
            </div>
            <div class="step-item">
                <div class="step-top">
                    <div class="step-num">3</div>
                    <div class="step-title">Korekta o stopień skomplikowania</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Jeśli na 100 m² przypada więcej niż 5 oddzielnych pomieszczeń, doliczamy współczynnik skomplikowania (1,15) za utrudniony montaż, liczne dylatacje przyścienne i ciasne podejścia.
                </div>
            </div>
        </div>
    </div>

    <div class="calc-main-header">
        <h3>Interaktywny Kalkulator Robocizny 2026</h3>
    </div>
    
    <div class="calc-workspace">
        <div class="calc-inputs">
            <div class="input-group">
                <div class="input-label"><span>Powierzchnia całkowita</span> <span class="input-val-box"><span id="lblTotal">140</span> m²</span></div>
                <input type="range" id="rngTotal" class="range-input" min="50" max="250" value="140">
            </div>
            <div class="input-group">
                <div class="input-label"><span>Powierzchnia pod zabudowę</span> <span class="input-val-box"><span id="lblBuild">15</span> m²</span></div>
                <input type="range" id="rngBuild" class="range-input" min="0" max="50" value="15">
            </div>
            <div class="input-group">
                <div class="input-label"><span>Liczba pomieszczeń</span> <span class="input-val-box"><span id="lblRooms">6</span> szt.</span></div>
                <input type="range" id="rngRooms" class="range-input" min="2" max="15" value="6">
            </div>
            <div class="input-group" style="margin-bottom: 0;">
                <div class="input-label"><span>Rozstaw rur (Większość domu)</span></div>
                <div class="selector-group" id="densityPick">
                    <button class="selector-btn" data-density="10" data-rate="42">Co 10 cm</button>
                    <button class="selector-btn active" data-density="6.7" data-rate="35">Co 15 cm</button>
                </div>
            </div>
        </div>

        <div class="calc-outputs">
            <div class="res-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="M3 9h18"></path><path d="M9 21V9"></path></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Powierzchnia Netto</span>
                    <span class="res-val" id="resNet">125 m²</span>
                </div>
            </div>
            <div class="res-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Długość rur / Obwody</span>
                    <span class="res-val" id="resPipe">879 mb / 11 szt.</span>
                </div>
            </div>
            <div class="res-card total-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Suma za robociznę</span>
                    <span class="res-val" id="resTotal">5 675 <span>zł</span></span>
                </div>
            </div>
        </div>
    </div>

    <div class="calc-cta-footer">
        <h4>Projekt eliminuje błędy wyceny i awarie.</h4>
        <p>Brak projektu instalacji powoduje zgadywanie przepływów, zaniżanie pierwotnych wycen i późniejsze kosztowne aneksowanie umów z instalatorami. Zabezpiecz się przed nieuczciwymi wykonawcami.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Zamów Profesjonalny Projekt
        </a>
    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <p><strong>Zależności kosztowe:</strong> Rozstaw 15 cm to standardowa stawka rynkowa (ok. 35 zł/m²), z kolei rozstaw 10 cm, ze względu na większą gęstość i trudność układania rury, kosztuje ok. 42 zł/m².</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- STEPPER LOGIC ---
    const steps = document.querySelectorAll('.step-item');
    steps.forEach(s => {
        s.addEventListener('click', () => {
            steps.forEach(x => { if (x !== s) x.classList.remove('active'); });
            s.classList.toggle('active');
        });
    });

    // --- CALC LOGIC ---
    const rngT = document.getElementById('rngTotal'), rngB = document.getElementById('rngBuild'), rngR = document.getElementById('rngRooms');
    const lblT = document.getElementById('lblTotal'), lblB = document.getElementById('lblBuild'), lblR = document.getElementById('lblRooms');
    const rNet = document.getElementById('resNet'), rPipe = document.getElementById('resPipe'), rTotal = document.getElementById('resTotal');
    const densityBtns = document.querySelectorAll('#densityPick .selector-btn');

    let density = 6.7, rate = 35;

    function update() {
        let total = parseInt(rngT.value), build = parseInt(rngB.value), rooms = parseInt(rngR.value);
        
        // Zabezpieczenie przed ujemnym netto
        if(build >= total) {
            build = total - 5;
            rngB.value = build;
        }

        lblT.innerText = total; lblB.innerText = build; lblR.innerText = rooms;

        const net = total - build;
        const pipe = Math.ceil(net * density * 1.05);
        const loops = Math.ceil(pipe / 85);
        
        const complexityRatio = rooms / (total / 100);
        const complexity = complexityRatio > 5 ? 1.15 : 1.0;
        
        // Koszty = (Baza) + (Podłączenie Pętli) + (Stałe: rozdzielacz + próba 750zł)
        const totalCost = Math.round((net * rate * complexity) + (loops * 50) + 750);

        rNet.innerText = net + ' m²';
        rPipe.innerText = pipe + ' mb / ' + loops + ' szt.';
        rTotal.innerHTML = new Intl.NumberFormat('pl-PL').format(totalCost) + ' <span>zł</span>';
    }

    [rngT, rngB, rngR].forEach(el => el.addEventListener('input', update));
    
    densityBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            densityBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            density = parseFloat(btn.dataset.density);
            rate = parseInt(btn.dataset.rate);
            update();
        });
    });

    update(); // Init

    // --- DOMAIN LOCK ---
    const d = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(d)) {
        document.getElementById('main-engineer-app').innerHTML = '<div style="padding: 80px 20px; text-align: center; background: #fff7ed; color: #ea580c; font-weight: 800; border-radius: 24px; font-size: 18px;">🔒 Treść chroniona prawem autorskim serwisu Projekt-Ogrzewania.pl. Prosimy o usunięcie kodu z tej domeny.</div>';
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-step1: #16a34a; /* Kolor zielony dla kosztorysu */
    --cs-step2: #ea580c; /* Kolor pomarańczowy dla hydrauliki */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

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

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

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

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

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

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

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

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

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

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

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

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

.cs-lead-text a {
    color: var(--cs-accent);
    text-decoration: underline;
    font-weight: 600;
}

/* Bloki z wyliczeniami w tekscie */
.cs-calc-block {
    background: #f8fafc;
    border: 1px solid var(--cs-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
}

.cs-calc-block ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: none;
}

.cs-calc-block li {
    margin-bottom: 10px;
    font-size: 15px;
    color: var(--cs-text);
    position: relative;
}

.cs-calc-block li::before {
    content: '→';
    position: absolute;
    left: -20px;
    color: var(--cs-accent);
    font-weight: bold;
}

.cs-calc-block li strong { color: var(--cs-primary); }

.cs-calc-highlight {
    background: #eff6ff;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    border-left: 4px solid var(--cs-accent);
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 600;
}

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

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

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

/* ================= 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;
    display: flex;
    flex-direction: column;
}

.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

.cs-split-card.step1.active {
    border-color: var(--cs-step1);
    background: #f0fdf4;
    box-shadow: 0 10px 25px rgba(22, 163, 74, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.step2.active {
    border-color: var(--cs-step2);
    background: #fff7ed;
    box-shadow: 0 10px 25px rgba(234, 88, 12, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

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

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

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 14px;
    line-height: 1.6;
    display: none;
}

.cs-split-card.step1 .cs-card-solution { color: #14532d; }
.cs-split-card.step2 .cs-card-solution { color: #7c2d12; }

.cs-card-solution ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: square;
}

.cs-card-solution li { margin-bottom: 8px; }
.cs-card-solution code { font-weight: 800; font-family: 'Inter', sans-serif; background: rgba(255,255,255,0.5); padding: 2px 6px; border-radius: 4px;}

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

/* ================= CTA ================= */
.cs-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    padding: 35px 50px;
    text-align: center;
    border-top: 1px solid var(--cs-border);
}

.cs-cta-box h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0 0 10px 0;
}

.cs-cta-box p {
    font-size: 15px;
    color: #475569;
    margin: 0 auto 20px auto;
    max-width: 600px;
}

.cs-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-accent);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.cs-cta-button:hover {
    background: #1e3a8a;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

@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-cta-box { padding: 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

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

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
        "description": "Szczegółowa analiza kosztów robocizny ogrzewania podłogowego oraz inżynieryjne wyliczenia nastaw rotametrów dla domu o powierzchni 140 m².",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wycena robocizny w podziale na strefy grzewcze",
          "Obliczenia błędów wycen zryczałtowanych",
          "Inżynierskie obliczenia przepływu i nastawy rotametrów"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Realne dane z projektu instalacji (Luty 2026)",
        "description": "Zestawienie parametrów projektowych, finansowych i hydraulicznych użytych do analizy błędów wykonawczych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt całkowity (rzeczywisty)",
            "value": "10 524 PLN"
          },
          {
            "@type": "PropertyValue",
            "name": "Błąd wyceny ryczałtowej (65 zł/m²)",
            "value": "-13.5%"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc instalacji (Q)",
            "value": "11.5 kW"
          },
          {
            "@type": "PropertyValue",
            "name": "Nastawa rotametru (na pętlę)",
            "value": "3.3 l/min"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Kalkulacja z Projektu</div>
        <h2>Jak policzyć całkowity koszt robocizny ogrzewania podłogowego</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Dom pow. netto</span>
                <span class="cs-stat-value">140 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Koszt całkowity</span>
                <span class="cs-stat-value">10 524 zł</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Błąd wyceny &#8222;na oko&#8221;</span>
                <span class="cs-stat-value" style="color: #fca5a5;">-13,5%</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Nastawa rotametru</span>
                <span class="cs-stat-value">3,3 l/min</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Całkowity koszt robocizny liczysz <strong>z projektu, a nie z metrażu budynku</strong>. Wykonawcy, którzy dają jedną uśrednioną cenę, niemal zawsze dopisują później aneksy do umowy. Poniżej przedstawiam konkretny przykład z lutego 2026 roku (Dom Pana Marka), oparty na autorskim wzorze: <strong>K_rob = Σ (A_i × C_Ti) + K_rozdz + K_proba</strong>.</p>
        
        <div class="cs-calc-block">
            <ul>
                <li><strong>A1 (Strefy otwarte):</strong> 92 m², rozstaw 150 mm, stawka 65 zł/m² <strong>→ 5 980 zł</strong></li>
                <li><strong>A2 (Łazienki, okna):</strong> 28 m², rozstaw zagęszczony 100 mm, stawka 78 zł/m² <strong>→ 2 184 zł</strong></li>
                <li><strong>A3 (Sypialnie):</strong> 20 m², rozstaw 200 mm, stawka 58 zł/m² <strong>→ 1 160 zł</strong></li>
                <li><strong>K_rozdz (Rozdzielacze):</strong> 2 szt. × 450 zł <strong>→ 900 zł</strong></li>
                <li><strong>K_proba (Szczelność):</strong> Próba 6 bar + protokół <strong>→ 300 zł</strong></li>
            </ul>
            <div class="cs-calc-highlight">
                Razem: 10 524 zł, czyli średnio 75,2 zł/m². Gdyby instalator przyjął ryczałtem &#8222;atrakcyjne&#8221; 65 zł/m² dla całości, wyceniłby to na 9 100 zł. Różnica? Ponad 13% błędu, który odbiłby się na jakości materiałów lub aneksach.
            </div>
        </div>

        <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><strong>Robert Kucharski:</strong> &#8222;Rozkładamy koszty i hydraulikę na czynniki pierwsze. Kliknij w karty poniżej, aby zobaczyć jak krok po kroku tworzymy algorytm wyceny i – co najważniejsze – jak liczymy przepływy do precyzyjnego ustawienia pętli.&#8221;</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card step1 active" id="cs-btn-step1">
                <div class="cs-card-header">
                    <span class="cs-card-icon">📋</span>
                    <h3 class="cs-card-title">7 Kroków Kalkulacji</h3>
                </div>
                <p class="cs-card-desc">Nie zgaduj. Policz w 7 krokach, dokładnie tak, jak liczę to w biurze dla każdego zlecenia.</p>
                <div class="cs-card-solution">
                    <ul>
                        <li><strong>Krok 1:</strong> Policz zapotrzebowanie. <code>Q_obl = Q_OZC × 1,15</code>. Dla 140 m² po OZC Q = 9,8 kW → 11,27 kW.</li>
                        <li><strong>Krok 2:</strong> Podziel na strefy. Salon 35 m², strata 2450 W → wymóg 70 W/m².</li>
                        <li><strong>Krok 3:</strong> Dobierz rozstaw. Z tabeli dla q 70 W/m² i ΔϑH 12K → rozstaw 150 mm.</li>
                        <li><strong>Krok 4:</strong> Policz długość rury. <code>L = A / T × 1,1</code>. Dla salonu to 257 mb.</li>
                        <li><strong>Krok 5:</strong> Podziel na pętle. Maksimum to 110 m → 257 / 110 = 2,34 → czyli 3 pętle.</li>
                        <li><strong>Krok 6:</strong> Przypisz stawkę rynkową. Dla rozstawu 150 mm (65 zł/m²) salon kosztuje nas 2 275 zł.</li>
                        <li><strong>Krok 7:</strong> Dodaj stałe. Rozdzielacz (450 zł), dojazd (120 zł), próba (300 zł). Suma to zwykle widełki 9 500–12 500 zł.</li>
                    </ul>
                </div>
            </div>

            <div class="cs-split-card step2" id="cs-btn-step2">
                <div class="cs-card-header">
                    <span class="cs-card-icon">💧</span>
                    <h3 class="cs-card-title">Obliczenia Przepływów</h3>
                </div>
                <p class="cs-card-desc">Trzecie wyliczenie z projektu, które zawsze robię. To parametr, który monter ustawia w ramach robocizny, a bez projektu – po prostu zgaduje.</p>
                <div class="cs-card-solution">
                    <p style="margin-top:0;">Podstawą prawidłowo ułożonej podłogówki jest ustawienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
                    <ul>
                        <li><strong>Krok 1: Wzór bazowy.</strong> Przepływ masowy liczymy ze wzoru: <code>m = Q / (1,163 × ΔT)</code></li>
                        <li><strong>Krok 2: Całkowity zład.</strong> Przy mocy instalacji Q = 11,5 kW i zakładanym spadku temperatury ΔT = 5 K, przepływ całkowity wynosi: 11,5 / (1,163 × 5) = <strong>1,98 m³/h</strong>.</li>
                        <li><strong>Krok 3: Przepływ na rotametrze.</strong> Otrzymany wynik dzielimy na 10 pętli w domu. Daje to 0,198 m³/h na pętlę.</li>
                        <li><strong>Wynik:</strong> Po przeliczeniu jednostek, monter musi ustawić rotametr na około <strong>3,3 l/min</strong>. Dzięki temu <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> precyzyjnie zasili każdy układ.</li>
                    </ul>
                </div>
            </div>

        </div>
    </div>

    <div class="cs-cta-box">
        <h4>Nie ryzykuj błędów monterskich i zaniżonych wycen.</h4>
        <p>Projekt ogrzewania podłogowego chroni Cię przed instalatorami, którzy narzucają jedną cenę za m², a potem domagają się dopłat. Zyskujesz pewność co do ilości rury, nastaw przepływu i wielkości rozdzielaczy.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cs-cta-button">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Zamów Profesjonalny Projekt
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (bez tagów Hx)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-calc-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <div style="margin: 0 0 10px 0; font-size: 20px; font-weight: bold;">Studium Przypadku Chronione</div>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel informacyjny 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 cardStep1 = document.getElementById('cs-btn-step1');
    const cardStep2 = document.getElementById('cs-btn-step2');

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

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



<style>
:root {
    --ppm-primary: #0f172a;
    --ppm-accent: #ea580c;
    --ppm-accent-hover: #c2410c;
    --ppm-bg: #ffffff;
    --ppm-light: #fff7ed;
    --ppm-border: #fdba74;
    --ppm-text: #475569;
    --ppm-danger: #ef4444;
    --ppm-success: #10b981;
}

.premium-project-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--ppm-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(234, 88, 12, 0.1);
    border: 1px solid var(--ppm-border);
    overflow: hidden;
}

/* --- HEADER I TREŚĆ --- */
.ppm-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--ppm-light));
    border-bottom: 1px solid var(--ppm-border);
}

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

.ppm-text-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--ppm-text);
    margin: 0 0 15px 0;
}

.ppm-text-content strong { color: var(--ppm-primary); }
.ppm-text-content a { color: var(--ppm-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* --- SEKCJA INTERAKTYWNA (Aplikacja) --- */
.ppm-app-section {
    padding: 35px 45px;
    background: #ffffff;
}

.ppm-app-section h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--ppm-primary);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Suwak (Slider) */
.ppm-slider-container {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
}

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

.ppm-slider-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--ppm-primary);
}

.ppm-slider-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--ppm-accent);
}

.ppm-range-input {
    width: 100%;
    accent-color: var(--ppm-accent);
    cursor: pointer;
}

.ppm-result-box {
    margin-top: 20px;
    background: #eff6ff;
    border-left: 4px solid #3b82f6;
    padding: 15px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.ppm-result-box svg { flex-shrink: 0; color: #3b82f6; }
.ppm-result-text { font-size: 14px; color: #1e3a8a; line-height: 1.5; margin: 0; }
.ppm-result-text strong { font-size: 18px; display: block; margin-top: 5px; }

/* Przełącznik (Toggle) */
.ppm-toggle-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.ppm-toggle-switch {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 50px;
    padding: 4px;
    position: relative;
    cursor: pointer;
    user-select: none;
}

.ppm-toggle-option {
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.ppm-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    width: calc(50% - 4px);
    height: calc(100% - 8px);
    background: #ffffff;
    border-radius: 40px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.ppm-toggle-container.active-right .ppm-toggle-slider {
    transform: translateX(100%);
}

.ppm-toggle-container.active-right .ppm-toggle-option:nth-child(1) { color: #64748b; }
.ppm-toggle-container.active-right .ppm-toggle-option:nth-child(2) { color: var(--ppm-primary); }
.ppm-toggle-container:not(.active-right) .ppm-toggle-option:nth-child(1) { color: var(--ppm-primary); }

.ppm-scenario-card {
    width: 100%;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    transition: all 0.3s;
}

.ppm-scenario-bad {
    background: #fef2f2;
    border-color: #fca5a5;
    display: block;
}

.ppm-scenario-good {
    background: #ecfdf5;
    border-color: #6ee7b7;
    display: none;
}

.ppm-toggle-container.active-right .ppm-scenario-bad { display: none; }
.ppm-toggle-container.active-right .ppm-scenario-good { display: block; animation: fadeIn 0.4s; }

.ppm-scenario-card h4 { margin: 0 0 10px 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.ppm-scenario-bad h4 { color: #991b1b; }
.ppm-scenario-good h4 { color: #065f46; }

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

/* --- CTA --- */
.ppm-cta-section {
    background: var(--ppm-primary);
    padding: 40px 45px;
    text-align: center;
}

.ppm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--ppm-accent);
    color: #ffffff;
    padding: 16px 36px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
    box-shadow: 0 10px 20px rgba(234, 88, 12, 0.3);
}

.ppm-btn:hover {
    background: var(--ppm-accent-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px rgba(234, 88, 12, 0.4);
}

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

@media (max-width: 768px) {
    .ppm-header-area, .ppm-app-section, .ppm-cta-section { padding: 30px 25px; }
    .ppm-toggle-switch { width: 100%; display: flex; }
    .ppm-toggle-option { flex: 1; text-align: center; padding: 10px 0; }
    .ppm-btn { width: 100%; padding: 16px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article-costs",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator"
      },
      "headline": "Jak projekt ogrzewania podłogowego wpływa na realne koszty?",
      "description": "Profesjonalny projekt OZC redukuje koszty robocizny o 10-15%. Kalkulator doboru pompy obiegowej i wytyczne dotyczące dylatacji (norma PN-EN 1264).",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "keywords": [
        "projekt ogrzewania podłogowego koszty",
        "obliczenia OZC podłogówka",
        "dylatacje ogrzewanie podłogowe norma",
        "dobór pompy obiegowej podłogówka",
        "oszczędności na robociźnie z projektem"
      ],
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/author/admin3399/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-05-03",
      "dateModified": "2026-05-03",
      "about": [
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-ozc" },
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator" }
      ]
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-ozc",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article-costs" },
      "name": "Wpływ obliczeń OZC i dylatacji na koszty instalacji podłogowej",
      "description": "Zestawienie twardych danych inżynieryjnych: redukcja kosztów, wymiary pól dylatacyjnych i wymagania przepływu masowego.",
      "measurementTechnique": "Analiza normy PN-EN 1264 oraz inżynierskie obliczenia hydrauliczne dla pompy obiegowej (wzór Q / 1.163 * ΔT)",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "variableMeasured": [
        { "@type": "PropertyValue", "name": "Redukcja kosztów robocizny (z projektem OZC)", "value": "10-15%" },
        { "@type": "PropertyValue", "name": "Maksymalne pole bez dylatacji", "value": "40 m² (lub bok 8 m)" },
        { "@type": "PropertyValue", "name": "Wymagany przepływ (dla 11.5 kW i ΔT 5K)", "value": "1.98 m³/h" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator",
      "name": "Symulator Oszczędności i Przepływów Hydraulicznych",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "All",
      "browserRequirements": "Requires JavaScript",
      "description": "Interaktywne narzędzie obliczające wymagany przepływ na pompie obiegowej na podstawie mocy budynku oraz obrazujące ryzyko braku dylatacji.",
      "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
    }
  ]
}
</script>

<div class="premium-project-module" id="ppm-main-app">
    
    <div class="ppm-header-area">
        <h2>Jak projekt ogrzewania podłogowego wpływa na realne koszty?</h2>
        <p class="ppm-text-content">Profesjonalny projekt wykonany w oparciu o dokładne <a href="https://projekt-ogrzewania.pl/ozc-obliczenie-zapotrzebowania-cieplnego-budynku/">obliczenia OZC</a> (Obciążenie Cieplne Budynku) pozwala <strong>zredukować koszty robocizny o 10–15%</strong> dzięki całkowitemu wyeliminowaniu błędów instalacyjnych na budowie.</p>
        
        <p class="ppm-text-content">Projektant z uprawnieniami precyzyjnie wyznacza miejsca przejść. Zgodnie z normą budowlaną, pole grzejne bez dylatacji <strong>nie powinno przekraczać 40 m² lub długości boku 8 m</strong>. Instalator pracujący bez projektu nierzadko układa rury „na oko”, ignorując naprężenia termiczne, co ostatecznie prowadzi do pękania jastrychu i nieodwracalnych uszkodzeń drogich okładzin ceramicznych.</p>
    </div>

    <div class="ppm-app-section">
        <h3>Optymalizacja pompy i dylatacje</h3>
        
        <div class="ppm-slider-container">
            <div class="ppm-slider-header">
                <h4>Moc Twojej instalacji (Q):</h4>
                <span class="ppm-slider-value" id="ppm-power-val">11.5 kW</span>
            </div>
            <input type="range" min="4" max="25" step="0.5" value="11.5" class="ppm-range-input" id="ppm-power-slider">
            
            <div class="ppm-result-box">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="m17 5-5-3-5 3"></path><path d="m19 19-7 3-7-3"></path><path d="M2 12h20"></path></svg>
                <p class="ppm-result-text">
                    Wymagany przepływ pompy obiegowej (przy ΔT = 5K):
                    <strong id="ppm-flow-result">1.98 m³/h</strong>
                </p>
            </div>
            <p style="font-size: 13px; color: #64748b; margin: 15px 0 0 0;">Znajomość tej wartości z projektu zapobiega przewymiarowaniu pompy i nadmiernemu zużyciu prądu.</p>
        </div>

        <div class="ppm-toggle-container" id="ppm-scenario-toggle">
            <div class="ppm-toggle-switch">
                <div class="ppm-toggle-slider"></div>
                <div class="ppm-toggle-option">Montaż &#8222;Na Oko&#8221;</div>
                <div class="ppm-toggle-option">Profesjonalny Projekt OZC</div>
            </div>

            <div class="ppm-scenario-card ppm-scenario-bad">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Wysokie ryzyko błędów
                </h4>
                <p>Brak wyliczeń hydraulicznych powoduje losowy dobór pompy (często za dużej). Pętle układane są bez poszanowania normy 40 m² / 8 mb, co skutkuje brakiem dylatacji w kluczowych miejscach wylewki. <strong>Efekt:</strong> Wyższe koszty materiału, pękające płytki i brak gwarancji na posadzkę.</p>
            </div>

            <div class="ppm-scenario-card ppm-scenario-good">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Oszczędność i Bezpieczeństwo
                </h4>
                <p>Zmniejszenie kosztów robocizny o <strong>10–15%</strong>. Instalator otrzymuje gotowy rzut z wyznaczonymi strefami dylatacyjnymi. Precyzyjnie dobrana pompa obiegowa pracuje na optymalnych krzywych charakterystyki, co drastycznie obniża rachunki za prąd w skali całego roku.</p>
            </div>
        </div>

    </div>

    <div class="ppm-cta-section">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="ppm-btn">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Zamów Projekt z OZC i zredukuj koszty
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- Ochrona Domeny (Brak tagów Hx) ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        document.getElementById('ppm-main-app').innerHTML = `
            <div style="padding: 40px 25px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 24px;">
                <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                <div style="font-size: 18px; font-weight: bold; color: #dc2626; margin-bottom: 10px;">Aplikacja chroniona prawami autorskimi</div>
                <div style="font-size: 14px; color: #7f1d1d; margin-bottom: 15px;">Ten interaktywny symulator jest własnością Projekt-Ogrzewania.pl.</div>
                <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 Suwaka (Obliczenia Hydrauliczne) ---
    const powerSlider = document.getElementById('ppm-power-slider');
    const powerValDisplay = document.getElementById('ppm-power-val');
    const flowResultDisplay = document.getElementById('ppm-flow-result');
    
    // Wzór: m = Q / (c_w * dT), gdzie c_w dla wody to ok. 1.163 kWh/(m3*K), zakładamy dT = 5K
    // m = Q / (1.163 * 5) = Q / 5.815
    const calculateFlow = (powerKw) => {
        return (powerKw / 5.815).toFixed(2);
    };

    powerSlider.addEventListener('input', (e) => {
        const power = parseFloat(e.target.value);
        powerValDisplay.textContent = power.toFixed(1) + ' kW';
        flowResultDisplay.textContent = calculateFlow(power) + ' m³/h';
    });

    // --- Logika Przełącznika Scenariuszy ---
    const toggleContainer = document.getElementById('ppm-scenario-toggle');
    const toggleSwitch = toggleContainer.querySelector('.ppm-toggle-switch');
    
    toggleSwitch.addEventListener('click', () => {
        toggleContainer.classList.toggle('active-right');
    });
});
</script>



<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #ea580c;
    --faq-bg: #ffffff;
    --faq-light: #fff7ed;
    --faq-border: #e2e8f0;
    --faq-text: #475569;
}

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

.faq-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--faq-light));
    border-bottom: 1px solid #fdba74;
    text-align: center;
}

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

.faq-header-area p {
    font-size: 16px;
    color: var(--faq-text);
    margin: 0;
}

.faq-accordion-container {
    padding: 30px 45px 40px 45px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-item {
    border: 2px solid var(--faq-border);
    border-radius: 16px;
    background: #ffffff;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.faq-item:hover {
    border-color: #fdba74;
    box-shadow: 0 5px 15px rgba(234, 88, 12, 0.05);
}

.faq-item.active {
    border-color: var(--faq-accent);
    background: #fffcf9;
}

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

.faq-question h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.5;
    flex: 1;
}

/* Ikona Toggle (Plus / Minus) */
.faq-toggle-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
    color: var(--faq-primary);
}

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

.faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s ease-out;
    padding: 0 25px;
}

.faq-item.active .faq-answer {
    max-height: 350px;
    opacity: 1;
    padding: 0 25px 25px 25px;
}

.faq-answer p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--faq-text);
    border-top: 1px dashed #e2e8f0;
    padding-top: 20px;
}

.faq-answer a {
    color: var(--faq-accent);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .faq-header-area { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 20px 25px 35px 25px; }
    .faq-question { padding: 18px 20px; }
    .faq-question h3 { font-size: 15px; }
    .faq-item.active .faq-answer { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "headline": "Aktualne Ceny Robocizny Ogrzewania Podłogowego – FAQ",
      "description": "Najczęstsze pytania inwestorów dotyczące wycen instalacji HVAC. Sprawdź koszty montażu rozdzielaczy i styropianu w 2026 roku.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "keywords": [
        "podłogówka cena za m2 robocizny",
        "koszt ogrzewania podłogowego",
        "ile kosztuje podłogówka",
        "robocizna podłogówki 2026",
        "wycena instalacji grzewczej"
      ],
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/author/admin3399/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "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-01-07",
      "dateModified": "2026-05-03"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-faq",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
      "name": "Zestawienie kosztów dodatkowych HVAC 2026",
      "description": "Szczegółowa baza wiedzy o stawkach robocizny za montaż rozdzielaczy i izolacji.",
      "measurementTechnique": "Analiza rynkowa ofert firm instalacyjnych oraz audyt rzeczywistych realizacji inwestycji w Polsce w 2026 roku",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": { "@id": "https://projekt-ogrzewania.pl/author/admin3399/" },
      "variableMeasured": [
        { "@type": "PropertyValue", "name": "Montaż rozdzielacza", "value": "400-700 PLN" },
        { "@type": "PropertyValue", "name": "Stawka robocizny ze styropianem", "value": "32-45 PLN/m²" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#faq-section",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy cena robocizny podłogówki obejmuje ułożenie styropianu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, w profesjonalnych ofertach stawka od 32 do 45 zł/m² obejmuje rozłożenie izolacji EPS, folii systemowej oraz rur."
          }
        },
        {
          "@type": "Question",
          "name": "Ile kosztuje robocizna za montaż rozdzielacza?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Montaż i podłączenie rozdzielacza to koszt od 400 do 700 zł."
          }
        },
        {
          "@type": "Question",
          "name": "Czy w 2026 roku cena robocizny różni się w zależności od województwa?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, analizy rynku instalacyjnego pokazują, że różnice regionalne wynoszą do 20%. Najwyższe stawki dominują w województwach mazowieckim, wielkopolskim i dolnośląskim, a niższe np. w podkarpackim czy lubelskim."
          }
        },
        {
          "@type": "Question",
          "name": "Jak przygotowanie podłoża wpływa na koszt ułożenia m² podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nierówna wylewka chudziakowa wymusza dodatkowe prace. Konieczność wcześniejszego wylania warstwy samopoziomującej czy szlifowania podłoża podnosi stawkę robocizny o średnio 10-15 zł na metrze kwadratowym."
          }
        },
        {
          "@type": "Question",
          "name": "Czy robocizna obejmuje wykonanie próby ciśnieniowej instalacji?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, certyfikowana ekipa instalacyjna zawsze wlicza próbę szczelności (pod ciśnieniem) w standardową stawkę. Jest to wymóg normy PN-EN 1264 i podstawa gwarancji."
          }
        }
      ]
    }
  ]
}
</script>

<div class="premium-faq-module" id="faq-app-container">
    <div class="faq-header-area">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p>Rozwiewamy wątpliwości dotyczące wycen i ukrytych kosztów inwestycji.</p>
    </div>

    <div class="faq-accordion-container">
        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy cena robocizny podłogówki obejmuje ułożenie styropianu?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Tak, rzetelna stawka robocizny obejmuje <strong>rozłożenie izolacji termicznej (EPS)</strong>, folii systemowej oraz właściwy montaż rur. Unikaj ekip, które doliczają każdą warstwę styropianu osobno.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Ile kosztuje robocizna za montaż rozdzielacza do podłogówki?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Montaż, usadowienie szafki i podłączenie jednego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza do podłogówki</a> to koszt rzędu <strong>od 400 do 700 zł</strong>, zależnie od liczby sekcji.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy w 2026 roku cena robocizny różni się w zależności od województwa?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Tak, analizy rynku instalacyjnego pokazują, że różnice regionalne wynoszą do 20%. Najwyższe stawki wykonawcze dominują w województwach mazowieckim, wielkopolskim i dolnośląskim. Zauważalnie niższe wyceny można uzyskać od ekip działających w regionach wschodnich i południowych, np. w podkarpackim czy lubelskim, zachowując przy tym ten sam standard wykonania.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Jak przygotowanie podłoża wpływa na koszt ułożenia m² podłogówki?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Nierówna wylewka chudziakowa wymusza dodatkowe prace. Konieczność wcześniejszego wylania warstwy samopoziomującej lub żmudnego docinania pierwszych warstw styropianu podnosi stawkę robocizny o średnio <strong>10 do 15 zł na metrze kwadratowym</strong>.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy robocizna obejmuje wykonanie próby ciśnieniowej instalacji?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Zdecydowanie tak. Zgodnie z normą PN-EN 1264, certyfikowana ekipa instalacyjna zawsze ma wliczoną próbę szczelności w standardową stawkę za m² lub w kosztorys montażu rozdzielacza. Otrzymujesz wtedy oficjalny protokół z tego procesu.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('faq-app-container').innerHTML = '<div style="padding: 30px; text-align: center; color: red;">🔒 Treść chroniona autorsko. Projekt-Ogrzewania.pl</div>';
        return;
    }
    const faqItems = document.querySelectorAll('.faq-item');
    faqItems.forEach(item => {
        item.querySelector('.faq-question').addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            item.classList.toggle('active');
            item.querySelector('.faq-toggle-icon svg line:nth-child(1)').style.display = isActive ? 'block' : 'none';
        });
    });
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-step1: #16a34a; /* Kolor zielony dla kosztorysu */
    --cs-step2: #ea580c; /* Kolor pomarańczowy dla hydrauliki */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

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

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

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

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

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

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

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

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

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

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

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

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

.cs-lead-text a {
    color: var(--cs-accent);
    text-decoration: underline;
    font-weight: 600;
}

/* Bloki z wyliczeniami w tekscie */
.cs-calc-block {
    background: #f8fafc;
    border: 1px solid var(--cs-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
}

.cs-calc-block ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: none;
}

.cs-calc-block li {
    margin-bottom: 10px;
    font-size: 15px;
    color: var(--cs-text);
    position: relative;
}

.cs-calc-block li::before {
    content: '→';
    position: absolute;
    left: -20px;
    color: var(--cs-accent);
    font-weight: bold;
}

.cs-calc-block li strong { color: var(--cs-primary); }

.cs-calc-highlight {
    background: #eff6ff;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    border-left: 4px solid var(--cs-accent);
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 600;
}

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

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

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

/* ================= 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;
    display: flex;
    flex-direction: column;
}

.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

.cs-split-card.step1.active {
    border-color: var(--cs-step1);
    background: #f0fdf4;
    box-shadow: 0 10px 25px rgba(22, 163, 74, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.step2.active {
    border-color: var(--cs-step2);
    background: #fff7ed;
    box-shadow: 0 10px 25px rgba(234, 88, 12, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

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

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

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 14px;
    line-height: 1.6;
    display: none;
}

.cs-split-card.step1 .cs-card-solution { color: #14532d; }
.cs-split-card.step2 .cs-card-solution { color: #7c2d12; }

.cs-card-solution ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: square;
}

.cs-card-solution li { margin-bottom: 8px; }
.cs-card-solution code { font-weight: 800; font-family: 'Inter', sans-serif; background: rgba(255,255,255,0.5); padding: 2px 6px; border-radius: 4px;}

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

/* ================= CTA WRAZ Z PRZYCISKIEM BLOGA ================= */
.cs-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--cs-border);
}

.cs-cta-box h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0 0 10px 0;
}

.cs-cta-box p {
    font-size: 15px;
    color: #475569;
    margin: 0 auto 25px auto;
    max-width: 650px;
    line-height: 1.6;
}

.cs-cta-buttons-wrapper {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.cs-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-accent);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
    border: 2px solid var(--cs-accent);
}

.cs-cta-button:hover {
    background: #1e3a8a;
    border-color: #1e3a8a;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

/* Nowy intensywny przycisk do bloga */
.cs-blog-btn-intense {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-primary);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.4);
    border: 2px solid var(--cs-primary);
}

.cs-blog-btn-intense:hover {
    background: #ffffff;
    color: var(--cs-primary);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(15, 23, 42, 0.2);
}

@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-cta-box { padding: 35px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
    .cs-cta-buttons-wrapper { flex-direction: column; }
    .cs-cta-button, .cs-blog-btn-intense { width: 100%; justify-content: center; }
}
</style>

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

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Article",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
          "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
          },
          "headline": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
          "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-01-07",
          "dateModified": "2026-05-03",
          "about": [
            { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study" },
            { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-case-study" }
          ]
        },
        {
          "@type": "WebApplication",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study",
          "name": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
          "description": "Szczegółowa analiza kosztów robocizny ogrzewania podłogowego oraz inżynieryjne wyliczenia nastaw rotametrów dla domu o powierzchni 140 m².",
          "applicationCategory": "EducationalApplication",
          "operatingSystem": "All",
          "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/",
          "license": "https://projekt-ogrzewania.pl/",
          "keywords": [
            "kalkulator kosztów robocizny podłogówki",
            "wzór na wycenę ogrzewania podłogowego",
            "obliczenia przepływów rotametry",
            "kalkulacja długości pętli",
            "wycena robocizny z projektu"
          ],
          "mainEntity": {
            "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study"
          },
          "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": [
            "Wycena robocizny w podziale na strefy grzewcze",
            "Obliczenia błędów wycen zryczałtowanych",
            "Inżynierskie obliczenia przepływu i nastawy rotametrów"
          ]
        },
        {
          "@type": "Dataset",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-case-study",
          "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
          "name": "Realne dane z projektu instalacji (Luty 2026)",
          "description": "Zestawienie parametrów projektowych, finansowych i hydraulicznych użytych do analizy błędów wykonawczych.",
          "measurementTechnique": "Autorski algorytm inżynierski wyceny oparty na wzorze K_rob, obliczeniach OZC oraz normie PN-EN 1264",
          "license": "https://projekt-ogrzewania.pl/",
          "variableMeasured": [
            {
              "@type": "PropertyValue",
              "name": "Koszt całkowity (rzeczywisty)",
              "value": "10 524 PLN"
            },
            {
              "@type": "PropertyValue",
              "name": "Błąd wyceny ryczałtowej (65 zł/m²)",
              "value": "-13.5%"
            },
            {
              "@type": "PropertyValue",
              "name": "Moc instalacji (Q)",
              "value": "11.5 kW"
            },
            {
              "@type": "PropertyValue",
              "name": "Nastawa rotametru (na pętlę)",
              "value": "3.3 l/min"
            }
          ],
          "creator": {
            "@type": "Person",
            "name": "Robert Kucharski"
          }
        }
      ]
    }
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Kalkulacja z Projektu</div>
        <h2>Jak policzyć całkowity koszt robocizny ogrzewania podłogowego</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Dom pow. netto</span>
                <span class="cs-stat-value">140 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Koszt całkowity</span>
                <span class="cs-stat-value">10 524 zł</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Błąd wyceny &#8222;na oko&#8221;</span>
                <span class="cs-stat-value" style="color: #fca5a5;">-13,5%</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Nastawa rotametru</span>
                <span class="cs-stat-value">3,3 l/min</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Całkowity koszt robocizny liczysz <strong>z projektu, a nie z metrażu budynku</strong>. Wykonawcy, którzy dają jedną uśrednioną cenę, niemal zawsze dopisują później aneksy do umowy. Poniżej przedstawiam konkretny przykład z lutego 2026 roku (Dom Pana Marka), oparty na autorskim wzorze: <strong>K_rob = Σ (A_i × C_Ti) + K_rozdz + K_proba</strong>.</p>
        
        <div class="cs-calc-block">
            <ul>
                <li><strong>A1 (Strefy otwarte):</strong> 92 m², rozstaw 150 mm, stawka 65 zł/m² <strong>→ 5 980 zł</strong></li>
                <li><strong>A2 (Łazienki, okna):</strong> 28 m², rozstaw zagęszczony 100 mm, stawka 78 zł/m² <strong>→ 2 184 zł</strong></li>
                <li><strong>A3 (Sypialnie):</strong> 20 m², rozstaw 200 mm, stawka 58 zł/m² <strong>→ 1 160 zł</strong></li>
                <li><strong>K_rozdz (Rozdzielacze):</strong> 2 szt. × 450 zł <strong>→ 900 zł</strong></li>
                <li><strong>K_proba (Szczelność):</strong> Próba 6 bar + protokół <strong>→ 300 zł</strong></li>
            </ul>
            <div class="cs-calc-highlight">
                Razem: 10 524 zł, czyli średnio 75,2 zł/m². Gdyby instalator przyjął ryczałtem &#8222;atrakcyjne&#8221; 65 zł/m² dla całości, wyceniłby to na 9 100 zł. Różnica? Ponad 13% błędu, który odbiłby się na jakości materiałów lub aneksach.
            </div>
        </div>

        <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><strong>Robert Kucharski:</strong> &#8222;Rozkładamy koszty i hydraulikę na czynniki pierwsze. Kliknij w karty poniżej, aby zobaczyć jak krok po kroku tworzymy algorytm wyceny i – co najważniejsze – jak liczymy przepływy do precyzyjnego ustawienia pętli.&#8221;</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card step1 active" id="cs-btn-step1">
                <div class="cs-card-header">
                    <span class="cs-card-icon">📋</span>
                    <h3 class="cs-card-title">7 Kroków Kalkulacji</h3>
                </div>
                <p class="cs-card-desc">Nie zgaduj. Policz w 7 krokach, dokładnie tak, jak liczę to w biurze dla każdego zlecenia.</p>
                <div class="cs-card-solution">
                    <ul>
                        <li><strong>Krok 1:</strong> Policz zapotrzebowanie. <code>Q_obl = Q_OZC × 1,15</code>. Dla 140 m² po OZC Q = 9,8 kW → 11,27 kW.</li>
                        <li><strong>Krok 2:</strong> Podziel na strefy. Salon 35 m², strata 2450 W → wymóg 70 W/m².</li>
                        <li><strong>Krok 3:</strong> Dobierz rozstaw. Z tabeli dla q 70 W/m² i ΔϑH 12K → rozstaw 150 mm.</li>
                        <li><strong>Krok 4:</strong> Policz długość rury. <code>L = A / T × 1,1</code>. Dla salonu to 257 mb.</li>
                        <li><strong>Krok 5:</strong> Podziel na pętle. Maksimum to 110 m → 257 / 110 = 2,34 → czyli 3 pętle.</li>
                        <li><strong>Krok 6:</strong> Przypisz stawkę rynkową. Dla rozstawu 150 mm (65 zł/m²) salon kosztuje nas 2 275 zł.</li>
                        <li><strong>Krok 7:</strong> Dodaj stałe. Rozdzielacz (450 zł), dojazd (120 zł), próba (300 zł). Suma to zwykle widełki 9 500–12 500 zł.</li>
                    </ul>
                </div>
            </div>

            <div class="cs-split-card step2" id="cs-btn-step2">
                <div class="cs-card-header">
                    <span class="cs-card-icon">💧</span>
                    <h3 class="cs-card-title">Obliczenia Przepływów</h3>
                </div>
                <p class="cs-card-desc">Trzecie wyliczenie z projektu, które zawsze robię. To parametr, który monter ustawia w ramach robocizny, a bez projektu – po prostu zgaduje.</p>
                <div class="cs-card-solution">
                    <p style="margin-top:0;">Podstawą prawidłowo ułożonej podłogówki jest ustawienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
                    <ul>
                        <li><strong>Krok 1: Wzór bazowy.</strong> Przepływ masowy liczymy ze wzoru: <code>m = Q / (1,163 × ΔT)</code></li>
                        <li><strong>Krok 2: Całkowity zład.</strong> Przy mocy instalacji Q = 11,5 kW i zakładanym spadku temperatury ΔT = 5 K, przepływ całkowity wynosi: 11,5 / (1,163 × 5) = <strong>1,98 m³/h</strong>.</li>
                        <li><strong>Krok 3: Przepływ na rotametrze.</strong> Otrzymany wynik dzielimy na 10 pętli w domu. Daje to 0,198 m³/h na pętlę.</li>
                        <li><strong>Wynik:</strong> Po przeliczeniu jednostek, monter musi ustawić rotametr na około <strong>3,3 l/min</strong>. Dzięki temu <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> precyzyjnie zasili każdy układ.</li>
                    </ul>
                </div>
            </div>

        </div>
    </div>

    <div class="cs-cta-box">
        <h4>Nie ryzykuj błędów monterskich i zaniżonych wycen.</h4>
        <p>Projekt ogrzewania podłogowego chroni Cię przed instalatorami, którzy narzucają jedną cenę za m², a potem domagają się dopłat. Zyskujesz pewność co do ilości rury, nastaw przepływu i wielkości rozdzielaczy.</p>
        
        <div class="cs-cta-buttons-wrapper">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cs-cta-button">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                Zamów Profesjonalny Projekt
            </a>
            
            <a href="https://projekt-ogrzewania.pl/blog/" class="cs-blog-btn-intense">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                Więcej Wiedzy na Blogu
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (bez tagów Hx)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-calc-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <div style="margin: 0 0 10px 0; font-size: 20px; font-weight: bold;">Studium Przypadku Chronione</div>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel informacyjny 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 cardStep1 = document.getElementById('cs-btn-step1');
    const cardStep2 = document.getElementById('cs-btn-step2');

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

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



<style>
:root {
    --info-primary: #0f172a;
    --info-accent: #ea580c;
    --info-accent-hover: #c2410c;
    --info-bg: #ffffff;
    --info-light: #fff7ed;
    --info-border: #e2e8f0;
    --info-text: #475569;
}

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

.info-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--info-light));
    border-bottom: 1px solid #fdba74;
    text-align: center;
}

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

.info-header-area p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--info-text);
    margin: 0;
}

.info-header-area strong {
    color: var(--info-primary);
}

.info-image-container {
    padding: 30px 45px;
    background: #f8fafc;
    position: relative;
    text-align: center;
}

.info-img-wrapper {
    position: relative;
    display: inline-block;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    cursor: zoom-in;
    transition: transform 0.3s ease;
}

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

.info-img-wrapper img {
    max-width: 100%;
    height: auto;
    display: block;
}

.info-zoom-hint {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.3s;
}

.info-img-wrapper:hover .info-zoom-hint {
    opacity: 1;
}

.info-cta-area {
    padding: 0 45px 40px 45px;
    background: #f8fafc;
    text-align: center;
}

/* Lightbox Modal */
.info-lightbox {
    display: none;
    position: fixed;
    z-index: 9999;
    padding: 40px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(5px);
}

.info-lightbox-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 0 50px rgba(0,0,0,0.5);
    object-fit: contain;
}

.info-lightbox-close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

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

@media (max-width: 768px) {
    .info-header-area { padding: 35px 25px 25px 25px; }
    .info-image-container { padding: 25px; }
    .info-cta-area { padding: 0 25px 35px 25px; }
    .info-header-area h3 { font-size: 22px; }
    .info-zoom-hint { opacity: 1; bottom: 10px; padding: 6px 12px; font-size: 11px; }
    .info-lightbox { padding: 15px; }
    .info-lightbox-close { top: 10px; right: 20px; font-size: 30px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "headline": "Ile naprawdę kosztuje ułożenie ogrzewania podłogowego w 2026 roku?",
      "author": { "@id": "https://projekt-ogrzewania.pl/#person" },
      "datePublished": "2026-05-03",
      "dateModified": "2026-05-03",
      "about": [
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#infographic" }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#infographic",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.webp",
      "width": "1200",
      "height": "1600",
      "caption": "Kompleksowe zestawienie cen robocizny ogrzewania podłogowego w 2026 roku oraz parametry techniczne montażu.",
      "description": "Infografika przedstawiająca koszty robocizny podłogówki, etapy wykonania, najczęstsze błędy oraz zalety profesjonalnego projektu OZC.",
      "keywords": [
        "podłogówka cena za m2 robocizny",
        "koszty instalacji podłogowej",
        "cennik usług hydraulicznych 2026",
        "etapy montażu ogrzewania",
        "infografika budowlana"
      ],
      "author": {
        "@type": "Person",
        "@id": "https://projekt-ogrzewania.pl/#person",
        "name": "Robert Kucharski",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "license": "https://projekt-ogrzewania.pl/"
    }
  ]
}
</script>

<div class="premium-infographic-module" id="infographic-app-container">
    
    <div class="info-header-area">
        <h3>Ile naprawdę kosztuje ułożenie ogrzewania podłogowego w 2026 roku? [INFOGRAFIKA]</h3>
        <p>Sprawdź aktualne zestawienie: <strong>podłogówka cena za m² robocizny</strong> i dowiedz się, jak profesjonalny projekt instalacji zabezpiecza przed kosztownymi błędami wykonawczymi.</p>
    </div>

    <div class="info-image-container">
        <div class="info-img-wrapper" id="info-trigger-lightbox">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.webp" 
                 alt="Infografika: Podłogówka cena za m2 robocizny w 2026 roku – szczegółowe zestawienie kosztów montażu, parametrów technicznych i najczęstszych błędów wykonawczych." 
                 loading="lazy" />
            <div class="info-zoom-hint">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Kliknij, aby powiększyć
            </div>
        </div>
    </div>

    <div class="info-cta-area">
        <div style="margin: 0; text-align: center;">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.pdf" download 
               style="display: inline-flex; align-items: center; gap: 12px; background: #ea580c; color: #ffffff; padding: 18px 35px; border-radius: 12px; font-family: 'Inter', -apple-system, sans-serif; font-size: 16px; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: 1px; box-shadow: 0 10px 20px rgba(234, 88, 12, 0.3); transition: all 0.3s;"
               onmouseover="this.style.background='#c2410c'; this.style.transform='translateY(-3px)'; this.style.boxShadow='0 15px 25px rgba(234, 88, 12, 0.4)';"
               onmouseout="this.style.background='#ea580c'; this.style.transform='none'; this.style.boxShadow='0 10px 20px rgba(234, 88, 12, 0.3)';">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                    <polyline points="7 10 12 15 17 10"></polyline>
                    <line x1="12" y1="15" x2="12" y2="3"></line>
                </svg>
                Pobierz PDF: Podłogówka cena za m² robocizny
            </a>
            <p style="margin-top: 15px; font-size: 13px; color: #64748b; font-family: 'Inter', -apple-system, sans-serif;">
                Format: PDF | Rozmiar: ok. 1.2 MB | Zawiera: Cennik 2026 i Wytyczne Techniczne
            </p>
        </div>
    </div>

</div>

<div id="info-myLightbox" class="info-lightbox">
    <span class="info-lightbox-close">&times;</span>
    <img decoding="async" class="info-lightbox-content" id="info-lightbox-img" src="">
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- Ochrona Domeny ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        document.getElementById('infographic-app-container').innerHTML = `
            <div style="padding: 40px 25px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 20px;">
                <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                <div style="font-size: 18px; font-weight: bold; color: #dc2626; margin-bottom: 10px;">Moduł chroniony prawami autorskimi</div>
                <div style="font-size: 14px; color: #7f1d1d; margin-bottom: 15px;">Ta infografika jest własnością Projekt-Ogrzewania.pl.</div>
                <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 Lightboxa ---
    const modal = document.getElementById("info-myLightbox");
    const imgWrapper = document.getElementById("info-trigger-lightbox");
    const modalImg = document.getElementById("info-lightbox-img");
    const sourceImg = imgWrapper.querySelector("img");
    const spanClose = document.getElementsByClassName("info-lightbox-close")[0];

    imgWrapper.addEventListener('click', function() {
        modal.style.display = "flex";
        modalImg.src = sourceImg.src;
        document.body.style.overflow = "hidden"; // Blokuje przewijanie strony w tle
    });

    spanClose.addEventListener('click', function() {
        modal.style.display = "none";
        document.body.style.overflow = "auto";
    });

    // Zamknięcie po kliknięciu w tło
    modal.addEventListener('click', function(e) {
        if (e.target === modal) {
            modal.style.display = "none";
            document.body.style.overflow = "auto";
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">Podłogówka cena za m² robocizny.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
