<?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 wymiennik płytowy - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/wymiennik-plytowy/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/wymiennik-plytowy/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Fri, 07 Aug 2026 21:45:09 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa wymiennik płytowy - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/wymiennik-plytowy/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</title>
		<link>https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/</link>
					<comments>https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 07 Aug 2026 12:00:42 +0000</pubDate>
				<category><![CDATA[Armatura zabezpieczająca]]></category>
		<category><![CDATA[Filtry i separatory]]></category>
		<category><![CDATA[Kotłownia]]></category>
		<category><![CDATA[Ochrona instalacji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[armatura zabezpieczająca]]></category>
		<category><![CDATA[deaerator]]></category>
		<category><![CDATA[norma vdi 2035]]></category>
		<category><![CDATA[ochrona pompy ciepła]]></category>
		<category><![CDATA[odpowietrznik mikropęcherzy]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[separator magnetyczny]]></category>
		<category><![CDATA[separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[spadek ciśnienia]]></category>
		<category><![CDATA[szlam magnetytowy]]></category>
		<category><![CDATA[współczynnik kv]]></category>
		<category><![CDATA[wymiennik płytowy]]></category>
		<category><![CDATA[zapowietrzenie podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7119</guid>

					<description><![CDATA[<p>Prawidłowo zaprojektowana instalacja płaszczyznowa wymaga skutecznej ochrony hydraulicznej przed zjawiskiem stale krążących mikropęcherzy oraz powstawaniem czarnego osadu magnetytowego. Wąskie przekroje rur PEX i PERT, wrażliwe wymienniki płytowe pomp ciepła oraz energooszczędne pompy obiegowe z magnesami trwałymi są szczególnie narażone na uszkodzenia mechaniczne oraz drastyczny spadek sprawności grzewczej. W tym inżynieryjnym poradniku dowiesz się, jak prawidłowo zamontować i dobrać separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym. Przeanalizujemy Prawa Henry’ego oraz Stokesa, obliczymy wymagany współczynnik Kv, zmierzymy opory hydrauliczne i wyeliminujemy najczęstsze błędy wykonawcze, które niszczą nowoczesne kotłownie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-green: #059669;
    --rk-intro-green-light: #ecfdf5;
    --rk-intro-gray: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

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

/* Sekcja Hooka i Szybkiej Odpowiedzi */
.rk-intro-header {
    padding: 40px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-intro-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-intro-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0 0 30px 0;
    font-weight: 600;
}

/* Szybka Odpowiedź Box */
.rk-quick-answer {
    background: #ffffff;
    border-left: 6px solid var(--rk-intro-green);
    border-radius: 12px;
    padding: 25px 30px;
    color: var(--rk-intro-dark);
}

.rk-qa-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-intro-green);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

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

.rk-qa-text strong {
    color: var(--rk-intro-dark);
}

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

/* Otwarty Grid Nawigacyjny */
.rk-intro-nav {
    padding: 40px;
    background: #ffffff;
}

.rk-nav-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
}

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

.rk-nav-card {
    background: var(--rk-intro-gray);
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.rk-nav-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    border-color: var(--rk-intro-blue-light);
    background: #ffffff;
}

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

.rk-nav-heading {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-nav-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
    margin: 0 0 20px 0;
    flex-grow: 1;
}

.rk-interactive-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: auto;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat i normy",
    "description": "Zrozumienie kluczowej roli separatorów magnetycznych i powietrza. Kompendium wiedzy, szybka odpowiedź i interaktywne kalkulatory hydrauliczne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-wstep",
    "name": "Baza Wiedzy: Szybkie Fakty o Separatorach C.O.",
    "description": "Natychmiastowe zestawienie najważniejszych wytycznych montażowych dla inwestorów szukających wiedzy o armaturze zabezpieczającej ogrzewanie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "separator zanieczyszczeń z magnesem",
      "separator powietrza w ogrzewaniu podłogowym",
      "gdzie zamontować separator magnetyczny",
      "ochrona pompy ciepła przed szlamem",
      "awarie instalacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Ekstrakcja najważniejszych wytycznych normatywnych dotyczących prawidłowej konfiguracji kotłowni z uwzględnieniem ochrony urządzeń wymuszających.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Separator powietrza (deaerator) instaluje się na zasilaniu (najwyższa temperatura, najniższa rozpuszczalność gazów).",
        "Separator zanieczyszczeń z magnesem umieszcza się bezwzględnie na powrocie, przed pompą i źródłem ciepła.",
        "Kompendium zawiera interaktywne narzędzia obliczeniowe do weryfikacji współczynnika Kv i opadania cząstek."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-spis-tresci",
    "name": "Interaktywny Nawigator Artykułu",
    "description": "Przewodnik po dostępnych w artykule kalkulatorach i symulatorach inżynieryjnych pozwalający czytelnikowi na ocenę zawartości merytorycznej strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    
    <!-- Sekcja Header (Hook + Quick Answer) -->
    <div class="rk-intro-header">
        <h2>Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Kompendium Wiedzy</h2>
        <p class="rk-intro-hook">Poprawnie wykonane <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color: #38bdf8; text-decoration: underline;">ogrzewanie podłogowe</a> to inwestycja dająca komfort przez dekady. Jednak jeden z pozoru nieistotny błąd w kotłowni – brak separacji – potrafi w ciągu kilkunastu miesięcy bezpowrotnie zniszczyć serce Twojego układu: pompę ciepła.</p>
        
        <div class="rk-quick-answer">
            <div class="rk-qa-title">
                <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Szybka Odpowiedź
            </div>
            <p class="rk-qa-text">Gdzie i co zamontować? <strong>Separator zanieczyszczeń (magnetyczny)</strong> montuje się zawsze na <strong>powrocie</strong> z instalacji – tuż przed pompą i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">źródłem ciepła</a>, aby wyłapać niszczący magnetyt. Z kolei <strong>separator powietrza (deaerator)</strong> montuje się na <strong>zasilaniu</strong> (tuż za kotłem), gdzie woda jest najgorętsza i najlepiej oddaje rozpuszczone mikropęcherzyki gazu.</p>
        </div>
    </div>

    <!-- Otwarty Grid (Widoczna Zajawka) -->
    <div class="rk-intro-nav">
        <h3 class="rk-nav-title">Co odkryjesz w dalszej części artykułu?</h3>
        
        <div class="rk-nav-grid">
            
            <!-- Karta 1 -->
            <div class="rk-nav-card">
                <div class="rk-nav-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"></line><line x1="4" y1="10" x2="4" y2="3"></line><line x1="12" y1="21" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="3"></line><line x1="20" y1="21" x2="20" y2="16"></line><line x1="20" y1="12" x2="20" y2="3"></line><line x1="1" y1="14" x2="7" y2="14"></line><line x1="9" y1="8" x2="15" y2="8"></line><line x1="17" y1="16" x2="23" y2="16"></line></svg>
                </div>
                <h4 class="rk-nav-heading">Fizyka i Opory Kv</h4>
                <p class="rk-nav-desc">Niewłaściwy dobór przekroju separatora potrafi zdławić pracę pompy obiegowej nawet o 40%. Sprawdź interaktywne narzędzie, które na żywo przelicza te straty.</p>
                <div class="rk-interactive-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Live Kalkulator Oporów Kv
                </div>
            </div>

            <!-- Karta 2 -->
            <div class="rk-nav-card">
                <div class="rk-nav-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line><line x1="10" y1="4" x2="10" y2="20"></line><line x1="14" y1="4" x2="14" y2="20"></line><line x1="18" y1="4" x2="18" y2="20"></line></svg>
                </div>
                <h4 class="rk-nav-heading">Schematy i Błędy</h4>
                <p class="rk-nav-desc">Odwrotny montaż wkładu czy zignorowanie magnesu. Analizujemy kluczowe wskazówki wyciągnięte z praktyki, pokazując jak <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">unikać błędów montażowych</a>.</p>
                <div class="rk-interactive-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="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>
                    Inspektor Węzłów Kotłowni
                </div>
            </div>

            <!-- Karta 3 -->
            <div class="rk-nav-card">
                <div class="rk-nav-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>
                <h4 class="rk-nav-heading">Case Study Awarii</h4>
                <p class="rk-nav-desc">Dlaczego zwykły filtr skośny to wyrok dla pompy ECM? Opierając się na badaniach, analizujemy rzeczywiste przypadki usterki i zatarcia urządzeń grzewczych.</p>
                <div class="rk-interactive-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                    Wizualizacja Zniszczeń
                </div>
            </div>

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



<style>
:root {
    --rk-loc-dark: #0f172a;
    --rk-loc-blue: #0284c7;
    --rk-loc-blue-light: #f0f9ff;
    --rk-loc-red: #ef4444;
    --rk-loc-red-light: #fef2f2;
    --rk-loc-gray-light: #f8fafc;
    --rk-loc-border: #e2e8f0;
    --rk-loc-text: #475569;
}

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

.rk-loc-header {
    padding: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-loc-border);
}

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

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

.rk-loc-header p:last-child { margin: 0; }

.rk-cost-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-loc-gray-light);
    border: 1px solid var(--rk-loc-border);
    padding: 12px 20px;
    border-radius: 10px;
    margin-top: 20px;
    font-size: 15px;
    color: var(--rk-loc-dark);
}

.rk-cost-badge strong {
    color: var(--rk-loc-blue);
    font-size: 18px;
    font-weight: 900;
}

/* Interfejs Przełącznika */
.rk-loc-controls {
    display: flex;
    background: var(--rk-loc-gray-light);
    border-bottom: 1px solid var(--rk-loc-border);
}

.rk-loc-btn {
    flex: 1;
    padding: 25px 20px;
    background: transparent;
    border: none;
    border-bottom: 4px solid transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-loc-btn:hover { background: #f1f5f9; }

.rk-loc-btn-icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    transition: all 0.3s;
}

.rk-loc-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loc-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.3s;
}

/* Stan Aktywny dla Zasilania (Czerwony) */
.rk-loc-btn.active[data-target="supply"] {
    background: #ffffff;
    border-bottom-color: var(--rk-loc-red);
}
.rk-loc-btn.active[data-target="supply"] .rk-loc-btn-icon {
    background: var(--rk-loc-red-light);
    color: var(--rk-loc-red);
}
.rk-loc-btn.active[data-target="supply"] .rk-loc-btn-title {
    color: var(--rk-loc-dark);
}

/* Stan Aktywny dla Powrotu (Niebieski) */
.rk-loc-btn.active[data-target="return"] {
    background: #ffffff;
    border-bottom-color: var(--rk-loc-blue);
}
.rk-loc-btn.active[data-target="return"] .rk-loc-btn-icon {
    background: var(--rk-loc-blue-light);
    color: var(--rk-loc-blue);
}
.rk-loc-btn.active[data-target="return"] .rk-loc-btn-title {
    color: var(--rk-loc-dark);
}

/* Panele z treścią */
.rk-loc-panels {
    background: #ffffff;
}

.rk-loc-panel {
    display: none;
    padding: 40px;
    animation: fadeInLoc 0.4s ease;
}

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

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

.rk-loc-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    align-items: start;
}

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

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

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

/* Kafelki z fizyką */
.rk-physics-box {
    background: var(--rk-loc-gray-light);
    border: 1px solid var(--rk-loc-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-physics-box h4 {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-phys-item {
    background: #ffffff;
    border: 1px solid var(--rk-loc-border);
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 12px;
}

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

.rk-phys-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-loc-dark);
    margin-bottom: 4px;
}

.rk-phys-label {
    font-size: 13px;
    color: var(--rk-loc-text);
    line-height: 1.4;
}

@media (max-width: 768px) {
    .rk-loc-header, .rk-loc-panel { padding: 30px 20px; }
    .rk-loc-header h2 { font-size: 24px; }
    
    .rk-loc-controls { flex-direction: column; }
    .rk-loc-btn { flex-direction: row; padding: 15px 20px; border-bottom: none; border-left: 4px solid transparent; text-align: left; }
    
    .rk-loc-btn.active[data-target="supply"] { border-left-color: var(--rk-loc-red); border-bottom-color: transparent; }
    .rk-loc-btn.active[data-target="return"] { border-left-color: var(--rk-loc-blue); border-bottom-color: transparent; }
    
    .rk-loc-btn-icon { width: 40px; height: 40px; }
    
    .rk-loc-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-cost-badge { 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/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-lokalizacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Gdzie montować separator zanieczyszczeń i separator powietrza w układzie ogrzewania podłogowego?",
    "description": "Zasady fizyki i wytyczne PN-EN 12828 dotyczące lokalizacji deaeratorów na zasilaniu oraz separatorów magnetycznych na powrocie instalacji C.O.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-fizyka",
    "name": "Parametry fizykochemiczne separacji w instalacji c.o.",
    "description": "Dane techniczne obrazujące zjawiska dyfuzji tlenu oraz rozpuszczalności gazów w funkcji temperatury w rurach wielowarstwowych ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż separatora zanieczyszczeń",
      "gdzie zamontować deaerator",
      "dyfuzja tlenu w rurach PEX",
      "bariera antydyfuzyjna EVOH",
      "prawo Henry'ego w instalacjach c.o."
    ],
    "measurementTechnique": "Wytyczne normy PN-EN 12828 (lokalizacja wyrzutu gazów) oraz PN-EN ISO 15875-2 (badanie przenikalności tlenowej).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Separator powietrza: Montaż na zasilaniu (35-55°C), redukcja rozpuszczalności gazów, wyłapywanie mikropęcherzy od 10 µm.",
        "Separator zanieczyszczeń: Montaż na powrocie, wychwyt magnetytu Fe3O4 powstającego w wyniku dyfuzji tlenu do 0,32 mg O2/(m²·doba)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-lokalizator",
    "name": "Interaktywny Lokalizator Armatury Zabezpieczającej",
    "description": "Narzędzie pozwalające prześledzić różnice fizyczne pomiędzy zasilaniem a powrotem instalacji w kontekście poprawnego montażu filtrów i deaeratorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loc-container">
    <div class="rk-loc-header">
        <h2>Gdzie montować separator zanieczyszczeń i separator powietrza w układzie ogrzewania podłogowego?</h2>
        <p>Zgodnie z wytycznymi normy <strong>PN-EN 12828 § 4.6.2</strong>, separatory muszą być instalowane w specyficznych węzłach układu. Separator z magnesem należy montować na przewodzie powrotnym instalacji, natomiast deaerator wyłącznie na gorącym przewodzie zasilającym bezpośrednio za źródłem ciepła.</p>
        <p>Takie usytuowanie gwarantuje najwyższą skuteczność wydzielania gazów oraz bezwzględne wyłapywanie cząstek osadu przed ich wniknięciem do wymiennika w kotle.</p>
        
        <div class="rk-cost-badge">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line><line x1="10" y1="4" x2="10" y2="20"></line><line x1="14" y1="4" x2="14" y2="20"></line><line x1="18" y1="4" x2="18" y2="20"></line></svg>
            Inwestycja w kompletny zespół separatorów dla domu 150 m² to średnio: <strong>650 PLN – 1400 PLN</strong>
        </div>
    </div>

    <!-- Przełącznik Lokalizacji -->
    <div class="rk-loc-controls">
        <button class="rk-loc-btn active" data-target="supply">
            <div class="rk-loc-btn-icon">
                <!-- Techniczna ikona termometru dla Zasilania -->
                <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="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            </div>
            <span class="rk-loc-btn-title">Zasilanie Instalacji<br>(Gorąca woda)</span>
        </button>

        <button class="rk-loc-btn" data-target="return">
            <div class="rk-loc-btn-icon">
                <!-- Techniczna ikona filtra/lejka dla Powrotu -->
                <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="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>
            </div>
            <span class="rk-loc-btn-title">Powrót Instalacji<br>(Zład z pętli)</span>
        </button>
    </div>

    <!-- Panele -->
    <div class="rk-loc-panels">
        
        <!-- Panel Zasilanie (Deaerator) -->
        <div class="rk-loc-panel active" id="panel-supply">
            <div class="rk-loc-grid">
                <div class="rk-loc-content">
                    <h3>Separator powietrza (Deaerator) na zasilaniu</h3>
                    <p>Wymóg montażu na zasilaniu wynika bezpośrednio z fizyki. Woda opuszczająca kocioł gazowy lub wymiennik pompy ciepła osiąga w tym punkcie najwyższą <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperaturę zasilania</a> (np. 35–45°C w układach niskotemperaturowych lub 55°C podczas przegrzewu c.w.u.) oraz odnotowuje najniższe ciśnienie dynamiczne.</p>
                    <p>Ze wzrostem temperatury cieczy rozpuszczalność gazów gwałtownie spada. Powstające w tym punkcie mikropęcherzyki trafiają do obszernej komory deaeratora. Tam element spiętrzający powoduje ich koalescencję (łączenie się w większe bąble), uniesienie i bezpowrotny wyrzut przez automatyczny zawór pływakowy.</p>
                </div>
                <div class="rk-physics-box">
                    <h4>
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                        Prawo Henry&#8217;ego w C.O.
                    </h4>
                    <div class="rk-phys-item">
                        <div class="rk-phys-val">&gt; 10 µm</div>
                        <div class="rk-phys-label">Średnica wyłapywanych mikropęcherzy w komorze spiętrzającej.</div>
                    </div>
                    <div class="rk-phys-item">
                        <div class="rk-phys-val">AISI 304</div>
                        <div class="rk-phys-label">Typ stali nierdzewnej lub pierścieni Raschiga rozbijających przepływ cieczy.</div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel Powrót (Zanieczyszczenia) -->
        <div class="rk-loc-panel" id="panel-return">
            <div class="rk-loc-grid">
                <div class="rk-loc-content">
                    <h3>Separator zanieczyszczeń z magnesem na powrocie</h3>
                    <p>Powrót z instalacji ogrzewania podłogowego zbiera zanieczyszczenia wypłukane z kilkuset metrów <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rur PEX/PERT/PB</a>. Pomiędzy zewnętrznym płaszczem rury a czynnikiem grzewczym stale dochodzi do zjawiska dyfuzji tlenu.</p>
                    <p>Tlen ten wchodzi w nieustanną reakcję z komponentami stalowymi i żeliwnymi w <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obiegu grzewczym</a>, tworząc mikroskopijne cząstki czarnego tlenku żelaza. Umieszczenie separatora bezpośrednio przed pompą obiegową i źródłem ciepła pozwala zatrzymać te drobiny dzięki magnesowi neodymowemu, zanim zniszczą one wrażliwy na opiłki wirnik pompy ECM/PWM.</p>
                </div>
                <div class="rk-physics-box">
                    <h4>
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                        Fizyka Tlenków Żelaza
                    </h4>
                    <div class="rk-phys-item">
                        <div class="rk-phys-val">0,32 mg O₂</div>
                        <div class="rk-phys-label">Dopuszczalna dyfuzja tlenu (na m² na dobę przy 40°C) pomimo stosowania <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">bariery EVOH</a> (PN-EN ISO 15875-2).</div>
                    </div>
                    <div class="rk-phys-item">
                        <div class="rk-phys-val">Fe<sub>3</sub>O<sub>4</sub></div>
                        <div class="rk-phys-label">Wzór chemiczny magnetytu (czarnego szlamu), który niszczy pompy obiegowe.</div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-loc-btn');
    const panelSupply = document.getElementById('panel-supply');
    const panelReturn = document.getElementById('panel-return');

    for (let i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            let targetState = this.getAttribute('data-target');

            // Czyszczenie klas aktywnych
            for (let j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Dodanie klasy do klikniętego
            this.classList.add('active');

            // Logika paneli (bez operatorów logicznych and/or)
            if (targetState === 'supply') {
                panelReturn.classList.remove('active');
                panelSupply.classList.add('active');
            } else {
                panelSupply.classList.remove('active');
                panelReturn.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-kv-dark: #0f172a;
    --rk-kv-blue: #0284c7;
    --rk-kv-blue-light: #e0f2fe;
    --rk-kv-gray-light: #f8fafc;
    --rk-kv-border: #e2e8f0;
    --rk-kv-text: #475569;
    --rk-kv-red: #ef4444;
    --rk-kv-red-light: #fef2f2;
    --rk-kv-green: #10b981;
    --rk-kv-green-light: #dcfce7;
}

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

.rk-kv-header {
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-kv-gray-light) 100%);
    padding: 40px;
    border-bottom: 1px solid var(--rk-kv-border);
}

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

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

.rk-kv-header p:last-child { margin: 0; }

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

.rk-math-panel {
    background: var(--rk-kv-dark);
    color: #ffffff;
    padding: 30px 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-math-col h3 {
    font-size: 15px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 15px 0;
}

.rk-formula-visual {
    background: #1e293b;
    border: 1px solid #334155;
    padding: 15px;
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    color: #e2e8f0;
}

.rk-formula-visual strong {
    color: var(--rk-kv-blue-light);
}

.rk-kv-controls {
    padding: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-kv-border);
}

.rk-slider-group {
    margin-bottom: 30px;
}

.rk-slider-group:last-child {
    margin-bottom: 0;
}

/* Pancerny układ nagłówków suwaków */
.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    width: 100%;
    flex-wrap: nowrap; /* Zabezpieczenie przed załamaniem linii */
}

.rk-slider-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-kv-dark);
    padding-right: 15px;
}

.rk-slider-val {
    font-size: 18px;
    font-weight: 900;
    color: #0284c7 !important; /* Wymuszenie koloru tekstu */
    background: #e0f2fe !important; /* Wymuszenie koloru tła */
    padding: 6px 16px;
    border-radius: 8px;
    display: inline-block;
    white-space: nowrap; /* Zabezpieczenie przed dzieleniem wyrazów */
    flex-shrink: 0; /* Zabezpieczenie przed zgnieceniem przez motyw */
}

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

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-kv-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

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

.rk-kv-results {
    padding: 40px;
    background: var(--rk-kv-gray-light);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-kv-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    overflow: hidden;
}

.rk-res-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--rk-kv-border);
    transition: background 0.3s;
}

.rk-res-card.safe::before { background: var(--rk-kv-green); }
.rk-res-card.danger::before { background: var(--rk-kv-red); }

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

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

.rk-res-subtitle {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

.rk-res-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-res-card.safe .rk-res-icon { background: var(--rk-kv-green-light); color: var(--rk-kv-green); }
.rk-res-card.danger .rk-res-icon { background: var(--rk-kv-red-light); color: var(--rk-kv-red); }

.rk-res-value-box {
    margin-bottom: 15px;
}

.rk-res-value {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-kv-dark);
    line-height: 1;
    margin-bottom: 5px;
}

.rk-res-unit {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
}

.rk-res-bar-container {
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.rk-res-bar {
    height: 100%;
    width: 0%;
    transition: width 0.4s ease, background 0.4s ease;
}

.rk-res-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-kv-text);
}

.rk-res-desc strong {
    color: var(--rk-kv-dark);
}

@media (max-width: 768px) {
    .rk-kv-header, .rk-kv-controls, .rk-kv-results { padding: 25px 20px; }
    .rk-math-panel { grid-template-columns: 1fr; padding: 25px 20px; gap: 20px; }
    .rk-kv-results { grid-template-columns: 1fr; gap: 20px; }
    .rk-res-value { font-size: 32px; }
    
    /* Na bardzo małych ekranach pozwalamy na złamanie etykiety, ale chronimy wartość */
    .rk-slider-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/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-kalkulator-kv",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Jak dobrać współczynnik Kv i spadek ciśnienia dla separatora w ogrzewaniu podłogowym?",
    "description": "Interaktywny kalkulator oporów hydraulicznych pomagający dobrać odpowiedni przepływ nominalny i współczynnik Kv separatora dla instalacji płaszczyznowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-kv",
    "name": "Zestawienie spadków ciśnień w zależności od współczynnika Kv separatora",
    "description": "Baza danych obliczeniowych dla obciążeń pomp obiegowych w funkcji doboru przekroju armatury zabezpieczającej (DN20 vs DN25).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik kv separatora",
      "spadek ciśnienia w podłogówce",
      "opory hydrauliczne pompy obiegowej",
      "przepływ nominalny pompy ciepła",
      "dobór średnicy rur do podłogówki"
    ],
    "measurementTechnique": "Obliczenia analityczne wg wzoru na przepływ objętościowy (V = Q / c*dT) oraz straty ciśnienia na armaturze (dp = (V/Kv)^2 * 100).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Model A (DN20, Kv 3.5): Przekroczenie bezpiecznych oporów, dławienie pompy 6-metrowej na poziomie ponad 40%.",
        "Model B (DN25, Kv 8.0): Optymalna praca instalacji, minimalne straty ciśnienia nie obciążające podnoszenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-kalkulator-kv",
    "name": "Kalkulator Współczynnika Kv i Oporów Separatora",
    "description": "Narzędzie symulujące na żywo obciążenie pompy obiegowej w zależności od mocy źródła ciepła i wybranego modelu separatora.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-kv-container">
    <div class="rk-kv-header">
        <h2>Jak dobrać współczynnik Kv i spadek ciśnienia dla separatora w ogrzewaniu podłogowym?</h2>
        <p>Dla optymalnej pracy instalacji płaszczyznowej spadek ciśnienia na separatorze nie może przekraczać 2–5 kPa (0,02–0,05 bar) przy przepływie nominalnym, co wymaga doboru urządzenia o współczynniku przepływu Kv ≥ 6,0 m³/h dla domów o mocy grzewczej 8–12 kW.</p>
        <p>Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264-4</a>, maksymalny łączny liniowy i miejscowy opór hydrauliczny najmniej korzystnej pętli wraz ze źródłem nie powinien obciążać <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a> wyżej niż do 60–70% jej dostępnej wysokości podnoszenia (zwykle dostępny budżet to 40–60 kPa).</p>
    </div>

    <div class="rk-math-panel">
        <div class="rk-math-col">
            <h3>1. Obliczenie przepływu (V)</h3>
            <div class="rk-formula-visual">
                V = <strong id="math-q">10</strong> / (1.163 · <strong id="math-dt">5</strong>) = <strong id="math-v">1.72</strong> m³/h
            </div>
        </div>
        <div class="rk-math-col">
            <h3>2. Opór hydrauliczny (Δp)</h3>
            <div class="rk-formula-visual">
                Δp = (V / <strong>Kv</strong>)² · 100 [kPa]
            </div>
        </div>
    </div>

    <div class="rk-kv-controls">
        <div class="rk-slider-group">
            <div class="rk-slider-header">
                <span class="rk-slider-label">Zapotrzebowanie na moc grzewczą (Q)</span>
                <span class="rk-slider-val" id="val-q">10 kW</span>
            </div>
            <input type="range" min="5" max="20" step="1" value="10" class="rk-range" id="input-q" aria-label="Suwak zapotrzebowania na moc grzewczą">
        </div>

        <div class="rk-slider-group">
            <div class="rk-slider-header">
                <span class="rk-slider-label"><a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" style="color:inherit;">Różnica temperatur zasilania/powrotu (ΔT)</a></span>
                <span class="rk-slider-val" id="val-dt">5 K</span>
            </div>
            <input type="range" min="3" max="10" step="1" value="5" class="rk-range" id="input-dt" aria-label="Suwak różnicy temperatur">
        </div>
    </div>

    <div class="rk-kv-results">
        
        <!-- Model A: DN20 -->
        <div class="rk-res-card danger" id="card-a">
            <div class="rk-res-header">
                <div>
                    <h3 class="rk-res-title">Model A (Mały)</h3>
                    <div class="rk-res-subtitle">Średnica DN20 (3/4") | Kv = 3.5</div>
                </div>
                <div class="rk-res-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="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>
            <div class="rk-res-value-box">
                <div class="rk-res-value" id="res-dp-a">24.15</div>
                <div class="rk-res-unit">Spadek ciśnienia [kPa]</div>
            </div>
            <div class="rk-res-bar-container">
                <div class="rk-res-bar" id="bar-a" style="width: 40%; background: var(--rk-kv-red);"></div>
            </div>
            <div class="rk-res-desc">
                Konsumuje <strong id="res-percent-a">40.2%</strong> budżetu ciśnieniowego standardowej pompy (60 kPa). Powoduje dławienie przepływu.
            </div>
        </div>

        <!-- Model B: DN25 -->
        <div class="rk-res-card safe" id="card-b">
            <div class="rk-res-header">
                <div>
                    <h3 class="rk-res-title">Model B (Optymalny)</h3>
                    <div class="rk-res-subtitle">Średnica DN25 (1") | Kv = 8.0</div>
                </div>
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
            </div>
            <div class="rk-res-value-box">
                <div class="rk-res-value" id="res-dp-b">4.62</div>
                <div class="rk-res-unit">Spadek ciśnienia [kPa]</div>
            </div>
            <div class="rk-res-bar-container">
                <div class="rk-res-bar" id="bar-b" style="width: 7%; background: var(--rk-kv-green);"></div>
            </div>
            <div class="rk-res-desc">
                Konsumuje <strong id="res-percent-b">7.7%</strong> budżetu ciśnieniowego pompy. Zachowuje nadwyżkę dla skrajnych pętli ogrzewania.
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const inputQ = document.getElementById('input-q');
    const inputDT = document.getElementById('input-dt');
    
    // Labels
    const valQ = document.getElementById('val-q');
    const valDT = document.getElementById('val-dt');
    
    // Math visuals
    const mathQ = document.getElementById('math-q');
    const mathDT = document.getElementById('math-dt');
    const mathV = document.getElementById('math-v');
    
    // Results A (Kv 3.5)
    const cardA = document.getElementById('card-a');
    const resDpA = document.getElementById('res-dp-a');
    const barA = document.getElementById('bar-a');
    const resPercentA = document.getElementById('res-percent-a');
    
    // Results B (Kv 8.0)
    const cardB = document.getElementById('card-b');
    const resDpB = document.getElementById('res-dp-b');
    const barB = document.getElementById('bar-b');
    const resPercentB = document.getElementById('res-percent-b');

    // Constants
    const kvA = 3.5;
    const kvB = 8.0;
    const pumpBudget = 60; // kPa

    function updateCalculator() {
        let q = parseFloat(inputQ.value);
        let dt = parseFloat(inputDT.value);

        // Update labels
        valQ.textContent = q + " kW";
        valDT.textContent = dt + " K";
        mathQ.textContent = q;
        mathDT.textContent = dt;

        // Calculate V (m3/h)
        let v = q / (1.163 * dt);
        mathV.textContent = v.toFixed(2);

        // Calculate DP for A
        let dpA = Math.pow((v / kvA), 2) * 100;
        let percentA = (dpA / pumpBudget) * 100;

        // Calculate DP for B
        let dpB = Math.pow((v / kvB), 2) * 100;
        let percentB = (dpB / pumpBudget) * 100;

        // Update DOM A
        resDpA.textContent = dpA.toFixed(2);
        resPercentA.textContent = percentA.toFixed(1) + "%";
        
        let visualBarA = percentA;
        if (visualBarA > 100) { visualBarA = 100; }
        barA.style.width = visualBarA + "%";

        // Logic for Card A Styling (No && operators)
        if (percentA > 20) {
            cardA.classList.remove('safe');
            cardA.classList.add('danger');
            barA.style.background = 'var(--rk-kv-red)';
        }
        if (percentA <= 20) {
            cardA.classList.remove('danger');
            cardA.classList.add('safe');
            barA.style.background = 'var(--rk-kv-green)';
        }

        // Update DOM B
        resDpB.textContent = dpB.toFixed(2);
        resPercentB.textContent = percentB.toFixed(1) + "%";
        
        let visualBarB = percentB;
        if (visualBarB > 100) { visualBarB = 100; }
        barB.style.width = visualBarB + "%";

        // Logic for Card B Styling (No && operators)
        if (percentB > 20) {
            cardB.classList.remove('safe');
            cardB.classList.add('danger');
            barB.style.background = 'var(--rk-kv-red)';
        }
        if (percentB <= 20) {
            cardB.classList.remove('danger');
            cardB.classList.add('safe');
            barB.style.background = 'var(--rk-kv-green)';
        }
    }

    inputQ.addEventListener('input', updateCalculator);
    inputDT.addEventListener('input', updateCalculator);

    // Initial calculation
    updateCalculator();
});
</script>



<style>
:root {
    --rk-fail-dark: #0f172a;
    --rk-fail-red: #ef4444;
    --rk-fail-red-dark: #b91c1c;
    --rk-fail-red-light: #fef2f2;
    --rk-fail-blue: #0284c7;
    --rk-fail-gray-light: #f8fafc;
    --rk-fail-border: #e2e8f0;
    --rk-fail-text: #475569;
}

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

.rk-fail-header {
    padding: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-fail-border);
}

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

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

.rk-fail-header p:last-child { margin: 0; }

.rk-norm-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-fail-gray-light);
    border: 1px solid var(--rk-fail-border);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-fail-dark);
    margin-top: 15px;
}

/* Interfejs Przełącznika */
.rk-fail-controls {
    background: var(--rk-fail-gray-light);
    padding: 30px 40px;
    border-bottom: 1px solid var(--rk-fail-border);
    display: flex;
    justify-content: center;
}

.rk-fail-toggle {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    position: relative;
    width: 100%;
    max-width: 500px;
}

.rk-fail-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-fail-btn.active { color: var(--rk-fail-red-dark); }

.rk-fail-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: #ffffff;
    border-radius: 8px;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    z-index: 1;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border-bottom: 2px solid var(--rk-fail-red);
}

.rk-fail-toggle[data-state="dirt"] .rk-fail-slider {
    transform: translateX(100%);
}

/* Panele Skutków */
.rk-fail-panels {
    background: #ffffff;
}

.rk-fail-panel {
    display: none;
    padding: 40px;
    animation: fadeIn 0.4s ease;
}

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

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

.rk-cause-effect-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
}

.rk-ce-card {
    background: #ffffff;
    border: 1px solid var(--rk-fail-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    border-left: 6px solid var(--rk-fail-red);
}

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

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

.rk-ce-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-fail-dark);
    margin: 0;
}

.rk-ce-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-fail-text);
    margin: 0 0 15px 0;
}

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

.rk-ce-highlight {
    background: var(--rk-fail-gray-light);
    border: 1px solid var(--rk-fail-border);
    padding: 15px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-fail-dark);
    display: flex;
    align-items: center;
    gap: 12px;
}

@media (max-width: 768px) {
    .rk-fail-header, .rk-fail-controls, .rk-fail-panel { padding: 25px 20px; }
    .rk-fail-header h2 { font-size: 22px; }
    .rk-fail-btn { flex-direction: column; font-size: 13px; padding: 10px; gap: 5px; }
    .rk-ce-card { padding: 20px; }
    .rk-ce-title { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-awarie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Czym grozi brak separatora magnetycznego i deaeratora w płaszczyznowym układzie C.O.?",
    "description": "Zjawiska kawitacji, uszkodzenia pomp ECM oraz spadek wydajności układu grzewczego spowodowane brakiem armatury separacyjnej i niezgodnością z normą VDI 2035.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-awarie",
    "name": "Wpływ braku separacji na żywotność komponentów kotłowni",
    "description": "Baza danych awarii hydraulicznych wynikających z braku filtracji magnetycznej i deaeracji. Koszty napraw i spadki sprawności COP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "awaria pompy obiegowej ECM",
      "błąd przepływu pompy ciepła",
      "spadek COP pompy ciepła",
      "zapowietrzenie podłogówki PEX",
      "norma VDI 2035 korozja"
    ],
    "measurementTechnique": "Mapowanie przyczynowo-skutkowe: obecność tlenu (powyżej 0,1 mg/l) i magnetytu do degradacji wymienników i oporów hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Awaria pomp ECM: Zablokowanie wirnika magnetytem, koszt wymiany głowicy 600-1300 PLN.",
        "Spadek sprawności: 1 mm warstwa szlamu na wymienniku obniża wymianę ciepła o 12-15%, powodując wzrost kosztów prądu o 400-900 PLN rocznie.",
        "Korek powietrzny w rurach PEX: Prędkość 0,15-0,6 m/s nie porywa mikropęcherzy, zatrzymując całkowicie przepływ w pętli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-drzewo-awarii",
    "name": "Symulator Drzewa Awarii Hydraulicznych",
    "description": "Interaktywne narzędzie edukacyjne ilustrujące łańcuch zniszczeń w instalacji płaszczyznowej w zależności od głównego czynnika degradującego (powietrze lub szlam).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fail-container">
    <div class="rk-fail-header">
        <h2>Czym grozi brak separatora magnetycznego i deaeratora w płaszczyznowym układzie C.O.?</h2>
        <p>Brak separatorów w instalacji ogrzewania podłogowego prowadzi do spadku wydajności grzewczej pętli nawet o 30–40%, uszkodzenia panewek pomp obiegowych wysokiej sprawności ECM/PWM w czasie poniżej 24 miesięcy oraz powstawania niszczącego zjawiska kawitacji i szumów hydraulicznych.</p>
        <div class="rk-norm-badge">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Norma VDI 2035 Blatt 2 / PN-EN 14868
        </div>
        <p style="margin-top: 15px; font-size: 14px;">Wytyczne jednoznacznie wskazują, że stężenie tlenu w wodzie grzewczej powyżej 0,1 mg/l wywołuje intensywną korozję wżerową elementów metalowych oraz wytrącanie szlamu.</p>
    </div>

    <div class="rk-fail-controls">
        <div class="rk-fail-toggle" id="rk-fail-toggle" data-state="air">
            <div class="rk-fail-slider"></div>
            <button class="rk-fail-btn active" data-target="air">
                <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="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path></svg>
                Obecność Powietrza
            </button>
            <button class="rk-fail-btn" data-target="dirt">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>
                Szlam i Magnetyt
            </button>
        </div>
    </div>

    <div class="rk-fail-panels">
        
        <!-- Panel 1: Powietrze -->
        <div class="rk-fail-panel active" id="panel-air">
            <div class="rk-cause-effect-grid">
                
                <div class="rk-ce-card">
                    <div class="rk-ce-header">
                        <div class="rk-ce-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="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 17l4 4 4-4"></path></svg>
                        </div>
                        <h3 class="rk-ce-title">Zapowietrzanie i "Korek Powietrzny" PEX</h3>
                    </div>
                    <p class="rk-ce-desc">Ze względu na małą prędkość liniową przepływu cieczy w rurach ogrzewania podłogowego (zalecana prędkość według normy PN-EN 1264 wynosi zaledwie 0,15–0,6 m/s), mikropęcherzyki powietrza nie są w stanie zostać fizycznie porwane do klasycznych odpowietrzników na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczach</a>.</p>
                    <p class="rk-ce-desc">Gromadzą się one w najwyższych łukach rur w wylewce, tworząc poduszki powietrzne. Zwiększa to opory hydrauliczne do poziomu, w którym przepływ całkowicie zanika.</p>
                    <div class="rk-ce-highlight">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        Skutek: Zimne strefy podłogi, uciążliwe szumy i wibracje w instalacji.
                    </div>
                </div>

            </div>
        </div>

        <!-- Panel 2: Szlam -->
        <div class="rk-fail-panel" id="panel-dirt">
            <div class="rk-cause-effect-grid">
                
                <!-- Błąd 1: Pompa -->
                <div class="rk-ce-card">
                    <div class="rk-ce-header">
                        <div class="rk-ce-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="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>
                        <h3 class="rk-ce-title">Awaria pompy obiegowej ECM</h3>
                    </div>
                    <p class="rk-ce-desc">Współczesne, energooszczędne <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowe</a> (dyrektywa ErP) wykorzystują wirniki z magnesami trwałymi (PM technology). Drobiny magnetytu (Fe<sub>3</sub>O<sub>4</sub>) krążące w wodzie są błyskawicznie przyciągane do szczeliny roboczej pomiędzy wirnikiem a statorem.</p>
                    <div class="rk-ce-highlight">
                        <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.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>
                        Mechaniczne zablokowanie wirnika (Błąd E10 / E4) – koszt naprawy od 600 do 1300 PLN.
                    </div>
                </div>

                <!-- Błąd 2: Wymiennik -->
                <div class="rk-ce-card">
                    <div class="rk-ce-header">
                        <div class="rk-ce-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 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>
                        </div>
                        <h3 class="rk-ce-title">Zarastanie płytowego wymiennika ciepła</h3>
                    </div>
                    <p class="rk-ce-desc">Warstwa szlamu magnetytowego o grubości zaledwie 1 mm osadzona na powierzchni <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">wymiennika płytowego</a> działa jak agresywny izolator termiczny, obniżając sprawność wymiany ciepła aż o 12–15%.</p>
                    <p class="rk-ce-desc">Dla <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> oznacza to konieczność podniesienia temperatury skraplania o 3–5 K, co drastycznie psuje ekonomikę pracy.</p>
                    <div class="rk-ce-highlight">
                        <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="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                        Obniżenie sprawności COP o 7,5–12.5% i wyższe rachunki za prąd o ok. 400–900 PLN rocznie.
                    </div>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleWrapper = document.getElementById('rk-fail-toggle');
    const btns = toggleWrapper.querySelectorAll('.rk-fail-btn');
    const panelAir = document.getElementById('panel-air');
    const panelDirt = document.getElementById('panel-dirt');

    for (let i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            let targetState = this.getAttribute('data-target');

            // Czyszczenie klas aktywnych
            for (let j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja klikniętego przycisku
            this.classList.add('active');
            toggleWrapper.setAttribute('data-state', targetState);

            // Sterowanie panelami bez użycia operatorów logicznych (and/or)
            if (targetState === 'air') {
                panelDirt.classList.remove('active');
                panelAir.classList.add('active');
            } else {
                panelAir.classList.remove('active');
                panelDirt.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-light: #e0f2fe;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #475569;
    --rk-comp-bg: #ffffff;
    --rk-comp-gray: #f8fafc;
    --rk-comp-red: #dc2626;
    --rk-comp-red-light: #fef2f2;
    --rk-comp-green: #059669;
}

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

.rk-comp-header {
    padding: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

/* Interfejs wyboru separatora */
.rk-comp-selector {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--rk-comp-gray);
    border-bottom: 1px solid var(--rk-comp-border);
}

.rk-comp-btn {
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 4px solid transparent;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-comp-btn:hover {
    background: #f1f5f9;
}

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

.rk-comp-btn-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    transition: all 0.3s;
}

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

.rk-comp-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-comp-text);
    text-align: center;
    line-height: 1.3;
}

.rk-comp-btn.active .rk-comp-btn-title {
    color: var(--rk-comp-dark);
}

/* Panele z danymi */
.rk-comp-panels {
    padding: 40px;
    background: #ffffff;
}

.rk-comp-panel {
    display: none;
    animation: fadeInPanel 0.4s ease;
}

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

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

.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 20px;
}

.rk-metric-box {
    background: var(--rk-comp-gray);
    border: 1px solid var(--rk-comp-border);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.rk-metric-label {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

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

.rk-metric-value.highlight { color: var(--rk-comp-blue); }
.rk-metric-value.danger { color: var(--rk-comp-red); }

/* Poprawiony wiersz z kosztami i rekomendacją */
.rk-cost-row {
    background: var(--rk-comp-blue-light);
    border-radius: 12px;
    padding: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    margin-top: 20px;
}

.rk-cost-info {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-comp-dark);
}

.rk-cost-info strong {
    color: var(--rk-comp-blue);
}

.rk-cost-price {
    flex-shrink: 0; /* Zabezpiecza przed zgniataniem ceny */
    text-align: right;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.rk-cost-price strong {
    display: block;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-comp-blue);
    margin-top: 4px;
}

/* Ostrzeżenie Filtr Y */
.rk-warning-block {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: var(--rk-comp-red-light);
    border-left: 5px solid var(--rk-comp-red);
    border-radius: 0 16px 16px 0;
}

.rk-warning-block h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-comp-red);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-warning-block p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-comp-dark);
    margin: 0 0 15px 0;
}

.rk-warning-block p:last-child {
    margin: 0;
}

.rk-warning-block a {
    color: var(--rk-comp-red);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-panels { padding: 25px 20px; }
    .rk-comp-header h2 { font-size: 24px; }
    
    .rk-comp-selector {
        grid-template-columns: 1fr;
        border-bottom: none;
    }
    
    .rk-comp-btn {
        flex-direction: row;
        text-align: left;
        border-bottom: 1px solid var(--rk-comp-border);
        border-left: 4px solid transparent;
        padding: 15px 20px;
    }
    
    .rk-comp-btn.active {
        border-bottom-color: var(--rk-comp-border);
        border-left-color: var(--rk-comp-blue);
    }
    
    .rk-comp-btn-title { text-align: left; font-size: 15px; }
    
    .rk-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    
    .rk-cost-row { 
        flex-direction: column; 
        gap: 20px; 
        align-items: flex-start; 
        text-align: left; 
    }
    
    .rk-cost-price { text-align: left; }
    
    .rk-warning-block { margin: 0 20px 20px 20px; padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Jaki separator wybrać do ogrzewania podłogowego – porównanie techniczne",
    "description": "Zestawienie techniczne separatorów zanieczyszczeń: mosiężnych, kompozytowych oraz filtrów siatkowych. Wpływ na żywotność instalacji ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-komparator",
    "name": "Parametry Techniczne i Hydrauliczne Filtrów C.O.",
    "description": "Baza danych parametrów hydraulicznych: współczynniki Kv, indukcja magnetyczna oraz precyzja filtracji dla różnych typów armatury zabezpieczającej źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik Kv separatora",
      "spadek ciśnienia w instalacji",
      "filtr skośny do pompy ciepła",
      "indukcja magnesu neodymowego",
      "czyszczenie instalacji c.o."
    ],
    "measurementTechnique": "Zestawienie porównawcze przepustowości hydraulicznej (przepływ max) oraz strat ciśnienia przy nominalnym przepływie 1,8 m3/h.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Separator Mosiężny: Kv 7,5 - 11,0 m3/h, spadek ciśnienia 2,6 - 4,5 kPa.",
        "Separator Kompozytowy: Kv 4,8 - 7,0 m3/h, spadek ciśnienia 6,0 - 11,2 kPa.",
        "Filtr Skośny Y: Ekstremalny spadek ciśnienia 16,0 - 32,0 kPa, filtracja tylko pow. 400 mikrometrów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-komparator",
    "name": "Interaktywny Komparator Separatorów Zanieczyszczeń",
    "description": "Aplikacja pozwalająca na błyskawiczne porównanie możliwości technicznych armatury zabezpieczającej w celu poprawnego doboru pod pompę ciepła.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container">
    <div class="rk-comp-header">
        <h2>Jaki separator wybrać do ogrzewania podłogowego – porównanie techniczne</h2>
        <p>Wybór materiału korpusu, typu elementu filtracyjnego oraz maksymalnego przepływu (współczynnik Kv) bezpośrednio decyduje o żywotności instalacji i częstotliwości czyszczenia osadnika.</p>
    </div>

    <!-- Nawigacja / Przyciski -->
    <div class="rk-comp-selector">
        <button class="rk-comp-btn active" data-target="panel-mosiadz">
            <div class="rk-comp-btn-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>
            <span class="rk-comp-btn-title">Mosiężny<br>(Dedykowany)</span>
        </button>

        <button class="rk-comp-btn" data-target="panel-kompozyt">
            <div class="rk-comp-btn-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
            </div>
            <span class="rk-comp-btn-title">Kompozytowy<br>(Poliamid PA66)</span>
        </button>

        <button class="rk-comp-btn" data-target="panel-combo">
            <div class="rk-comp-btn-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>
            <span class="rk-comp-btn-title">Kombi 2w1<br>(Air & Dirt)</span>
        </button>

        <button class="rk-comp-btn" data-target="panel-filtrY">
            <div class="rk-comp-btn-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
            </div>
            <span class="rk-comp-btn-title">Tradycyjny<br>Filtr Skośny Y</span>
        </button>
    </div>

    <!-- Panele zawartości -->
    <div class="rk-comp-panels">
        
        <!-- Mosiężny -->
        <div class="rk-comp-panel active" id="panel-mosiadz">
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Przepływ Max (Kv)</div>
                    <div class="rk-metric-value highlight">7,5 – 11,0 m³/h</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Spadek ciśnienia (1,8 m³/h)</div>
                    <div class="rk-metric-value">2,6 – 4,5 kPa</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Indukcja magnesu</div>
                    <div class="rk-metric-value">12 000 – 14 000 G</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Filtracja cząstek</div>
                    <div class="rk-metric-value highlight">Od 2 µm</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Sprawność deaeracji</div>
                    <div class="rk-metric-value">Brak (wymaga osobnego)</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Metoda czyszczenia</div>
                    <div class="rk-metric-value">Pod ciśnieniem (Zawór)</div>
                </div>
            </div>
            <div class="rk-cost-row">
                <div class="rk-cost-info">
                    Rekomendacja: <strong>Najlepszy wybór dla pomp ciepła</strong> ze względu na bardzo wysoki współczynnik Kv.
                </div>
                <div class="rk-cost-price">
                    Średni Koszt brutto
                    <strong>450 – 750 PLN</strong>
                </div>
            </div>
        </div>

        <!-- Kompozyt -->
        <div class="rk-comp-panel" id="panel-kompozyt">
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Przepływ Max (Kv)</div>
                    <div class="rk-metric-value">4,8 – 7,0 m³/h</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Spadek ciśnienia (1,8 m³/h)</div>
                    <div class="rk-metric-value">6,0 – 11,2 kPa</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Indukcja magnesu</div>
                    <div class="rk-metric-value">10 000 – 12 000 G</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Filtracja cząstek</div>
                    <div class="rk-metric-value">Od 5 µm</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Sprawność deaeracji</div>
                    <div class="rk-metric-value">Brak (wymaga osobnego)</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Metoda czyszczenia</div>
                    <div class="rk-metric-value">Pod ciśnieniem (Zawór)</div>
                </div>
            </div>
            <div class="rk-cost-row">
                <div class="rk-cost-info">
                    Rekomendacja: <strong>Wystarczający do kotłów gazowych</strong>, jednak stawia większe opory hydrauliczne.
                </div>
                <div class="rk-cost-price">
                    Średni Koszt brutto
                    <strong>280 – 420 PLN</strong>
                </div>
            </div>
        </div>

        <!-- Combo 2w1 -->
        <div class="rk-comp-panel" id="panel-combo">
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Przepływ Max (Kv)</div>
                    <div class="rk-metric-value">5,5 – 8,5 m³/h</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Spadek ciśnienia (1,8 m³/h)</div>
                    <div class="rk-metric-value">4,8 – 8,0 kPa</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Indukcja magnesu</div>
                    <div class="rk-metric-value">12 000 G</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Filtracja cząstek</div>
                    <div class="rk-metric-value">Od 5 µm</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Sprawność deaeracji</div>
                    <div class="rk-metric-value highlight">Do 99% mikropęcherzy</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Metoda czyszczenia</div>
                    <div class="rk-metric-value">Pod ciśnieniem (Zawór)</div>
                </div>
            </div>
            <div class="rk-cost-row">
                <div class="rk-cost-info">
                    Rekomendacja: <strong>Idealne do małych kotłowni</strong>, gdzie brakuje miejsca na dwa osobne urządzenia.
                </div>
                <div class="rk-cost-price">
                    Średni Koszt brutto
                    <strong>600 – 1100 PLN</strong>
                </div>
            </div>
        </div>

        <!-- Filtr Y -->
        <div class="rk-comp-panel" id="panel-filtrY">
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Przepływ Max (Kv)</div>
                    <div class="rk-metric-value danger">3,0 – 4,5 m³/h</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Spadek ciśnienia (1,8 m³/h)</div>
                    <div class="rk-metric-value danger">16,0 – 32,0 kPa</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Indukcja magnesu</div>
                    <div class="rk-metric-value">Brak / Słaba (3000 G)</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Filtracja cząstek</div>
                    <div class="rk-metric-value danger">Tylko > 400 µm</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Sprawność deaeracji</div>
                    <div class="rk-metric-value">0%</div>
                </div>
                <div class="rk-metric-box">
                    <div class="rk-metric-label">Metoda czyszczenia</div>
                    <div class="rk-metric-value">Tylko po odcięciu wody</div>
                </div>
            </div>
            <div class="rk-cost-row">
                <div class="rk-cost-info">
                    Rekomendacja: <strong>Absolutnie odradzany</strong> jako jedyne zabezpieczenie przy pompach ciepła.
                </div>
                <div class="rk-cost-price">
                    Średni Koszt brutto
                    <strong>45 – 90 PLN</strong>
                </div>
            </div>
        </div>

    </div>

    <!-- Blok Ostrzegawczy H3 -->
    <div class="rk-warning-block">
        <h3>
            <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="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>
            Dlaczego tradycyjny filtr skośny siatkowy (typu Y) nie wystarcza w ogrzewaniu podłogowym?
        </h3>
        <p>Siatka stalowa w filtrze skośnym posiada oczka o wielkości 400 µm (0,4 mm) do 800 µm. Większość szlamu magnetytowego powstającego w instalacjach c.o. ma wielkość cząstek w przedziale 2–50 µm. Oznacza to, że cząstki te swobodnie przechodzą przez filtr Y, trafiając prosto do <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>.</p>
        <p>Ponadto filtr Y szybko ulega całkowitemu zatkaniu przy osadzaniu się drobnych zanieczyszczeń biologicznych, drastycznie zwiększając spadek ciśnienia (Delta p powyżej 50 kPa). Taki opór odcina przepływ w pętlach i często doprowadza do wyłączenia urządzenia z powodu błędu przepływu (Flow Switch Error). Pamiętaj, aby uwzględniać ten aspekt przy <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">unikaniu błędów montażowych</a> podczas budowy kotłowni.</p>
    </div>
</div>

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

    for (let i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            let targetId = this.getAttribute('data-target');

            // Czyszczenie klas aktywnych (bezpieczna pętla)
            for (let j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            for (let k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Nadanie aktywnego stanu
            this.classList.add('active');
            let targetPanel = document.getElementById(targetId);
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-sim-dark: #0f172a;
    --rk-sim-blue: #0284c7;
    --rk-sim-blue-light: #e0f2fe;
    --rk-sim-border: #e2e8f0;
    --rk-sim-text: #475569;
    --rk-sim-bg: #ffffff;
    --rk-sim-gray: #f8fafc;
    --rk-sim-red: #ef4444;
    --rk-sim-green: #10b981;
}

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

.rk-sim-header {
    background: linear-gradient(135deg, var(--rk-sim-gray) 0%, #ffffff 100%);
    padding: 35px 40px;
    border-bottom: 1px solid var(--rk-sim-border);
}

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

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

.rk-sim-body {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
}

/* Panel sterowania (Suwaki) - Zabezpieczony przed motywem WP */
.rk-sim-controls {
    background: var(--rk-sim-dark);
    padding: 40px 30px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
}

.rk-sim-controls h3 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 25px 0;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    width: 100%;
}

.rk-slider-group {
    margin-bottom: 35px;
    width: 100%;
    display: flex;
    flex-direction: column;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-slider-val {
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
    background: rgba(255,255,255,0.1);
    padding: 4px 12px;
    border-radius: 8px;
    white-space: nowrap;
}

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

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-sim-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    transition: transform 0.1s;
}

.rk-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

.rk-range::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--rk-sim-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
}

.rk-sim-info {
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #1e293b;
    width: 100%;
}

/* Panel Wyników na Żywo */
.rk-sim-results {
    padding: 40px;
    background: #ffffff;
    width: 100%;
    box-sizing: border-box;
}

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

.rk-res-card {
    border: 1px solid var(--rk-sim-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-res-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background: var(--rk-sim-blue);
}

.rk-res-card.warning::before { background: var(--rk-sim-red); }
.rk-res-card.success::before { background: var(--rk-sim-green); }

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

.rk-res-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-sim-dark);
    margin-bottom: 10px;
    line-height: 1.1;
}

.rk-res-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-sim-text);
}

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

@media (max-width: 768px) {
    .rk-sim-header { padding: 30px 20px; }
    .rk-sim-controls { padding: 30px 20px; }
    .rk-sim-results { padding: 30px 20px; }
    .rk-res-value { font-size: 28px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-kalkulator-stokesa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Jak obliczyć wymaganą pojemność osadnika w instalacji podłogowej?",
    "description": "Interaktywny symulator oparty na Prawie Stokesa pokazujący różnicę między opadaniem grawitacyjnym a przyciąganiem magnetycznym w instalacji grzewczej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-stokes-sim",
    "name": "Parametry Fizyczne Opadania Grawitacyjnego Magnetytu",
    "description": "Zestawienie obliczeniowe dla różnych mocy pomp ciepła obrazujące wymagany czas i objętość dla grawitacyjnego wychwytu zanieczyszczeń.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator pojemności separatora",
      "prawo stokesa w podłogówce",
      "przepływ nominalny pompy ciepła",
      "prędkość opadania magnetytu",
      "dobór separatora magnetycznego"
    ],
    "measurementTechnique": "Dynamiczne obliczanie przepływu V na podstawie mocy Q oraz symulacja wymaganego czasu retencji tr na podstawie zjawiska grawitacyjnego Prawa Stokesa.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zmienna Moc: Kalkulacje obejmują przepływy robocze od 5 kW do 15 kW.",
        "Zmienna Cząstka: Symulacja wychwytu cząstek od 10 do 50 mikrometrów.",
        "Różnica technologiczna: Komora magnetyczna zmniejsza wymagany litraż układu blisko stukrotnie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-stokes-live",
    "name": "Kalkulator Pojemności Osadnika na żywo",
    "description": "Interaktywna aplikacja webowa obliczająca przepływ nominalny oraz minimalną wymaganą pojemność osadnika separatora w zależności od wielkości cząstki i mocy urządzenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sim-container">
    <div class="rk-sim-header">
        <h2>Jak obliczyć wymaganą pojemność osadnika?</h2>
        <p>Przekonaj się na żywo, jak wielkość instalacji (kW) oraz rozmiar zabrudzeń wpływają na wymaganą wielkość separatora. Odkryj siłę Prawa Stokesa w praktyce instalacyjnej.</p>
    </div>

    <div class="rk-sim-body">
        
        <!-- Panel Sterowania -->
        <div class="rk-sim-controls">
            <h3>Parametry instalacji</h3>
            
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Moc instalacji C.O.</span>
                    <span class="rk-slider-val" id="val-power">10 kW</span>
                </div>
                <input type="range" min="5" max="15" step="1" value="10" class="rk-range" id="input-power" aria-label="Suwak mocy instalacji w kilowatach">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Wielkość cząstek szlamu</span>
                    <span class="rk-slider-val" id="val-particle">20 µm</span>
                </div>
                <input type="range" min="10" max="50" step="5" value="20" class="rk-range" id="input-particle" aria-label="Suwak wielkości cząstek w mikrometrach">
            </div>

            <div class="rk-sim-info">
                <strong>Zmienne stałe:</strong><br>
                Gęstość magnetytu = 5200 kg/m³<br>
                Wysokość komory osadnika = 0,08 m<br>
                Różnica temperatur DT = 5 K
            </div>
        </div>

        <!-- Panel Wyników -->
        <div class="rk-sim-results">
            <div class="rk-results-grid">
                
                <div class="rk-res-card info">
                    <div class="rk-res-title">Przepływ cieczy w układzie</div>
                    <div class="rk-res-value" id="res-flow">1.72 m³/h</div>
                    <div class="rk-res-desc">
                        Tyle wody musi przetłoczyć <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> w ciągu godziny, aby ogrzać dom przy założonej różnicy zasilania i powrotu równej 5K.
                    </div>
                </div>

                <div class="rk-res-card warning">
                    <div class="rk-res-title">Osadnik Zwykły (Tylko Grawitacja)</div>
                    <div class="rk-res-value" id="res-grav">28.6 Litra</div>
                    <div class="rk-res-desc">
                        Aby woda zwolniła na tyle (poniżej 0,1 m/s), by drobny szlam zdołał grawitacyjnie opaść na dno, separator musiałby być wielkości ogromnego <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego</a>.
                    </div>
                </div>

                <div class="rk-res-card success">
                    <div class="rk-res-title">Osadnik z Magnesem 12 000 Gauss</div>
                    <div class="rk-res-value" id="res-mag">0.5 Litra</div>
                    <div class="rk-res-desc">
                        Silne pole magnetyczne przyciąga cząstki żelaza setki razy szybciej niż grawitacja. To pozwala drastycznie zmniejszyć korpus urządzenia, przy jednoczesnym zachowaniu 99% skuteczności filtracji.
                    </div>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Pobranie elementów DOM
    const inputPower = document.getElementById('input-power');
    const inputParticle = document.getElementById('input-particle');
    
    const valPower = document.getElementById('val-power');
    const valParticle = document.getElementById('val-particle');
    
    const resFlow = document.getElementById('res-flow');
    const resGrav = document.getElementById('res-grav');
    const resMag = document.getElementById('res-mag');

    // Stałe fizyczne dla Prawa Stokesa
    const g = 9.81;
    const p_p = 5200;
    const p_f = 992;
    const u = 0.000653;
    const h = 0.08;

    // Funkcja obliczeniowa (bezpieczna)
    function calculateStokes() {
        let q = parseFloat(inputPower.value);
        let d_um = parseFloat(inputParticle.value);

        // Aktualizacja etykiet nad suwakami
        valPower.textContent = q + " kW";
        valParticle.textContent = d_um + " µm";

        // Obliczenie przepływu V [m3/h] przy DT = 5K, c = 1.163
        // V = Q / (1.163 * 5) = Q / 5.815
        let v_m3h = q / 5.815;
        resFlow.textContent = v_m3h.toFixed(2) + " m³/h";

        // Przeliczenie d z um na metry
        let d_m = d_um / 1000000;

        // Prędkość opadania Stokesa [m/s]
        // v_s = (g * d^2 * (p_p - p_f)) / (18 * u)
        let numerator = g * (d_m * d_m) * (p_p - p_f);
        let denominator = 18 * u;
        let v_s = numerator / denominator;

        // Czas opadania na wysokość 80 mm [s]
        let t_s = h / v_s;

        // Przeliczenie przepływu na [m3/s]
        let v_m3s = v_m3h / 3600;

        // Wymagana objętość komory [m3] -> Litry
        let v_k_m3 = v_m3s * t_s;
        let v_k_liters = v_k_m3 * 1000;

        resGrav.textContent = v_k_liters.toFixed(1) + " Litra";

        // Objętość z magnesem (symulacja przyspieszenia opadania)
        let v_mag_liters = v_k_liters / 200;
        
        // Zabezpieczenie minimalnego sensownego litrażu separatora
        if (v_mag_liters < 0.35) {
            v_mag_liters = 0.35;
        }

        resMag.textContent = v_mag_liters.toFixed(2) + " Litra";
    }

    // Podpięcie zdarzeń
    inputPower.addEventListener('input', calculateStokes);
    inputParticle.addEventListener('input', calculateStokes);

    // Inicjalizacja przy starcie
    calculateStokes();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-dark: #1e3a8a;
    --rk-calc-bg-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-green: #059669;
    --rk-calc-red: #dc2626;
}

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

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

.rk-calc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

/* Sekcja Wzorów i Teorii */
.rk-theory-box {
    padding: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-theory-box h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
}

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

.rk-formula-card {
    background: var(--rk-calc-bg-light);
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 25px;
}

.rk-formula-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

.rk-math-block {
    font-family: 'Courier New', Courier, monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    border: 1px solid var(--rk-calc-border);
    text-align: center;
    margin-bottom: 15px;
}

.rk-math-vars {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
    color: var(--rk-calc-text);
}

.rk-math-vars li strong {
    color: var(--rk-calc-dark);
}

/* Interaktywny Symulator Magnesu */
.rk-magnet-sim {
    padding: 40px;
    background: var(--rk-calc-bg-light);
}

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

/* Przebudowany, pancerny przełącznik (Grid) */
.rk-toggle-magnet {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    background: #e2e8f0;
    border-radius: 30px;
    padding: 6px;
    width: 100%;
    max-width: 450px;
}

.rk-toggle-btn {
    padding: 14px 15px;
    border: none;
    background: transparent;
    border-radius: 25px;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.4;
}

.rk-toggle-btn[data-target="off"].active {
    background: var(--rk-calc-dark);
    color: #ffffff;
    box-shadow: 0 4px 12px -2px rgba(15, 23, 42, 0.3);
}

.rk-toggle-btn[data-target="on"].active {
    background: var(--rk-calc-blue);
    color: #ffffff;
    box-shadow: 0 4px 12px -2px rgba(2, 132, 199, 0.3);
}

/* Wyniki Obliczeń - Czyste i techniczne */
.rk-results-panel {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.rk-result-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-result-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--rk-calc-border);
    transition: background 0.4s;
}

.rk-result-card.danger::before { background: var(--rk-calc-red); }
.rk-result-card.success::before { background: var(--rk-calc-green); }

.rk-result-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin-bottom: 8px;
    line-height: 1;
}

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

.rk-result-desc {
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--rk-calc-text);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

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

/* Ukrywanie paneli */
.rk-panel-content { display: none; }
.rk-panel-content.active { display: block; animation: fadeIn 0.4s ease; }

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

@media (max-width: 768px) {
    .rk-calc-header, .rk-theory-box, .rk-magnet-sim { padding: 30px 20px; }
    .rk-formula-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-result-card { padding: 30px 20px; }
    .rk-result-val { font-size: 34px; }
    .rk-toggle-btn { padding: 12px 10px; font-size: 13px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-fizyka-separacji",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Jak obliczyć wymaganą pojemność osadnika i przepływ nominalny dla instalacji podłogowej o mocy 8–12 kW?",
    "description": "Zastosowanie Prawa Stokesa w doborze wielkości komory osadnika separatora magnetycznego. Obliczenia wpływu magnesu neodymowego na pojemność urządzenia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-stokes",
    "name": "Równanie Stokesa dla grawitacyjnego opadania zawiesin w c.o.",
    "description": "Dane obliczeniowe przedstawiające różnice w wymaganej pojemności wodnej komory osadnika w zależności od zastosowania pola magnetycznego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność osadnika separatora",
      "przepływ nominalny w podłogówce",
      "obliczenia separatora magnetycznego",
      "magnes neodymowy w ogrzewaniu podłogowym",
      "prawo Stokesa opadanie cząstek"
    ],
    "measurementTechnique": "Wykorzystanie równania grawitacyjnego opadania cząstek (v_s) do ustalenia wymaganego czasu przebywania cieczy w komorze (t_r) na bazie przepływu objętościowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Separacja grawitacyjna: wymaga objętości ok. 28,55 litra dla przepływu 1,8 m3/h.",
        "Separacja magnetyczna: redukuje wymaganą pojemność do 0,35 - 0,5 litra dzięki przyciąganiu magnesu 12000 Gauss."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-stokes-calc",
    "name": "Kalkulator Prawa Stokesa dla Separatorów",
    "description": "Aplikacja edukacyjna pozwalająca zaobserwować, jak wprowadzenie magnesu neodymowego wpływa na gabaryty wymaganego urządzenia ochronnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container">
    <div class="rk-calc-header">
        <h2>Jak obliczyć wymaganą pojemność osadnika?</h2>
        <p>Dla domów o mocy 8–12 kW z przepływem cieczy ok. 1,38–2,06 m³/h, kluczowym zadaniem jest redukcja prędkości przepływu w komorze separatora poniżej 0,1 m/s.</p>
    </div>

    <!-- Teoria i Wzory -->
    <div class="rk-theory-box">
        <h3>Fizyka separacji – Równanie Stokesa</h3>
        <div class="rk-formula-grid">
            
            <div class="rk-formula-card">
                <div class="rk-formula-title">Prędkość opadania cząstki (v_s)</div>
                <div class="rk-math-block">v = [g · d² · (p_p - p_f)] / [18 · µ]</div>
                <ul class="rk-math-vars">
                    <li><strong>g</strong>: Przyspieszenie ziemskie (9,81 m/s²)</li>
                    <li><strong>d</strong>: Średnica cząstki (np. 20 mikrometrów)</li>
                    <li><strong>p_p</strong>: Gęstość magnetytu (5200 kg/m³)</li>
                    <li><strong>p_f</strong>: Gęstość wody grzewczej (992 kg/m³)</li>
                    <li><strong>µ</strong>: Lepkość dynamiczna wody (0,000653 Pa·s)</li>
                </ul>
            </div>

            <div class="rk-formula-card">
                <div class="rk-formula-title">Wymagana komora osadnika (V_k)</div>
                <div class="rk-math-block">V_k = V · t_r</div>
                <ul class="rk-math-vars">
                    <li><strong>V_k</strong>: Wymagana objętość osadnika</li>
                    <li><strong>V</strong>: Przepływ objętościowy (np. 1,8 m³/h)</li>
                    <li><strong>t_r</strong>: Czas opadania cząstki (ok. 57,1 sekundy)</li>
                </ul>
                <p style="font-size: 14px; line-height: 1.6; color: var(--rk-calc-text); margin-top: 15px;">
                    Aby cząstka magnetytu opadła na dno komory o wysokości 80 mm z prędkością grawitacyjną 1,4 mm/s, woda musi zwolnić na blisko minutę.
                </p>
            </div>

        </div>
    </div>

    <!-- Symulator Magnesu -->
    <div class="rk-magnet-sim">
        <div class="rk-sim-controls">
            <div class="rk-toggle-magnet" id="rk-magnet-toggle" data-state="off">
                <button class="rk-toggle-btn active" data-target="off">Tylko Grawitacja</button>
                <button class="rk-toggle-btn" data-target="on">Włącz Magnes 12 000 Gauss</button>
            </div>
        </div>

        <div class="rk-results-panel">
            
            <!-- Wynik: Bez Magnesu -->
            <div class="rk-result-card danger rk-panel-content active" id="rk-panel-grav">
                <div class="rk-result-val">28,55 Litra</div>
                <div class="rk-result-label">Wymagana pojemność osadnika</div>
                <div class="rk-result-desc">
                    Przy przepływie 1,8 m³/h opierając się wyłącznie na opadaniu grawitacyjnym, separator musiałby być wielkości małego <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego</a>. Drobiny szlamu bez pola magnetycznego uciekłyby do wymiennika pomp obiegowych.
                </div>
            </div>

            <!-- Wynik: Z Magnesem -->
            <div class="rk-result-card success rk-panel-content" id="rk-panel-mag">
                <div class="rk-result-val">0,5 Litra</div>
                <div class="rk-result-label">Kompaktowy separator 2w1</div>
                <div class="rk-result-desc">
                    Silne pole magnetyczne zwiększa prędkość ściągania cząstek do rdzenia o 200–500 razy. Dzięki temu możemy bezpiecznie zredukować gabaryty osadnika do kompaktowych rozmiarów, zachowując 99% skuteczności wyłapywania drobin już w jednym cyklu <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obiegu grzewczego</a>.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleContainer = document.getElementById('rk-magnet-toggle');
    const btns = toggleContainer.querySelectorAll('.rk-toggle-btn');
    const panelGrav = document.getElementById('rk-panel-grav');
    const panelMag = document.getElementById('rk-panel-mag');

    for (let i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            let targetState = this.getAttribute('data-target');

            // Usuwamy klasę active ze wszystkich przycisków
            for (let j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            this.classList.add('active');
            
            // Ustawienie atrybutu stanu dla ewentualnych zewnetrznych powiazan
            toggleContainer.setAttribute('data-state', targetState);

            // Logika panelowa
            if (targetState === 'off') {
                panelMag.classList.remove('active');
                panelGrav.classList.add('active');
            } else {
                panelGrav.classList.remove('active');
                panelMag.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-scheme-dark: #0f172a;
    --rk-scheme-blue: #0284c7;
    --rk-scheme-blue-light: #e0f2fe;
    --rk-scheme-border: #e2e8f0;
    --rk-scheme-text: #334155;
    --rk-scheme-bg: #ffffff;
    --rk-scheme-gray: #f8fafc;
}

.rk-scheme-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-scheme-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-scheme-border);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.rk-scheme-header {
    padding: 35px 40px 25px;
    border-bottom: 1px solid var(--rk-scheme-border);
    background: #ffffff;
}

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

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

/* Interaktywna mapa węzłów */
.rk-scheme-map {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 30px 40px;
    background: var(--rk-scheme-gray);
    border-bottom: 1px solid var(--rk-scheme-border);
    position: relative;
}

/* Linia łącząca węzły (Desktop) */
.rk-scheme-line {
    position: absolute;
    top: 50%;
    left: 80px;
    right: 80px;
    height: 4px;
    background: #cbd5e1;
    z-index: 1;
    transform: translateY(-5px);
}

.rk-node-btn {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 140px;
}

.rk-node-icon {
    width: 60px;
    height: 60px;
    background: #ffffff;
    border: 3px solid #cbd5e1;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    transition: all 0.3s ease;
}

.rk-node-btn:hover .rk-node-icon {
    border-color: var(--rk-scheme-blue);
    color: var(--rk-scheme-blue);
}

.rk-node-btn.active .rk-node-icon {
    border-color: var(--rk-scheme-blue);
    background: var(--rk-scheme-blue);
    color: #ffffff;
}

.rk-node-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-scheme-text);
    text-transform: uppercase;
    text-align: center;
    line-height: 1.4;
    transition: color 0.3s;
}

.rk-node-btn.active .rk-node-title {
    color: var(--rk-scheme-blue);
}

/* Obszar zawartości (Panele) */
.rk-scheme-details {
    padding: 40px;
    background: #ffffff;
    min-height: 280px;
}

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

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

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

.rk-node-meta {
    display: inline-block;
    background: var(--rk-scheme-blue-light);
    color: var(--rk-scheme-blue);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

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

.rk-tech-box {
    background: var(--rk-scheme-gray);
    border-left: 4px solid var(--rk-scheme-dark);
    padding: 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 25px;
}

.rk-tech-box h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-scheme-dark);
    margin: 0 0 8px 0;
    text-transform: uppercase;
}

.rk-tech-box p {
    margin: 0;
    font-size: 14px;
}

.rk-tech-code {
    display: block;
    background: #1e293b;
    color: #e2e8f0;
    padding: 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 13px;
    margin-top: 15px;
    overflow-x: auto;
}

@media (max-width: 768px) {
    .rk-scheme-header { padding: 25px 20px; }
    .rk-scheme-header h2 { font-size: 22px; }
    
    .rk-scheme-line { display: none; }
    
    .rk-scheme-map {
        flex-direction: column;
        gap: 15px;
        padding: 25px 20px;
    }
    
    .rk-node-btn {
        width: 100%;
        flex-direction: row;
        text-align: left;
        background: #ffffff;
        padding: 15px;
        border-radius: 12px;
        border: 1px solid var(--rk-scheme-border);
    }
    
    .rk-node-icon { width: 45px; height: 45px; }
    .rk-node-title { text-align: left; font-size: 14px; }
    
    .rk-scheme-details { padding: 30px 20px; }
    .rk-node-panel h3 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-schemat-hydrauliczny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Schemat połączeń hydraulicznych instalacji ogrzewania podłogowego z separatorami",
    "description": "Interaktywny schemat montażu separatora powietrza i zanieczyszczeń w kotłowni. Wytyczne montażowe, lokalizacja zaworów i zasada 5D uspokojenia przepływu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-schemat",
    "name": "Parametry węzłów instalacyjnych i wytyczne armatury odcinającej",
    "description": "Zbiór technicznych wytycznych montażowych dla podzespołów kotłowni, obejmujący lokalizację deaeratorów i separatorów magnetycznych w relacji do źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat instalacji ogrzewania podłogowego",
      "montaż separatora powietrza",
      "gdzie zamontować separator zanieczyszczeń",
      "armatura odcinająca w kotłowni",
      "odpowietrznik pływakowy"
    ],
    "measurementTechnique": "Określenie sekwencji układu w obiegu zamkniętym z zachowaniem zasady rury prostej (minimum 5 średnic nominalnych) w celu wymuszenia laminarnego przepływu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasilanie (najwyższa temperatura, najniższe ciśnienie): dedykowane dla separatora mikropęcherzyków.",
        "Powrót (zbiór osadów z pętli): optymalne miejsce dla filtra magnetycznego neodymowego (min. 12000 G).",
        "Odcinek prosty 5D przed osadnikiem wymagany dla uspokojenia strugi cieczy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-schemat",
    "name": "Inspektor Węzłów Hydraulicznych",
    "description": "Narzędzie interaktywne pozwalające diagnozować i przeglądać konkretne punkty instalacji hydraulicznej (zasilanie, rozdzielacze, powrót) ze szczegółowym opisem parametrów przepływu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-scheme-widget">
    <div class="rk-scheme-header">
        <h2>Schemat połączeń hydraulicznych kotłowni</h2>
        <p>Precyzyjne wpięcie armatury zabezpieczającej w obieg zależy od ciśnienia dynamicznego i temperatury. Wybierz węzeł, aby poznać wytyczne inżynierskie i zasady serwisowe.</p>
    </div>

    <!-- Interaktywna Mapa -->
    <div class="rk-scheme-map">
        <div class="rk-scheme-line"></div>
        
        <button class="rk-node-btn active" data-target="node-1">
            <div class="rk-node-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 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 17l4 4 4-4"></path></svg>
            </div>
            <span class="rk-node-title">Źródło<br>Ciepła</span>
        </button>
        
        <button class="rk-node-btn" data-target="node-2">
            <div class="rk-node-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            </div>
            <span class="rk-node-title">Separator<br>Powietrza</span>
        </button>

        <button class="rk-node-btn" data-target="node-3">
            <div class="rk-node-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line><line x1="10" y1="4" x2="10" y2="20"></line><line x1="14" y1="4" x2="14" y2="20"></line><line x1="18" y1="4" x2="18" y2="20"></line></svg>
            </div>
            <span class="rk-node-title">Rozdzielacz<br>i Pętle</span>
        </button>

        <button class="rk-node-btn" data-target="node-4">
            <div class="rk-node-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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>
            <span class="rk-node-title">Separator<br>Zanieczyszczeń</span>
        </button>
    </div>

    <!-- Panele informacyjne -->
    <div class="rk-scheme-details">
        
        <!-- WĘZEŁ 1 -->
        <div class="rk-node-panel active" id="node-1">
            <span class="rk-node-meta">Węzeł Wymuszenia</span>
            <h3>Pompa ciepła / Kocioł gazowy</h3>
            <p>Punkt startowy każdego układu hydraulicznego. W nowoczesnych kotłowniach wyposażony we wbudowaną w urządzenie wysokosprawną <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową z magnesami trwałymi</a> oraz wrażliwy na zanieczyszczenia płytowy wymiennik ciepła.</p>
            <p>To właśnie to urządzenie musimy bezwzględnie chronić filtrami przed powrotem wody zanieczyszczonej z instalacji płaszczyznowej.</p>
        </div>

        <!-- WĘZEŁ 2 -->
        <div class="rk-node-panel" id="node-2">
            <span class="rk-node-meta">Zasilanie (Tuż za źródłem)</span>
            <h3>Deaerator z odpowietrznikiem pływakowym</h3>
            <p>Urządzenie należy pozycjonować bezwzględnie w pionie (odpowietrznik skierowany do góry). Ciepła woda tuż za króćcem zasilającym źródła ciepła ma najmniejszą zdolność zatrzymywania gazów ze względu na rozprężanie.</p>
            <p>Mikropęcherze uwalniają się z cieczy i są natychmiast wyrzucane automatycznie. Niezbędna jest armatura odcinająca w postaci zaworów kulowych przed i za separatorem.</p>
            <div class="rk-tech-box">
                <h4>Schemat Odcięcia Serwisowego</h4>
                <p>Umożliwia przegląd wkładu separacyjnego bez utraty zładu wody.</p>
                <code class="rk-tech-code">[Źródło] --> [Zawór Kulowy] --> (SEPARATOR) --> [Zawór Kulowy] --> [Instalacja]</code>
            </div>
        </div>

        <!-- WĘZEŁ 3 -->
        <div class="rk-node-panel" id="node-3">
            <span class="rk-node-meta">Dystrybucja i Odbiór Ciepła</span>
            <h3>Rozdzielacze i Pętle Podłogówki (PEX/PERT)</h3>
            <p>To strefa o największej pojemności wodnej i największych oporach liniowych. Nawet w najlepiej wypłukanej <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a> z rur z barierą antydyfuzyjną dochodzi do powolnego procesu przenikania tlenu i tworzenia czarnego szlamu (magnetytu).</p>
            <p>Zabrudzenia te są popychane powoli przez rozdzielacz powrotny w stronę źródła ciepła.</p>
        </div>

        <!-- WĘZEŁ 4 -->
        <div class="rk-node-panel" id="node-4">
            <span class="rk-node-meta">Powrót (Przed pompą obiegową)</span>
            <h3>Separator z wkładem magnetycznym</h3>
            <p>Urządzenie montowane bezpośrednio na powrocie przed źródłem ciepła. Wyłapuje cały osad oraz opiłki żelaza spływające z setek metrów rur podłogówki, zanim trafią one na twardy wirnik pompy z magnesami.</p>
            <p>Montaż musi być ściśle zgodny ze strzałką kierunku przepływu na mosiężnym lub kompozytowym korpusie. Czyszczenie osadnika odbywa się dolnym zaworem spustowym po uprzednim wysunięciu rdzenia magnesu (zwykle o sile 12 000 Gaussów).</p>
            <div class="rk-tech-box">
                <h4>Wskazówka Inżynieryjna: Zasada rury 5D</h4>
                <p>Zachowaj odcinek prostej rury o długości minimum 5x średnica rury (5D) przed wlotem do separatora zanieczyszczeń. Taki odcinek pozwala na uspokojenie przepływu do strugi laminarnej, co drastycznie podnosi sprawność grawitacyjnego opadania zawiesin w komorze dekompresyjnej.</p>
            </div>
        </div>

    </div>
</div>

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

    for (let i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            let targetId = this.getAttribute('data-target');

            // Usuwamy stan aktywny ze wszystkich przycisków (bezpieczna pętla, bez operatorów &#038;&#038;)
            for (let j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }

            // Ukrywamy wszystkie panele
            for (let k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Nadajemy stan aktywny klikniętemu przyciskowi i pokazujemy jego panel
            this.classList.add('active');
            
            let targetPanel = document.getElementById(targetId);
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-blue-light: #f0f9ff;
    --rk-diag-gray: #f8fafc;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
    --rk-diag-green: #059669;
    --rk-diag-red: #ef4444;
    --rk-diag-orange: #d97706;
}

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

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

.rk-diag-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

.rk-diag-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: #ffffff;
}

/* Panel Pytań (Lewa Strona) */
.rk-diag-questions {
    padding: 40px;
    border-right: 1px solid var(--rk-diag-border);
    background: var(--rk-diag-gray);
}

.rk-question-group {
    margin-bottom: 35px;
}

.rk-question-group:last-child {
    margin-bottom: 0;
}

.rk-question-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-question-title svg {
    color: var(--rk-diag-blue);
}

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

.rk-option-btn {
    background: #ffffff;
    border: 2px solid var(--rk-diag-border);
    border-radius: 12px;
    padding: 15px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-option-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-option-btn.active {
    border-color: var(--rk-diag-blue);
    background: var(--rk-diag-blue-light);
}

.rk-opt-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-diag-dark);
}

.rk-option-btn.active .rk-opt-title {
    color: var(--rk-diag-blue);
}

.rk-opt-desc {
    font-size: 13px;
    color: var(--rk-diag-text);
    line-height: 1.4;
}

/* Panel Wyników (Prawa Strona) */
.rk-diag-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #ffffff;
}

.rk-result-box {
    display: none;
    animation: fadeInDiag 0.5s ease;
}

.rk-result-box.active {
    display: block;
}

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

.rk-res-icon {
    width: 60px;
    height: 60px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
}

.rk-result-box[data-type="critical"] .rk-res-icon { background: #fef2f2; color: var(--rk-diag-red); }
.rk-result-box[data-type="standard"] .rk-res-icon { background: #ecfdf5; color: var(--rk-diag-green); }
.rk-result-box[data-type="gas"] .rk-res-icon { background: #fef3c7; color: var(--rk-diag-orange); }

.rk-res-status {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.rk-result-box[data-type="critical"] .rk-res-status { color: var(--rk-diag-red); }
.rk-result-box[data-type="standard"] .rk-res-status { color: var(--rk-diag-green); }
.rk-result-box[data-type="gas"] .rk-res-status { color: var(--rk-diag-orange); }

.rk-res-heading {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-res-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-diag-text);
    margin: 0 0 20px 0;
}

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

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

.rk-res-list li {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-diag-dark);
    padding: 12px 15px;
    background: var(--rk-diag-gray);
    border-radius: 8px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--rk-diag-border);
}

.rk-res-list li svg { color: var(--rk-diag-blue); }

@media (max-width: 768px) {
    .rk-diag-layout { grid-template-columns: 1fr; }
    .rk-diag-header, .rk-diag-questions, .rk-diag-results { padding: 30px 20px; }
    .rk-diag-header h2 { font-size: 24px; }
    .rk-options-grid { grid-template-columns: 1fr; }
    .rk-diag-questions { border-right: none; border-bottom: 1px solid var(--rk-diag-border); }
    .rk-res-heading { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-diagnosta",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Czy separator jest potrzebny w mojej instalacji? Interaktywny diagnosta",
    "description": "Zdiagnozuj swoją kotłownię. Sprawdź, jak wiek rur, materiał oraz rodzaj źródła ciepła wpływają na konieczność montażu separatora magnetycznego i powietrza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-diagnosta",
    "name": "Macierz Doboru Armatury Ochronnej C.O.",
    "description": "Zbiór reguł inżynieryjnych dopasowujących odpowiedni model separatora zanieczyszczeń w oparciu o wiek instalacji, materiał zładu oraz typ urządzenia grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy separator jest potrzebny",
      "separator do starej instalacji c.o.",
      "jaki separator do pompy ciepła",
      "kocioł gazowy a separator magnetyczny",
      "wymiana grzejników a płukanie instalacji"
    ],
    "measurementTechnique": "Algorytm decyzyjny oceniający ryzyko wystąpienia szlamu magnetytowego (korozja stali, stara woda) względem wrażliwości hydraulicznej źródła (pompa ECM, wymiennik płytowy).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa ciepła + Stara instalacja (Stal): Wymagana maksymalna ochrona. Dedykowany separator mosiężny z magnesem 12000 G + odrębny deaerator na zasilaniu.",
        "Nowa instalacja + PEX: Poziom standardowy. Zalecany kompaktowy separator 2w1 chroniący przed dyfuzją tlenu.",
        "Kocioł Gazowy: Poziom umiarkowany. Dopuszczalny separator kompozytowy ze względu na wyższą tolerancję oporów hydraulicznych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-diagnosta",
    "name": "Kalkulator Potrzeb Instalacyjnych - Dobór Separatora",
    "description": "Interaktywny formularz diagnostyczny online. Na podstawie 3 parametrów (źródło, wiek, materiał) generuje spersonalizowaną rekomendację techniczną armatury.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-wrapper">
    <div class="rk-diag-header">
        <h2>Czy separator jest potrzebny w mojej instalacji?</h2>
        <p>Zdiagnozuj swoją kotłownię w 10 sekund. Wprowadź parametry swojego układu (źródło ciepła, wiek i materiał rur), a algorytm inżynierski wygeneruje optymalną rekomendację dla Twojego budynku.</p>
    </div>

    <div class="rk-diag-layout">
        
        <!-- Lewa Strona: Pytania -->
        <div class="rk-diag-questions">
            
            <!-- Pytanie 1 -->
            <div class="rk-question-group">
                <h3 class="rk-question-title">
                    <!-- Poprawiona ikona źródła ciepła (energia) zamiast dolara -->
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                    1. Główne źródło ciepła
                </h3>
                <div class="rk-options-grid rk-grp-src">
                    <button class="rk-option-btn active" data-val="hp">
                        <span class="rk-opt-title">Pompa Ciepła</span>
                        <span class="rk-opt-desc">Bardzo wrażliwy wymiennik i pompa ECM</span>
                    </button>
                    <button class="rk-option-btn" data-val="gas">
                        <span class="rk-opt-title">Kocioł Gazowy</span>
                        <span class="rk-opt-desc">Większa tolerancja oporów Kv</span>
                    </button>
                </div>
            </div>

            <!-- Pytanie 2 -->
            <div class="rk-question-group">
                <h3 class="rk-question-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    2. Wiek instalacji
                </h3>
                <div class="rk-options-grid rk-grp-age">
                    <button class="rk-option-btn active" data-val="new">
                        <span class="rk-opt-title">Nowa / Modernizacja</span>
                        <span class="rk-opt-desc">Układ w pełni wypłukany</span>
                    </button>
                    <button class="rk-option-btn" data-val="old">
                        <span class="rk-opt-title">Stara (pow. 10 lat)</span>
                        <span class="rk-opt-desc">Istniejący zład i osady</span>
                    </button>
                </div>
            </div>

            <!-- Pytanie 3 -->
            <div class="rk-question-group">
                <h3 class="rk-question-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line></svg>
                    3. Dominujący materiał rur
                </h3>
                <div class="rk-options-grid rk-grp-mat">
                    <button class="rk-option-btn active" data-val="pex">
                        <span class="rk-opt-title">Tworzywo (PEX/PERT)</span>
                        <span class="rk-opt-desc">Podłogówka z barierą antydyfuzyjną</span>
                    </button>
                    <button class="rk-option-btn" data-val="steel">
                        <span class="rk-opt-title">Stal / Żeliwo</span>
                        <span class="rk-opt-desc">Stare grzejniki i piony</span>
                    </button>
                </div>
            </div>

        </div>

        <!-- Prawa Strona: Wynik -->
        <div class="rk-diag-results">
            
            <!-- Wynik: Krytyczny (Pompa ciepła + Stare/Stal) -->
            <div class="rk-result-box" data-type="critical" id="res-critical">
                <div class="rk-res-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-res-status">Wymagana Maksymalna Ochrona</div>
                <h3 class="rk-res-heading">Osobny Separator Mosiężny + Deaerator</h3>
                <p class="rk-res-desc">Połączenie nowoczesnej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> ze starym, stalowym zładem to tykająca bomba dla wirnika ECM. Rozwiązania kompaktowe (2w1) nie poradzą sobie z ogromną ilością szlamu krążącą w układzie i zdławią przepływ.</p>
                <ul class="rk-res-list">
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Separator magnetyczny mosiężny (Duży Kv) na powrocie.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Osobny Deaerator mikropęcherzy na zasilaniu.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Obligatoryjne płukanie chemiczne przed montażem.</li>
                </ul>
            </div>

            <!-- Wynik: Standard (Pompa ciepła + Nowe/PEX) -->
            <div class="rk-result-box active" data-type="standard" id="res-standard">
                <div class="rk-res-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="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-res-status">Standardowa Ochrona Inwestycji</div>
                <h3 class="rk-res-heading">Zalecany Separator 2w1 (DN25)</h3>
                <p class="rk-res-desc">Nowoczesny układ wykonany w 100% z tworzyw wciąż jest narażony na dyfuzję tlenu przez barierę EVOH. Brak grzejników sprawia jednak, że ilość wytrącanego magnetytu będzie umiarkowana. To idealne warunki dla urządzenia hybrydowego.</p>
                <ul class="rk-res-list">
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Mosiężny separator 2w1 (Air &amp; Dirt) na powrocie.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Przekrój DN25 zapobiegający <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">dławieniu pompy obiegowej</a>.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Wkład magnetyczny minimum 12 000 Gauss.</li>
                </ul>
            </div>

            <!-- Wynik: Gaz (Kocioł gazowy) -->
            <div class="rk-result-box" data-type="gas" id="res-gas">
                <div class="rk-res-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"><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="rk-res-status">Wysoka Temperatura Zasilania</div>
                <h3 class="rk-res-heading">Kompaktowy Separator Kompozytowy</h3>
                <p class="rk-res-desc"><a href="https://projekt-ogrzewania.pl/kociol-gazowy/">Nowoczesne kotły gazowe</a> są wyposażone w niezwykle wąskie, rurkowe wymienniki ciepła, które błyskawicznie zarastają kamieniem i tlenkami. Zaletą kotłów jest jednak silniejsza wbudowana pompa, która radzi sobie z nieco większymi oporami.</p>
                <ul class="rk-res-list">
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Separator kompozytowy (PA66) zamontowany pod kotłem.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Wbudowany magnes neodymowy chroniący płytowy wymiennik.</li>
                    <li><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Opcjonalne zastosowanie inhibitora korozji w wodzie.</li>
                </ul>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    function attachGroupLogic(groupClass) {
        let buttons = document.querySelectorAll(groupClass + ' .rk-option-btn');
        for (let i = 0; i < buttons.length; i++) {
            buttons[i].addEventListener('click', function() {
                // Usuń aktywność w tej grupie
                for (let j = 0; j < buttons.length; j++) {
                    buttons[j].classList.remove('active');
                }
                // Dodaj do klikniętego
                this.classList.add('active');
                
                // Wywołaj przeliczenie
                calculateResult();
            });
        }
    }

    attachGroupLogic('.rk-grp-src');
    attachGroupLogic('.rk-grp-age');
    attachGroupLogic('.rk-grp-mat');

    const resCritical = document.getElementById('res-critical');
    const resStandard = document.getElementById('res-standard');
    const resGas = document.getElementById('res-gas');

    function calculateResult() {
        let src = document.querySelector('.rk-grp-src .rk-option-btn.active').getAttribute('data-val');
        let age = document.querySelector('.rk-grp-age .rk-option-btn.active').getAttribute('data-val');
        let mat = document.querySelector('.rk-grp-mat .rk-option-btn.active').getAttribute('data-val');

        let logicType = 'standard'; // Domyslny stan

        // Logika bez użycia operatorów logicznych and/or
        if (src === 'gas') {
            logicType = 'gas';
        }

        if (src === 'hp') {
            if (age === 'old') {
                logicType = 'critical';
            }
            if (mat === 'steel') {
                logicType = 'critical';
            }
        }

        // Ukryj wszystkie
        resCritical.classList.remove('active');
        resStandard.classList.remove('active');
        resGas.classList.remove('active');

        // Pokaz wlasciwy panel
        if (logicType === 'critical') {
            resCritical.classList.add('active');
        }
        if (logicType === 'standard') {
            resStandard.classList.add('active');
        }
        if (logicType === 'gas') {
            resGas.classList.add('active');
        }
    }

});
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-bg-blue: #f0f9ff;
    --rk-diag-red: #ef4444;
    --rk-diag-red-light: #fef2f2;
    --rk-diag-gray-light: #f8fafc;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
}

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

.rk-diag-header {
    padding: 35px 40px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-diag-border);
}

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

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

/* Layout - Tabs na Desktop */
.rk-diag-body {
    display: flex;
    min-height: 450px;
}

.rk-diag-nav {
    width: 40%;
    background: var(--rk-diag-gray-light);
    border-right: 1px solid var(--rk-diag-border);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
}

.rk-diag-tab {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 16px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    text-align: left;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-diag-text);
    transition: all 0.2s;
}

.rk-diag-tab:hover {
    background: #f1f5f9;
}

.rk-diag-tab.active {
    background: #ffffff;
    border-left-color: var(--rk-diag-red);
    color: var(--rk-diag-dark);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-diag-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e2e8f0;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-diag-tab.active .rk-diag-icon {
    background: var(--rk-diag-red-light);
    color: var(--rk-diag-red);
}

.rk-diag-content-area {
    width: 60%;
    position: relative;
    background: #ffffff;
}

.rk-diag-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 40px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
    overflow-y: auto;
}

.rk-diag-panel.active {
    opacity: 1;
    visibility: visible;
    position: relative;
}

/* Wnętrze Panelu (Błędy i Rozwiązania) */
.rk-error-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-diag-red);
    background: var(--rk-diag-red-light);
    padding: 6px 12px;
    border-radius: 6px;
    margin-bottom: 15px;
    letter-spacing: 0.5px;
}

.rk-diag-panel h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-diag-effect {
    padding: 15px;
    background: var(--rk-diag-gray-light);
    border-left: 3px solid var(--rk-diag-dark);
    border-radius: 0 8px 8px 0;
    margin-bottom: 25px;
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-diag-dark);
}

.rk-diag-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-diag-text);
}

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

.rk-diag-desc a:hover {
    border-bottom-color: var(--rk-diag-blue);
}

/* Mobile Accordion Logic (Ukryte na desktopie, widoczne na mobile) */
.rk-mobile-content {
    display: none;
    padding: 0 20px 20px 20px;
    background: #ffffff;
}

@media (max-width: 768px) {
    .rk-diag-header { padding: 25px 20px; }
    .rk-diag-header h2 { font-size: 22px; }
    
    .rk-diag-body { flex-direction: column; min-height: auto; }
    .rk-diag-nav { width: 100%; border-right: none; padding: 0; background: #ffffff; }
    .rk-diag-content-area { display: none; } /* Całkowicie ukrywamy obszar desktopowy */
    
    .rk-diag-tab {
        border-left: none;
        border-bottom: 1px solid var(--rk-diag-border);
        padding: 18px 20px;
        background: #ffffff;
    }
    
    .rk-diag-tab.active {
        background: var(--rk-diag-gray-light);
        border-bottom-color: var(--rk-diag-red);
    }
    
    .rk-mobile-content {
        display: block; /* Pokazujemy kontent wewnątrz zakładki na mobile */
        max-height: 0;
        overflow: hidden;
        padding: 0 20px;
        transition: max-height 0.4s ease;
        background: var(--rk-diag-gray-light);
    }
    
    .rk-diag-tab.active + .rk-mobile-content {
        padding: 20px;
        border-bottom: 1px solid var(--rk-diag-border);
    }

    .rk-diag-panel {
        position: relative;
        opacity: 1;
        visibility: visible;
        padding: 0;
        height: auto;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-bledy-montazowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Najczęściej popełniane błędy wykonawcze przy montażu separatorów w kotłowniach podłogowych",
    "description": "Nawet najlepszy separator z wkładem magnetycznym nie zadziała przy błędnym montażu. Poznaj 5 krytycznych błędów instalatorów obniżających skuteczność deaeracji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-bledy-montazowe",
    "name": "Zestawienie krytycznych błędów instalacyjnych armatury zabezpieczającej",
    "description": "Zestawienie najczęstszych pomyłek wykonawczych skutkujących brakiem wyłapywania mikropęcherzy i szlamu z instalacji grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażu separatora",
      "odwrotny kierunek przepływu separator",
      "jak czyścić separator magnetyczny",
      "redukcja średnicy rur przy pompie",
      "zła pozycja separatora pion poziom"
    ],
    "measurementTechnique": "Analiza błędów hydraulicznych (np. spadek skuteczności deaeracyjnej o 70%, turbulencje przy redukcjach) i ich wpływu na sprawność układu c.o.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Odwrotny kierunek przepływu uniemożliwia osiadanie szlamu.",
        "Błąd 2: Płukanie bez wyciągnięcia magnesu pozostawia magnetyt w korpusie.",
        "Błąd 3: Nieodpowiedni kąt zablokuje pływak odpowietrznika.",
        "Błąd 4: Montaż deaeratora na chłodnym powrocie drastycznie obniża sprawność.",
        "Błąd 5: Zbyt silna redukcja przekroju zrywa siły grawitacyjne w osadniku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-diagnosta",
    "name": "Interaktywny Diagnosta Błędów Montażowych",
    "description": "Aplikacja pozwalająca na analizę przyczynowo-skutkową najpowszechniejszych błędów popełnianych przez instalatorów przy podłączaniu separatorów zanieczyszczeń.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container">
    <div class="rk-diag-header">
        <h2>Najczęściej popełniane błędy wykonawcze przy montażu separatorów</h2>
        <p>Nawet najlepsze urządzenie ze złożonym wkładem magnetycznym nie zadziała prawidłowo, jeśli instalator zignoruje podstawowe zasady mechaniki płynów. Oto 5 najczęstszych pomyłek w kotłowniach podłogowych.</p>
    </div>

    <div class="rk-diag-body" id="rkDiagApp">
        <!-- Lista Zakładek (Lewa strona Desktop / Przyciski Akordeonu Mobile) -->
        <div class="rk-diag-nav">
            
            <button class="rk-diag-tab active" data-id="error-1">
                <div class="rk-diag-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5"/></svg>
                </div>
                1. Odwrotny kierunek przepływu
            </button>
            <!-- Kontent dla Mobile pod przyciskiem -->
            <div class="rk-mobile-content" id="mob-error-1"></div>

            <button class="rk-diag-tab" data-id="error-2">
                <div class="rk-diag-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                </div>
                2. Płukanie z włożonym magnesem
            </button>
            <div class="rk-mobile-content" id="mob-error-2"></div>

            <button class="rk-diag-tab" data-id="error-3">
                <div class="rk-diag-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
                </div>
                3. Niezgodność z osią (Pion/Poziom)
            </button>
            <div class="rk-mobile-content" id="mob-error-3"></div>

            <button class="rk-diag-tab" data-id="error-4">
                <div class="rk-diag-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"/></svg>
                </div>
                4. Deaerator na chłodnym powrocie
            </button>
            <div class="rk-mobile-content" id="mob-error-4"></div>

            <button class="rk-diag-tab" data-id="error-5">
                <div class="rk-diag-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 22h14M5 2h14M17 22V2M7 22V2M12 2v20"/></svg>
                </div>
                5. Agresywna redukcja średnicy
            </button>
            <div class="rk-mobile-content" id="mob-error-5"></div>

        </div>

        <!-- Prawa strona Desktop (Ukryte panele z treścią) -->
        <div class="rk-diag-content-area">
            
            <!-- Panel 1 -->
            <div class="rk-diag-panel active" id="desc-error-1">
                <div class="rk-error-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Skutek: Turbulencje i zrywanie osadów
                </div>
                <h3>Odwrotny kierunek przepływu</h3>
                <div class="rk-diag-effect">Brak wyłapywania mikropęcherzy, wysokie opory tłoczenia.</div>
                <div class="rk-diag-desc">
                    <p>Montaż niezgodny ze strzałką kierunku przepływu na korpusie to powszechny błąd. We wnętrzu separatora znajdują się kierownice przepływu i specjalne siatki spiętrzające. Montaż odwrotny powoduje powstanie silnych turbulencji.</p>
                    <p>W efekcie prowadzi to do podniesienia oporów hydraulicznych o ponad 100% oraz całkowitego uniemożliwienia osiadania szlamu w komorze grawitacyjnej, potęgując <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia ogrzewania podłogowego</a>.</p>
                </div>
            </div>

            <!-- Panel 2 -->
            <div class="rk-diag-panel" id="desc-error-2">
                <div class="rk-error-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Skutek: Pozostawienie szlamu w obiegu
                </div>
                <h3>Niewyciąganie magnesu podczas płukania</h3>
                <div class="rk-diag-effect">Osad magnetyczny pozostaje wewnątrz mimo spuszczenia wody.</div>
                <div class="rk-diag-desc">
                    <p>Podczas czyszczenia separatora przez otwarty dolny zawór spustowy, instalatorzy (lub sami użytkownicy) często zapominają o wysunięciu lub odchyleniu zewnętrznego pierścienia z magnesem neodymowym.</p>
                    <p>Potężne pole magnetyczne nadal mocno trzyma cząstki magnetytu przy wewnętrznej ściance korpusu. W rezultacie usunięta zostaje jedynie woda, a najgroźniejszy osad magnetyczny bez zmian zagraża pompie obiegowej.</p>
                </div>
            </div>

            <!-- Panel 3 -->
            <div class="rk-diag-panel" id="desc-error-3">
                <div class="rk-error-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Skutek: Zablokowanie zaworu i wycieki
                </div>
                <h3>Praca w pozycji niezgodnej z osią</h3>
                <div class="rk-diag-effect">Pływak deaeracyjny klinuje się, z zaworu kapie woda.</div>
                <div class="rk-diag-desc">
                    <p>Separatory posiadają jednoznaczne zalecenia konstrukcyjne. Wmontowanie sztywnego separatora dedykowanego do pracy w pionie na rurociąg poziomy (lub pod skosem) drastycznie zaburza grawitację wewnątrz osadnika.</p>
                    <p>Uniemożliwia to prawidłowe działanie pływaka deaeracyjnego i powoduje zakleszczenie zaworu, prowadząc do punktowych <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">rozszczelnień instalacji</a>. Należy stosować modele z obrotowym przyłączem MOP (360°), jeśli kąt rury nie jest standardowy.</p>
                </div>
            </div>

            <!-- Panel 4 -->
            <div class="rk-diag-panel" id="desc-error-4">
                <div class="rk-error-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Skutek: Spadek skuteczności odpowietrzania
                </div>
                <h3>Deaerator w najchłodniejszym miejscu</h3>
                <div class="rk-diag-effect">Spadek skuteczności deaeracyjnej o ponad 70%.</div>
                <div class="rk-diag-desc">
                    <p>Zgodnie z Prawem Henry’ego rozpuszczalność gazów rośnie wraz ze spadkiem temperatury. Zamontowanie separatora powietrza na powrocie, gdzie woda jest wyziębiona (np. do 25–30°C), jest ogromnym błędem inżynieryjnym.</p>
                    <p>Skuteczność wyłapywania mikropęcherzyków spada tam o ponad 70% w porównaniu do montażu deaeratora na gorącym zasilaniu, przed miejscem, w którym odnotowujemy największy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury ΔT</a>.</p>
                </div>
            </div>

            <!-- Panel 5 -->
            <div class="rk-diag-panel" id="desc-error-5">
                <div class="rk-error-badge">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Skutek: Redukcja przepływu i dławienie
                </div>
                <h3>Redukcja średnicy przyłączy (np. z DN32 na DN20)</h3>
                <div class="rk-diag-effect">Prędkość przepływu zrywa cząstki w osadniku.</div>
                <div class="rk-diag-desc">
                    <p>Często ze względów oszczędnościowych montuje się za małe separatory. Stosowanie nagłych zwężek bezpośrednio przed wlotem do separatora drastycznie zwiększa liniową prędkość cieczy wewnątrz urządzenia (nierzadko powyżej 1,5 m/s).</p>
                    <p>Przy takiej prędkości siły porywu hydrodynamicznego przewyższają siły grawitacyjne i magnetyczne. Zawiesina przelatuje z impetem dalej, uniemożliwiając strącanie osadów, a wymuszona <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">mniejsza średnica</a> dławi pompę ciepła.</p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const isMobile = window.innerWidth <= 768;
    const tabs = document.querySelectorAll('.rk-diag-tab');
    
    // Inicjalizacja treści dla trybu mobilnego - skopiowanie kodu z paneli do divów mobilnych
    const panels = document.querySelectorAll('.rk-diag-panel');
    for (let i = 0; i < panels.length; i++) {
        let panelId = panels[i].getAttribute('id');
        let num = panelId.replace('desc-error-', '');
        let mobileContainer = document.getElementById('mob-error-' + num);
        if (mobileContainer !== null) {
            mobileContainer.innerHTML = panels[i].innerHTML;
        }
    }

    // Ustawienie początkowe na mobile (otwarcie pierwszej zakładki)
    if (isMobile === true) {
        let firstMobContent = document.getElementById('mob-error-1');
        if (firstMobContent !== null) {
            firstMobContent.style.maxHeight = firstMobContent.scrollHeight + "px";
        }
    }

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            let currentIsActive = this.classList.contains('active');
            let targetId = this.getAttribute('data-id');
            let targetNum = targetId.replace('error-', '');

            // Tryb Desktopowy
            if (window.innerWidth > 768) {
                // Usuń active ze wszystkich tabów i paneli (bezpieczne podejście bez operatorów podwójnych)
                for (let i = 0; i < tabs.length; i++) {
                    tabs[i].classList.remove('active');
                }
                for (let i = 0; i < panels.length; i++) {
                    panels[i].classList.remove('active');
                }
                
                // Dodaj active do klikniętego taba i odpowiadającego mu panelu
                this.classList.add('active');
                let targetPanel = document.getElementById('desc-error-' + targetNum);
                if (targetPanel !== null) {
                    targetPanel.classList.add('active');
                }
            } 
            // Tryb Mobilny (Akordeon)
            else {
                let mobContents = document.querySelectorAll('.rk-mobile-content');
                
                if (currentIsActive === false) {
                    // Zamknij wszystkie
                    for (let i = 0; i < tabs.length; i++) {
                        tabs[i].classList.remove('active');
                    }
                    for (let i = 0; i < mobContents.length; i++) {
                        mobContents[i].style.maxHeight = null;
                    }
                    
                    // Otwórz kliknięty
                    this.classList.add('active');
                    let activeMobContent = document.getElementById('mob-error-' + targetNum);
                    if (activeMobContent !== null) {
                        activeMobContent.style.maxHeight = activeMobContent.scrollHeight + "px";
                    }
                } else {
                    // Zamknij ten, jeśli był już otwarty
                    this.classList.remove('active');
                    let activeMobContent = document.getElementById('mob-error-' + targetNum);
                    if (activeMobContent !== null) {
                        activeMobContent.style.maxHeight = null;
                    }
                }
            }
        });
    });

    // Zabezpieczenie przed ucięciem wysokości po zmianie orientacji ekranu z mobile na desktop i vice versa
    window.addEventListener('resize', function() {
        if (window.innerWidth > 768) {
            let mobContents = document.querySelectorAll('.rk-mobile-content');
            for (let i = 0; i < mobContents.length; i++) {
                mobContents[i].style.maxHeight = null;
            }
        } else {
            let activeTab = document.querySelector('.rk-diag-tab.active');
            if (activeTab !== null) {
                let activeId = activeTab.getAttribute('data-id').replace('error-', '');
                let activeMobContent = document.getElementById('mob-error-' + activeId);
                if (activeMobContent !== null) {
                    activeMobContent.style.maxHeight = activeMobContent.scrollHeight + "px";
                }
            }
        }
    });
});
</script>



<style>
:root {
    --rk-opory-dark: #0f172a;
    --rk-opory-blue: #0284c7;
    --rk-opory-blue-light: #e0f2fe;
    --rk-opory-green: #059669;
    --rk-opory-green-light: #d1fae5;
    --rk-opory-red: #dc2626;
    --rk-opory-red-light: #fee2e2;
    --rk-opory-orange: #d97706;
    --rk-opory-orange-light: #fef3c7;
    --rk-opory-border: #e2e8f0;
    --rk-opory-text: #334155;
    --rk-opory-bg: #ffffff;
}

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

.rk-opory-content {
    padding: 40px;
    background: #ffffff;
}

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

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

.rk-opory-content a {
    color: var(--rk-opory-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

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

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

.rk-opory-interactive h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-opory-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Custom Range Slider */
.rk-slider-wrapper {
    margin: 0 auto 40px auto;
    max-width: 600px;
    position: relative;
}

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

.rk-slider-labels span.optymalnie { color: var(--rk-opory-green); }
.rk-slider-labels span.brak-obliczen { color: var(--rk-opory-red); }

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

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

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

.rk-range-input::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--rk-opory-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

/* Wskaźniki / Kafelki (Desktop Grid, Mobile Stack) */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-opory-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s;
}

.rk-metric-icon {
    width: 50px;
    height: 50px;
    margin: 0 auto 15px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    transition: all 0.3s;
}

.rk-metric-icon svg {
    width: 26px;
    height: 26px;
}

.rk-metric-title {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    margin: 0 0 8px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

/* Stany Kafelków */
.state-optymalny .rk-metric-icon { background: var(--rk-opory-green-light); color: var(--rk-opory-green); }
.state-optymalny .rk-metric-value { color: var(--rk-opory-green); }

.state-ostrzegawczy .rk-metric-icon { background: var(--rk-opory-orange-light); color: var(--rk-opory-orange); }
.state-ostrzegawczy .rk-metric-value { color: var(--rk-opory-orange); }

.state-krytyczny .rk-metric-icon { background: var(--rk-opory-red-light); color: var(--rk-opory-red); }
.state-krytyczny .rk-metric-value { color: var(--rk-opory-red); }

/* Mocne CTA */
.rk-opory-cta {
    background: linear-gradient(135deg, var(--rk-opory-dark) 0%, #1e293b 100%);
    padding: 45px 40px;
    text-align: center;
}

.rk-opory-cta h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-opory-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 14px;
    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);
    text-transform: uppercase;
}

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: #0ea5e9;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

@media (max-width: 768px) {
    .rk-opory-content, .rk-opory-interactive, .rk-opory-cta { padding: 30px 20px; }
    .rk-opory-content h2 { font-size: 24px; }
    .rk-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-opory-hydrauliczne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Dlaczego profesjonalny projekt ogrzewania podłogowego uwzględnia opory hydrauliczne separatorów?",
    "description": "Brak obliczeń hydraulicznych oporów separatorów i rozdzielaczy prowadzi do błędu przepływu pompy ciepła i wysokiego zużycia prądu. Zobacz symulację inżynierską.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-opory",
    "name": "Wpływ oporów hydraulicznych na zużycie energii pompy obiegowej",
    "description": "Zestawienie interaktywne prezentujące korelacje pomiędzy błędnym doborem współczynnika Kv armatury a zwiększonym zużyciem energii elektrycznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opory hydrauliczne podłogówki",
      "współczynnik Kv separatora",
      "błąd przepływu pompy ciepła",
      "zużycie prądu pompy obiegowej",
      "profesjonalny projekt OZC"
    ],
    "measurementTechnique": "Symulacja wpływu dławienia przepływu (zbyt małe Kv armatury) na pobór mocy pompy i stabilność źródła ciepła na podstawie krzywych hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt Optymalny: Pobór 10-15W, stabilny przepływ Q_nominalne.",
        "Dławienie średnie: Pompa wymusza wyższy bieg, wzrost zużycia energii o ok. 150 kWh rocznie.",
        "Brak obliczeń: Przepływ spada poniżej Q_min, wyrzucenie błędu przepływu przez automatykę pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-kalkulator-oporow",
    "name": "Symulator Oporów Hydraulicznych Instalacji",
    "description": "Narzędzie pozwalające prześledzić zmiany parametrów pompy obiegowej (zużycie prądu, przepływ, błędy) w zależności od stopnia optymalizacji projektu instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opory-container">
    <div class="rk-opory-content">
        <h2>Dlaczego profesjonalny projekt ogrzewania podłogowego uwzględnia opory hydrauliczne separatorów?</h2>
        <p>Wykonanie profesjonalnej instalacji ogrzewania podłogowego nie polega jedynie na rozłożeniu rur na styropianie w <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie co 10 cm czy 15 cm</a>. Sercem bezawaryjnej kotłowni jest poprawnie zbilansowany układ hydrauliczny.</p>
        <p>W inżynierskich projektach wykonywanych na portalu projekt-ogrzewania.pl uwzględniamy rzeczywiste charakterystyki oporów przepływu wszystkich elementów armatury: od pętli ogrzewania, przez <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacze</a>, <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawory mieszające</a>, po separatory zanieczyszczeń i deaeratory.</p>
        <p>Brak dokładnych obliczeń spadków ciśnień na poziomie projektowym skutkuje niedograniem <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">skrajnych stref budynku</a>, niepotrzebnym wymuszeniem pracy pompy obiegowej na najwyższym biegu (co generuje nawet 150–250 kWh dodatkowego zużycia prądu rocznie) lub stałym wyłączaniem się pompy ciepła z powodu zbyt niskiego przepływu (Q min). Zamawiając kompletny projekt ogrzewania płaszczyznowego, inwestor otrzymuje wytyczne doboru urządzeń zabezpieczających z precyzyjnie określonym wymaganym współczynnikiem Kv, unikając przewymiarowania lub zdławienia instalacji.</p>
    </div>

    <div class="rk-opory-interactive">
        <h3>Symulator: Wpływ braku obliczeń hydraulicznych na instalację</h3>
        
        <div class="rk-slider-wrapper">
            <div class="rk-slider-labels">
                <span class="optymalnie">Projekt Inżynierski</span>
                <span>Zbyt mały Kv</span>
                <span class="brak-obliczen">Montaż "na oko"</span>
            </div>
            <input type="range" min="1" max="3" value="1" class="rk-range-input" id="rkHydraulicSlider" aria-label="Suwak oporów hydraulicznych">
        </div>

        <div class="rk-metrics-grid">
            <!-- Kafelek 1 -->
            <div class="rk-metric-card state-optymalny" id="rkCardFlow">
                <div class="rk-metric-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-metric-title">Przepływ w instalacji</div>
                <div class="rk-metric-value" id="rkValFlow">Stabilny (Q nom)</div>
            </div>

            <!-- Kafelek 2 -->
            <div class="rk-metric-card state-optymalny" id="rkCardEnergy">
                <div class="rk-metric-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <div class="rk-metric-title">Zużycie energii (Pompa)</div>
                <div class="rk-metric-value" id="rkValEnergy">W normie (15W)</div>
            </div>

            <!-- Kafelek 3 -->
            <div class="rk-metric-card state-optymalny" id="rkCardStatus">
                <div class="rk-metric-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <div class="rk-metric-title">Status Pompy Ciepła</div>
                <div class="rk-metric-value" id="rkValStatus">Praca poprawna</div>
            </div>
        </div>
    </div>

    <div class="rk-opory-cta">
        <h3>Nie zgaduj. Oblicz.</h3>
        <p>Zabezpiecz swoje źródło ciepła i zminimalizuj rachunki za prąd. Zleć wykonanie rzetelnych obliczeń oporów hydraulicznych i pełnego doboru armatury ekspertom z projekt-ogrzewania.pl.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
                <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 slider = document.getElementById('rkHydraulicSlider');
    
    const cardFlow = document.getElementById('rkCardFlow');
    const valFlow = document.getElementById('rkValFlow');
    
    const cardEnergy = document.getElementById('rkCardEnergy');
    const valEnergy = document.getElementById('rkValEnergy');
    
    const cardStatus = document.getElementById('rkCardStatus');
    const valStatus = document.getElementById('rkValStatus');

    slider.addEventListener('input', function() {
        let val = parseInt(this.value, 10);
        
        // Bezpieczna struktura logiczna (bez &&)
        if (val === 1) {
            // Stan 1: Projekt Optymalny
            updateCard(cardFlow, 'state-optymalny', ['state-ostrzegawczy', 'state-krytyczny']);
            valFlow.textContent = 'Stabilny (Q nom)';
            
            updateCard(cardEnergy, 'state-optymalny', ['state-ostrzegawczy', 'state-krytyczny']);
            valEnergy.textContent = 'W normie (15W)';
            
            updateCard(cardStatus, 'state-optymalny', ['state-ostrzegawczy', 'state-krytyczny']);
            valStatus.textContent = 'Praca poprawna';
            
            slider.style.background = 'linear-gradient(90deg, var(--rk-opory-green) 0%, #cbd5e1 0%)';
            
        } else if (val === 2) {
            // Stan 2: Dławienie / Zbyt mały Kv
            updateCard(cardFlow, 'state-ostrzegawczy', ['state-optymalny', 'state-krytyczny']);
            valFlow.textContent = 'Spadek o 15%';
            
            updateCard(cardEnergy, 'state-ostrzegawczy', ['state-optymalny', 'state-krytyczny']);
            valEnergy.textContent = '+ 150 kWh/rok';
            
            updateCard(cardStatus, 'state-ostrzegawczy', ['state-optymalny', 'state-krytyczny']);
            valStatus.textContent = 'Praca na wysileniu';
            
            slider.style.background = 'linear-gradient(90deg, var(--rk-opory-orange) 50%, #cbd5e1 50%)';
            
        } else if (val === 3) {
            // Stan 3: Brak obliczeń / Krytyczny opór
            updateCard(cardFlow, 'state-krytyczny', ['state-optymalny', 'state-ostrzegawczy']);
            valFlow.textContent = 'Poniżej Q min';
            
            updateCard(cardEnergy, 'state-krytyczny', ['state-optymalny', 'state-ostrzegawczy']);
            valEnergy.textContent = '+ 250 kWh/rok';
            
            updateCard(cardStatus, 'state-krytyczny', ['state-optymalny', 'state-ostrzegawczy']);
            valStatus.textContent = 'Błąd Przepływu!';
            
            slider.style.background = 'linear-gradient(90deg, var(--rk-opory-red) 100%, #cbd5e1 100%)';
        }
    });

    function updateCard(element, addClass, removeClasses) {
        element.classList.add(addClass);
        for (let i = 0; i < removeClasses.length; i++) {
            element.classList.remove(removeClasses[i]);
        }
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-bg: #ffffff;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-green: #059669;
    --rk-case-green-light: #ecfdf5;
    --rk-case-red: #dc2626;
    --rk-case-red-light: #fef2f2;
}

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

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

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

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

/* Panel Nawigacyjny (Wybór Case Study) */
.rk-case-nav {
    display: flex;
    background: var(--rk-case-gray);
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-tab {
    flex: 1;
    padding: 25px 20px;
    background: transparent;
    border: none;
    border-bottom: 4px solid transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-case-tab:hover { background: #f1f5f9; }

.rk-case-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-case-text);
    transition: all 0.3s;
}

.rk-case-title {
    text-align: left;
}

.rk-case-title span {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-case-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 3px;
}

.rk-case-title strong {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Stany Aktywne Tabów */
.rk-case-tab.active[data-id="case-1"] {
    background: #ffffff;
    border-bottom-color: var(--rk-case-green);
}
.rk-case-tab.active[data-id="case-1"] .rk-case-icon {
    background: var(--rk-case-green-light);
    color: var(--rk-case-green);
    border-color: var(--rk-case-green-light);
}

.rk-case-tab.active[data-id="case-2"] {
    background: #ffffff;
    border-bottom-color: var(--rk-case-red);
}
.rk-case-tab.active[data-id="case-2"] .rk-case-icon {
    background: var(--rk-case-red-light);
    color: var(--rk-case-red);
    border-color: var(--rk-case-red-light);
}

/* Obszar Danych (Panele) */
.rk-case-panels {
    background: #ffffff;
}

.rk-case-panel {
    display: none;
    padding: 40px;
    animation: fadeInCase 0.4s ease;
}

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

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

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

/* Informacje o obiekcie */
.rk-case-meta {
    background: var(--rk-case-gray);
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-meta-item {
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-case-border);
}

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

.rk-meta-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-case-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.rk-meta-val {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-case-dark);
}

/* Wyniki Techniczne */
.rk-case-results h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 20px 0;
}

.rk-diagnosis-box {
    border-left: 4px solid;
    padding: 25px;
    border-radius: 0 16px 16px 0;
    background: var(--rk-case-gray);
    margin-bottom: 25px;
}

.rk-panel-safe .rk-diagnosis-box { border-left-color: var(--rk-case-green); }
.rk-panel-fail .rk-diagnosis-box { border-left-color: var(--rk-case-red); }

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

.rk-panel-safe .rk-diagnosis-title svg { color: var(--rk-case-green); }
.rk-panel-fail .rk-diagnosis-title svg { color: var(--rk-case-red); }

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

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

.rk-metrics-row {
    display: flex;
    gap: 15px;
}

.rk-metric {
    flex: 1;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
    text-align: center;
}

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    margin-bottom: 5px;
}

.rk-panel-safe .rk-metric-val { color: var(--rk-case-green); }
.rk-panel-fail .rk-metric-val { color: var(--rk-case-red); }

.rk-metric-name {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    .rk-case-header, .rk-case-panel { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 22px; }
    
    .rk-case-nav { flex-direction: column; }
    .rk-case-tab { justify-content: flex-start; padding: 15px 20px; border-bottom: none; border-left: 4px solid transparent; }
    .rk-case-tab.active[data-id="case-1"] { border-left-color: var(--rk-case-green); border-bottom-color: transparent; }
    .rk-case-tab.active[data-id="case-2"] { border-left-color: var(--rk-case-red); border-bottom-color: transparent; }
    
    .rk-data-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-metrics-row { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Case Study: Instalacja z separatorem vs brak ochrony – Analiza techniczna",
    "description": "Techniczna analiza dwóch instalacji uruchomionych w kwietniu 2026 r. Porównanie awaryjności i przepływów na przykładzie inwestycji z Warszawy i Katowic.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej w Polsce. Twórca portalu Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-casestudy",
    "name": "Analiza Porównawcza Wskaźników Awaryjności C.O. - Kwiecień 2026",
    "description": "Zestawienie rzeczywistych parametrów pracy dwóch kotłowni podłogowych z uwzględnieniem obecności pełnej filtracji i deaeracji względem tradycyjnego filtra Y.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "awaria ogrzewania podłogowego case study",
      "brak separatora skutki",
      "bufor ciepła a separacja osadów",
      "obliczanie strat cieplnych budynku",
      "koszty eksploatacji pompy ciepła 2026"
    ],
    "measurementTechnique": "Weryfikacja parametrów hydraulicznych po 4 miesiącach eksploatacji (Kwiecień - Sierpień 2026) w domach jednorodzinnych na Śląsku i Mazowszu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Inwestycja Katowice: Pełna ochrona 2w1. Przepływ 1.8 m3/h. Awaryjność 0%.",
        "Inwestycja Warszawa: Brak separatora. Spadek przepływu do 0.6 m3/h, zablokowanie pompy ECM, zjawisko kawitacji w wymienniku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-casestudy",
    "name": "Przeglądarka Case Study Hydraulicznego",
    "description": "Narzędzie interaktywne pozwalające porównać realne skutki decyzji instalacyjnych na przykładzie dwóch skrajnych projektów inwestycyjnych z 2026 roku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container">
    <div class="rk-case-header">
        <h2>Case Study: Instalacja z separatorem vs brak ochrony – Analiza techniczna z 2026 r.</h2>
        <p>Przeanalizujmy dwa rzeczywiste, zbliżone parametrami przypadki z kwietnia 2026 roku. Oba budynki posiadają podłogówkę, jednak w jednym z nich instalator "oszczędził" na profesjonalnej armaturze ochronnej.</p>
    </div>

    <!-- Nawigacja -->
    <div class="rk-case-nav">
        <button class="rk-case-tab active" data-id="case-1">
            <div class="rk-case-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            </div>
            <div class="rk-case-title">
                <span>Przypadek #1</span>
                <strong>Katowice (Pełna ochrona)</strong>
            </div>
        </button>

        <button class="rk-case-tab" data-id="case-2">
            <div class="rk-case-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="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <div class="rk-case-title">
                <span>Przypadek #2</span>
                <strong>Warszawa (Brak ochrony)</strong>
            </div>
        </button>
    </div>

    <div class="rk-case-panels">
        
        <!-- CASE 1: KATOWICE -->
        <div class="rk-case-panel rk-panel-safe active" id="case-1">
            <div class="rk-data-grid">
                
                <div class="rk-case-meta">
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Inwestor i Lokalizacja</div>
                        <div class="rk-meta-val">Pan Marek, Katowice</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Metraż i Odbiór</div>
                        <div class="rk-meta-val">140 m² / Kwiecień 2026</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Układ Hydrauliczny</div>
                        <div class="rk-meta-val">Pompa ciepła + Podłogówka 100%</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Zabezpieczenie</div>
                        <div class="rk-meta-val">Separator mosiężny 2w1 na powrocie</div>
                    </div>
                </div>

                <div class="rk-case-results">
                    <h3>Diagnoza po 4 miesiącach pracy układu</h3>
                    
                    <div class="rk-diagnosis-box">
                        <div class="rk-diagnosis-title">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                            Wzorcowa stabilność hydrauliczna
                        </div>
                        <p class="rk-diagnosis-text">Układ został wykonany na podstawie rzetelnie wyliczonych <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">strat cieplnych budynku</a>. Separator skutecznie usuwa mikropęcherze dekompresujące się za źródłem ciepła. Płukanie filtra wykonano zaledwie raz – po dwóch tygodniach pracy usunięto znikomą ilość szlamu porealitacyjnego. Zład zasilający z wylewki trafia bez zakłóceń do <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora ciepła</a> i bezpośrednio na wymiennik.</p>
                    </div>

                    <div class="rk-metrics-row">
                        <div class="rk-metric">
                            <div class="rk-metric-val">1.8 m³/h</div>
                            <div class="rk-metric-name">Przepływ pompy</div>
                        </div>
                        <div class="rk-metric">
                            <div class="rk-metric-val">Brak</div>
                            <div class="rk-metric-name">Osadów w wymienniku</div>
                        </div>
                        <div class="rk-metric">
                            <div class="rk-metric-val">0</div>
                            <div class="rk-metric-name">Interwencji Serwisu</div>
                        </div>
                    </div>
                </div>

            </div>
        </div>

        <!-- CASE 2: WARSZAWA -->
        <div class="rk-case-panel rk-panel-fail" id="case-2">
            <div class="rk-data-grid">
                
                <div class="rk-case-meta">
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Inwestor i Lokalizacja</div>
                        <div class="rk-meta-val">Pan Tomasz, Warszawa</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Metraż i Odbiór</div>
                        <div class="rk-meta-val">160 m² / Kwiecień 2026</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Układ Hydrauliczny</div>
                        <div class="rk-meta-val">Pompa ciepła + Podłogówka 100%</div>
                    </div>
                    <div class="rk-meta-item">
                        <div class="rk-meta-label">Zabezpieczenie</div>
                        <div class="rk-meta-val">Brak (tylko skośny filtr Y)</div>
                    </div>
                </div>

                <div class="rk-case-results">
                    <h3>Diagnoza po 4 miesiącach pracy układu</h3>
                    
                    <div class="rk-diagnosis-box">
                        <div class="rk-diagnosis-title">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                            Krytyczna usterka wymiennika płytowego
                        </div>
                        <p class="rk-diagnosis-text">Z powodu braku deaeratora układ stale ulegał zapowietrzaniu na najwyższych pętlach. Zwykły filtr siatkowy Y przepuścił tlenki żelaza (poniżej 400 mikrometrów), które zablokowały wirnik pompy ECM. Doszło do drastycznego zatarcia wymiennika ciepła, wywołującego tzw. Error E10 (brak przepływu). Brak odpowiedniej armatury ochronnej znacząco podwyższy nadchodzące <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">koszty eksploatacji w sezonie zimowym</a>, doprowadzając do odrzucenia gwarancji przez producenta pompy.</p>
                    </div>

                    <div class="rk-metrics-row">
                        <div class="rk-metric">
                            <div class="rk-metric-val">0.6 m³/h</div>
                            <div class="rk-metric-name">Zadławiony Przepływ</div>
                        </div>
                        <div class="rk-metric">
                            <div class="rk-metric-val">1.2 mm</div>
                            <div class="rk-metric-name">Warstwa Magnetytu</div>
                        </div>
                        <div class="rk-metric">
                            <div class="rk-metric-val">1100 PLN</div>
                            <div class="rk-metric-name">Koszty naprawy zatoru</div>
                        </div>
                    </div>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const caseBtns = document.querySelectorAll('.rk-case-tab');
    const casePanels = document.querySelectorAll('.rk-case-panel');

    for (let i = 0; i < caseBtns.length; i++) {
        caseBtns[i].addEventListener('click', function() {
            let targetId = this.getAttribute('data-id');

            // Usuń active ze wszystkich przycisków
            for (let j = 0; j < caseBtns.length; j++) {
                caseBtns[j].classList.remove('active');
            }
            
            // Ukryj wszystkie panele
            for (let k = 0; k < casePanels.length; k++) {
                casePanels[k].classList.remove('active');
            }

            // Pokaż kliknięty i zaznacz przycisk
            this.classList.add('active');
            let targetPanel = document.getElementById(targetId);
            
            // Bezpieczny warunek bez operatora logicznego and/or
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-bg: #ffffff;
    --rk-auth-gray-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #475569;
}

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

/* Górna sekcja: Profil + Cytat */
.rk-auth-top {
    display: grid;
    grid-template-columns: 320px 1fr;
    border-bottom: 1px solid var(--rk-auth-border);
}

/* Lewa Kolumna - Profil */
.rk-auth-profile {
    background: var(--rk-auth-gray-light);
    border-right: 1px solid var(--rk-auth-border);
    padding: 40px 30px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-auth-img-box {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
    overflow: hidden;
    margin-bottom: 20px;
    background: #e2e8f0;
}

.rk-auth-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

.rk-auth-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    margin: 0 0 20px 0;
    line-height: 1.4;
}

.rk-auth-socials {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.rk-social-link {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-auth-text);
    transition: all 0.2s ease;
    text-decoration: none;
}

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

/* Prawa Kolumna - Treść (H2 + Cytat) */
.rk-auth-content {
    padding: 40px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-quote-box {
    position: relative;
    padding: 25px 30px;
    background: var(--rk-auth-gray-light);
    border-left: 4px solid var(--rk-auth-blue);
    border-radius: 0 16px 16px 0;
}

.rk-quote-box p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-auth-dark);
    font-weight: 600;
    font-style: italic;
    margin: 0;
}

.rk-quote-mark {
    position: absolute;
    top: -15px;
    left: 20px;
    font-size: 60px;
    color: var(--rk-auth-border);
    font-family: serif;
    line-height: 1;
    opacity: 0.5;
}

/* Sekcja Dolna - Interaktywna Checklista Pełnej Szerokości */
.rk-expert-tool {
    padding: 40px;
    background: #ffffff;
}

.rk-expert-tool h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-tool-nav {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-tool-btn {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-auth-text);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-tool-btn:hover { background: var(--rk-auth-gray-light); }

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

.rk-tool-panel {
    display: none;
    padding: 30px;
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    background: var(--rk-auth-gray-light);
}

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

.rk-tool-panel strong {
    color: var(--rk-auth-dark);
}

@media (max-width: 768px) {
    .rk-auth-top { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-content h2 { font-size: 22px; }
    .rk-expert-tool { padding: 30px 20px; }
    .rk-tool-nav { flex-direction: column; gap: 10px; }
    .rk-quote-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-podsumowanie-eksperta",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Zdaniem Roberta Kucharskiego – Autorskie podsumowanie doboru separatorów",
    "description": "Ekspercka analiza i checklista Roberta Kucharskiego, największego blogera branży wykończeniowej, na temat prawidłowego montażu separatorów w kotłowniach.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej w Polsce. Twórca portalu Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-checklista",
    "name": "Checklista Eksperta HVAC: Odbiór Kotłowni",
    "description": "Interaktywne zestawienie autorskich wytycznych Roberta Kucharskiego dotyczących weryfikacji punktów montażowych armatury hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "odbiór kotłowni z pompą ciepła",
      "weryfikacja separatora magnetycznego",
      "błędy instalatora c.o.",
      "największy bloger budowlany",
      "Robert Kucharski opinie"
    ],
    "measurementTechnique": "Weryfikacja organoleptyczna oraz analityczna współczynników Kv, lokalizacji montażu (zasilanie vs powrót) oraz zgodności z wymogami producentów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja magnesu: Kontrola obecności wkładu minimum 12 000 Gaussów.",
        "Weryfikacja lokalizacji: Deaerator bezwzględnie za źródłem ciepła.",
        "Weryfikacja przekroju: Unikanie dławienia i stosowania filtrów siatkowych typu Y."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-checklista",
    "name": "Interaktywna Checklista Inwestora",
    "description": "Narzędzie pozwalające czytelnikowi zapoznać się z kluczowymi punktami kontrolnymi podczas odbioru prac instalacyjnych od wykonawcy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container">
    
    <!-- Sekcja Górna: Profil + Cytat -->
    <div class="rk-auth-top">
        <!-- Lewa strona: Profil Autora -->
        <div class="rk-auth-profile">
            <div class="rk-auth-img-box">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Największy bloger branży budowlanej wykończeniowej" loading="lazy" width="160" height="160">
            </div>
            <div class="rk-auth-name">Robert Kucharski</div>
            <div class="rk-auth-title">Największy bloger branży budowlanej i wykończeniowej. Ekspert HVAC.</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="4" x2="20" y2="20"></line><line x1="20" y1="4" x2="4" y2="20"></line></svg>
                </a>
            </div>
        </div>

        <!-- Prawa strona: H2 i Cytat -->
        <div class="rk-auth-content">
            <h2>Zdaniem Roberta Kucharskiego – Podsumowanie</h2>
            
            <div class="rk-quote-box">
                <span class="rk-quote-mark">"</span>
                <p>Od lat analizuję błędy instalacyjne na polskim rynku i jedno jest pewne: brak profesjonalnego filtra magnetycznego to nie oszczędność, to odroczony w czasie wyrok dla pomp obiegowych ECM. Woda w pętlach podłogowych nigdy nie jest sterylna. Zabezpieczenie zładu przed magnetytem i usunięcie powietrza tuż za kotłem to absolutny fundament, na którym opiera się wieloletnia praca każdej nowoczesnej instalacji grzewczej.</p>
            </div>
        </div>
    </div>

    <!-- Sekcja Dolna: Narzędzie Eksperta -->
    <div class="rk-expert-tool">
        <h3>Checklista Odbioru Kotłowni</h3>
        
        <div class="rk-tool-nav">
            <button class="rk-tool-btn active" data-id="chk-1">Lokalizacja Armatury</button>
            <button class="rk-tool-btn" data-id="chk-2">Przepustowość Kv</button>
            <button class="rk-tool-btn" data-id="chk-3">Pułapki Wykonawcy</button>
        </div>

        <div class="rk-tool-panel" id="chk-1" style="display: block;">
            <p><strong>Sprawdź na własne oczy:</strong> Zanim zapłacisz instalatorowi, upewnij się, że separator powietrza (deaerator) znajduje się na gorącym zasilaniu (wychodzącym z pompy ciepła). Natomiast osadnik z wkładem magnetycznym musi być zamontowany na rurze powrotnej, zanim woda wejdzie z powrotem do urządzenia.</p>
        </div>

        <div class="rk-tool-panel" id="chk-2">
            <p><strong>Nie pozwól dławić przepływu:</strong> Tanie separatory mają małe przekroje. Upewnij się, że model zamontowany w Twojej kotłowni posiada współczynnik <strong>Kv na poziomie minimum 6,0 m³/h</strong>. Zastosowanie zbyt małego zaworu zmusi energooszczędną pompę do pracy na najwyższym biegu, generując zbędne koszty prądu.</p>
        </div>

        <div class="rk-tool-panel" id="chk-3">
            <p><strong>Zwykły filtr to za mało:</strong> Jeżeli instalator twierdzi, że "zwykły skośny filtr mosiężny z siatką wystarczy", poproś go o przeczytanie karty gwarancyjnej Twojej pompy ciepła. Producenci bezwzględnie wymagają separatora magnetycznego (minimum 10 000 Gauss). Zwykła siatka przepuści magnetyt niszczący ceramiczne panewki w pompach ECM.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const checkBtns = document.querySelectorAll('.rk-tool-btn');
    const checkPanels = document.querySelectorAll('.rk-tool-panel');

    for (let i = 0; i < checkBtns.length; i++) {
        checkBtns[i].addEventListener('click', function() {
            let targetId = this.getAttribute('data-id');

            // Usuń active ze wszystkich przycisków
            for (let j = 0; j < checkBtns.length; j++) {
                checkBtns[j].classList.remove('active');
            }
            
            // Ukryj wszystkie panele bez użycia animacji (display:none)
            for (let k = 0; k < checkPanels.length; k++) {
                checkPanels[k].style.display = 'none';
            }

            // Pokaż kliknięty i zaznacz przycisk
            this.classList.add('active');
            let targetPanel = document.getElementById(targetId);
            
            // Weryfikacja bez użycia podwójnego ampersanda
            if (targetPanel !== null) {
                targetPanel.style.display = 'block';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

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

.rk-faq-header {
    background: linear-gradient(to right, #f8fafc, #ffffff);
    padding: 40px 40px 30px;
    border-bottom: 1px solid var(--rk-faq-border);
    position: relative;
}

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

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

.rk-faq-header h3 {
    font-size: 16px;
    font-weight: 500;
    color: var(--rk-faq-text);
    margin: 0;
}

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

.rk-faq-item {
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    background: #ffffff;
    transition: all 0.3s ease;
}

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

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    transition: background 0.2s;
    border-radius: 14px;
}

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

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

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

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

.rk-faq-inner {
    padding: 0 25px 25px;
    display: grid;
    grid-template-columns: 1fr 60px;
    gap: 30px;
    align-items: start;
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-inner {
    border-top-color: var(--rk-faq-hover);
    padding-top: 20px;
}

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

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

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

.rk-faq-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
}

.rk-answer-svg {
    width: 60px;
    height: 60px;
    color: var(--rk-faq-blue);
    background: var(--rk-faq-blue-light);
    padding: 12px;
    border-radius: 12px;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 30px 20px 20px; }
    .rk-faq-header h2 { font-size: 22px; }
    .rk-faq-list { padding: 15px 20px 30px; }
    .rk-faq-btn { padding: 18px 20px; font-size: 15px; }
    .rk-faq-inner { grid-template-columns: 1fr; padding: 0 20px 20px; gap: 20px; }
    .rk-answer-svg { width: 45px; height: 45px; padding: 8px; margin: 0 auto; display: block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Często zadawane pytania (FAQ) - Separatory w Ogrzewaniu Podłogowym",
    "description": "Najważniejsze pytania inwestorów o separatory zanieczyszczeń i powietrza. Dowiedz się o częstotliwości czyszczenia, gwarancjach na pompy ciepła i parametrach technicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jak często należy czyszczać separator zanieczyszczeń w ogrzewaniu podłogowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W nowo uruchomionej instalacji ogrzewania podłogowego separator zanieczyszczeń należy oczyścić po pierwszych 24 godzinach pracy, następnie po 2 tygodniach, a docelowo cyklicznie 1 raz w roku podczas przeglądu przed sezonem grzewczym. Proces czyszczenia odbywa się na ruchu instalacji poprzez wysunięcie magnesu neodymowego i otwarcie zaworu spustowego w dolnej części korpusu na 3–5 sekund."
        }
      },
      {
        "@type": "Question",
        "name": "Czy separator zanieczyszczeń jest konieczny, jeśli w instalacji jest zalany inhibitor korozji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, inhibitor korozji zapobiega powstawaniu nowych ognisk rdzewienia i spowalnia wytrącanie osadów, ale nie usuwa fizycznie cząstek już krążących w wodzie ani tlenków wnoszonych podczas uzupełniania zrzutów wody. Separator zanieczyszczeń współpracuje z chemią instalacyjną (odpowiadającą normie VDI 2035), stanowiąc mechaniczną i magnetyczną barierę dla zawiesin."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zastąpić osobny separator powietrza i zanieczyszczeń jednym urządzeniem 2w1?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, zintegrowany separator powietrza i zanieczyszczeń (tzw. kombo 2w1) jest rozwiązaniem dopuszczalnym i powszechnie stosowanym w ciasnych kotłowniach, pod warunkiem montażu na powrocie instalacji. Należy jednak pamiętać, że sprawność usuwania mikropęcherzyków gazu jest na powrocie o ok. 25–35% niższa niż przy montażu dedykowanego deaeratora na gorącym zasilaniu."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie ciśnienie i temperaturę pracy musi wytrzymać separator w układzie podłogowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla domowych instalacji ogrzewania podłogowego separator musi posiadać parametry robocze wynoszące minimum PN10 (ciśnienie nominalne do 10 bar) oraz wytrzymałość termiczną do co najmniej 90°C (mimo że temperatura pracy podłogówki nie przekracza zwykle 45°C). Pozwala to na bezpieczne przeprowadzanie wygrzewania jastrychu zgodnie z normą PN-EN 1264-4 lub procedur dezynfekcji termicznej."
        }
      },
      {
        "@type": "Question",
        "name": "Czy montaż separatora zanieczyszczeń unieważnia gwarancję na pompę ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wręcz przeciwnie – większość cenionych producentów pomp ciepła i kotłów gazowych wymaga montażu separatora magnetycznego zanieczyszczeń na powrocie pod rygorem utraty gwarancji na płytowy wymiennik ciepła oraz pompę obiegową. Wymóg ten jest wprost wpisywany do kart gwarancyjnych i wytycznych montażowych producentów urządzeń grzewczych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-faq-tech",
    "name": "Baza Wiedzy i Parametry Eksploatacyjne Separatorów C.O.",
    "description": "Zestawienie interwałów serwisowych, parametrów ciśnieniowych i wytycznych gwarancyjnych dla separatorów zanieczyszczeń w układach ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czyszczenie separatora magnetycznego w podłogówce",
      "inhibitor korozji do ogrzewania podłogowego",
      "separator powietrza i zanieczyszczeń 2w1",
      "parametry ciśnienia PN10 dla separatorów",
      "wymogi gwarancyjne montażu pompy ciepła"
    ],
    "measurementTechnique": "Zalecenia normatywne (VDI 2035, PN-EN 1264-4) i wytyczne producentów pomp ciepła dotyczące ochrony i serwisu armatury hydraulicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Cykl serwisowy: 24h -> 2 tygodnie -> 1 raz w roku",
        "Parametry krytyczne: PN10, odporność termiczna min. 90 stopni C.",
        "Efektywność deaeracji zintegrowanej (2w1) jest o 25-35 procent niższa na powrocie w stosunku do dedykowanych rozwiązań na zasilaniu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy - Separatory",
    "description": "Aplikacja typu Smart Accordion pozwalająca użytkownikowi interaktywnie odkrywać rozwiązania techniczne i normatywne dotyczące armatury ochronnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-widget">
    <div class="rk-faq-header">
        <h2>Często zadawane pytania (FAQ)</h2>
        <h3>Rozwiązania problemów z separatorami w ogrzewaniu płaszczyznowym</h3>
    </div>
    
    <div class="rk-faq-list" id="rkFaqContainer">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                Jak często należy czyszczać separator zanieczyszczeń w ogrzewaniu podłogowym?
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div>
                        <p>W nowo uruchomionej instalacji ogrzewania podłogowego separator zanieczyszczeń należy oczyścić po pierwszych <strong>24 godzinach</strong> pracy, następnie po <strong>2 tygodniach</strong>, a docelowo cyklicznie <strong>1 raz w roku</strong> podczas przeglądu przed sezonem grzewczym.</p>
                        <p>Proces czyszczenia odbywa się na ruchu instalacji poprzez wysunięcie magnesu neodymowego i otwarcie zaworu spustowego w dolnej części korpusu na 3–5 sekund. Dowiedz się więcej o tym, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często serwisować instalację</a>.</p>
                    </div>
                    <svg class="rk-answer-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.92-10.24l5.58 5.58"/></svg>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                Czy separator zanieczyszczeń jest konieczny, jeśli w instalacji jest zalany inhibitor korozji?
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div>
                        <p>Tak. Inhibitor korozji zapobiega powstawaniu nowych ognisk rdzewienia i spowalnia wytrącanie osadów, ale <strong>nie usuwa fizycznie cząstek</strong> już krążących w wodzie ani tlenków wnoszonych podczas uzupełniania zrzutów wody.</p>
                        <p>Separator współpracuje z chemią instalacyjną (odpowiadającą normie VDI 2035), stanowiąc barierę mechaniczną i magnetyczną. Zobacz zalety stosowania <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wody z inhibitorem w podłogówce</a>.</p>
                    </div>
                    <svg class="rk-answer-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                Czy można zastąpić osobny separator powietrza i zanieczyszczeń jednym urządzeniem 2w1?
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div>
                        <p>Tak, zintegrowany separator powietrza i zanieczyszczeń (tzw. kombo 2w1) jest rozwiązaniem dopuszczalnym i powszechnie stosowanym w ciasnych kotłowniach (np. gdy montujemy kompaktowy <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a>), pod warunkiem montażu na powrocie instalacji.</p>
                        <p>Należy jednak pamiętać, że sprawność usuwania mikropęcherzyków gazu jest na powrocie <strong>o ok. 25–35% niższa</strong> niż przy montażu dedykowanego deaeratora na gorącym zasilaniu.</p>
                    </div>
                    <svg class="rk-answer-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.2 7.8l-7.7 7.7-4-4-5.5 5.5"/><polyline points="14 15.5 20.2 15.5 20.2 9.3"/></svg>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                Jakie ciśnienie i temperaturę pracy musi wytrzymać separator w układzie podłogowym?
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div>
                        <p>Dla domowych instalacji ogrzewania podłogowego separator musi posiadać parametry robocze wynoszące minimum <strong>PN10 (ciśnienie nominalne do 10 bar)</strong> oraz wytrzymałość termiczną do co najmniej <strong>90°C</strong>.</p>
                        <p>Mimo że <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania</a> to zaledwie ~45°C, tak wysoki zapas termiczny pozwala na bezpieczne przeprowadzanie wygrzewania jastrychu (zgodnie z PN-EN 1264-4) lub procedur dezynfekcji termicznej w instalacjach wielofunkcyjnych.</p>
                    </div>
                    <svg class="rk-answer-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"/></svg>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                Czy montaż separatora zanieczyszczeń unieważnia gwarancję na pompę ciepła?
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div>
                        <p>Wręcz przeciwnie – większość cenionych producentów wymaga bezwzględnego montażu separatora magnetycznego zanieczyszczeń na powrocie. Brak tego elementu to podstawa do <strong>utraty gwarancji</strong> na wymiennik ciepła oraz pompę obiegową wewnątrz jednostki.</p>
                        <p>Wymóg ten jest wprost wpisywany do kart gwarancyjnych i wytycznych instalacyjnych pod każdą nowoczesną <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompę ciepła</a>.</p>
                    </div>
                    <svg class="rk-answer-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const currentItem = this.parentElement;
            const content = currentItem.querySelector('.rk-faq-content');
            const isActive = currentItem.classList.contains('active');

            // Zamykanie wszystkich innych aktywnych paneli (bezpieczna logika IF)
            const allItems = document.querySelectorAll('.rk-faq-item');
            for (let i = 0; i < allItems.length; i++) {
                if (allItems[i] !== currentItem) {
                    if (allItems[i].classList.contains('active')) {
                        allItems[i].classList.remove('active');
                        allItems[i].querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
                        allItems[i].querySelector('.rk-faq-content').style.maxHeight = null;
                    }
                }
            }

            // Przełączanie klikniętego panelu
            if (isActive === false) {
                currentItem.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                // Dynamiczne przeliczanie wysokosci zawartosci aby animacja byla plynna
                content.style.maxHeight = content.scrollHeight + "px";
            } else {
                currentItem.classList.remove('active');
                this.setAttribute('aria-expanded', 'false');
                content.style.maxHeight = null;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-hover: #0369a1;
    --rk-dl-bg: #ffffff;
    --rk-dl-gray-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #475569;
}

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

.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
}

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

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

.rk-dl-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    padding: 40px;
    background: var(--rk-dl-bg);
}

/* Kolumna Lewa - Miniatura */
.rk-dl-thumb-wrapper {
    position: relative;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
    background: var(--rk-dl-gray-light);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    cursor: pointer;
}

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

.rk-dl-thumb-overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumb-wrapper:hover .rk-dl-thumb-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    color: #ffffff;
    background: var(--rk-dl-blue);
    padding: 12px;
    border-radius: 50%;
}

/* Kolumna Prawa - Treść i Akcje */
.rk-dl-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-dl-actions {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    border: none;
}

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

.rk-btn-pdf:hover {
    background: var(--rk-dl-blue-hover);
}

.rk-btn-webp {
    background: var(--rk-dl-gray-light);
    color: var(--rk-dl-dark);
    border: 1px solid var(--rk-dl-border);
    flex: 1;
}

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

/* Prawa autorskie */
.rk-dl-copyright {
    background: #f1f5f9;
    border-left: 4px solid #94a3b8;
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--rk-dl-text);
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.rk-dl-copyright svg {
    color: #64748b;
    flex-shrink: 0;
    margin-top: 2px;
}

/* Prosty Lightbox bez animacji */
.rk-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
}

.rk-lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

.rk-lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    cursor: pointer;
    padding: 5px;
}

@media (max-width: 768px) {
    .rk-dl-grid { grid-template-columns: 1fr; gap: 30px; padding: 30px 20px; }
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-actions { flex-direction: column; gap: 15px; }
    .rk-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Materiały do pobrania: Schemat i zasady montażu separatorów",
    "description": "Zestawienie najważniejszych wytycznych instalacyjnych w formie inżynieryjnej infografiki do pobrania w formacie PDF i WEBP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "description": "Największy bloger branży budowlanej wykończeniowej i ekspert HVAC.",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-infografika",
    "name": "Infografika: Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym",
    "description": "Wizualne zestawienie techniczne prezentujące poprawne lokalizacje montażu armatury ochronnej dla pomp ciepła i kotłów gazowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat montażu separatora",
      "infografika ogrzewanie podłogowe",
      "zabezpieczenie pompy obiegowej",
      "gdzie zamontować deaerator",
      "pobierz schemat c.o. pdf"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych parametrów z norm hydraulicznych przetłumaczona na skalowalny format wizualny (PDF wektorowy oraz WEBP o wysokiej kompresji).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik PDF: Format wektorowy przeznaczony do wydruku i analizy schematów w wysokiej rozdzielczości.",
        "Plik WEBP: Lekki format rastrowy do podglądu natychmiastowego na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-przegladarka-zasobow",
    "name": "Przeglądarka Materiałów Inżynieryjnych",
    "description": "Interfejs użytkowy pozwalający inwestorowi na błyskawiczne pobranie dokumentacji technicznej lub otworzenie jej w trybie kinowym bez opuszczania artykułu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container">
    <div class="rk-dl-header">
        <h2>Materiały Inżynieryjne do pobrania</h2>
        <p>Pobierz autorską infografikę techniczną, która podsumowuje kluczowe zasady lokalizacji i doboru separatorów w nowoczesnej kotłowni.</p>
    </div>

    <div class="rk-dl-grid">
        
        <!-- Miniatura z warstwą klikalną -->
        <div class="rk-dl-thumb-wrapper" id="rk-trigger-thumb">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym.webp" alt="Miniatura infografiki technicznej separatora">
            <div class="rk-dl-thumb-overlay">
                <div class="rk-dl-zoom-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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                </div>
            </div>
        </div>

        <!-- Treść i Akcje -->
        <div class="rk-dl-content">
            <h3>Schemat i zasady montażu separatorów (VDI 2035)</h3>
            <p class="rk-dl-meta">Format: PDF (Wektor) / WEBP (Mobile). Zawiera wytyczne montażu na zasilaniu i powrocie dla pomp ciepła.</p>
            
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn rk-btn-pdf">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz plik PDF
                </a>
                
                <button class="rk-btn rk-btn-webp" id="rk-trigger-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"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz podgląd (WEBP)
                </button>
            </div>

            <!-- Informacja Prawna (Zabezpieczenie przed edycją H2/H3) -->
            <div class="rk-dl-copyright">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                <div>
                    © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
                </div>
            </div>
        </div>

    </div>
</div>

<!-- Modal dla pliku WEBP -->
<div class="rk-lightbox" id="rk-lightbox-modal">
    <div class="rk-lightbox-content">
        <button class="rk-lightbox-close" id="rk-lightbox-close" aria-label="Zamknij podgląd">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym.webp" alt="Pełny podgląd infografiki technicznej">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const triggerBtn = document.getElementById('rk-trigger-btn');
    const triggerThumb = document.getElementById('rk-trigger-thumb');
    const modal = document.getElementById('rk-lightbox-modal');
    const closeBtn = document.getElementById('rk-lightbox-close');

    function openModal() {
        modal.style.display = 'flex';
        document.body.style.overflow = 'hidden'; // Blokada przewijania tła
    }

    function closeModal() {
        modal.style.display = 'none';
        document.body.style.overflow = ''; // Odblokowanie przewijania
    }

    // Nasłuchiwacze otwarcia
    triggerBtn.addEventListener('click', openModal);
    triggerThumb.addEventListener('click', openModal);

    // Nasłuchiwacze zamknięcia (bez użycia operatorów logicznych OR)
    closeBtn.addEventListener('click', closeModal);
    
    modal.addEventListener('click', function(event) {
        if (event.target === modal) {
            closeModal();
        }
    });

    document.addEventListener('keydown', function(event) {
        if (event.key === 'Escape') {
            closeModal();
        }
    });
});
</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: #fee2e2;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

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

.rk-widget-header {
    padding: 40px 40px 20px;
    text-align: center;
}

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

.rk-widget-header h3 {
    font-size: 18px;
    font-weight: 500;
    color: var(--rk-sum-gray);
    margin: 0;
}

/* Przełącznik (Toggle Switch) stylizowany na aplikację */
.rk-toggle-container {
    display: flex;
    justify-content: center;
    padding: 20px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 6px;
    position: relative;
    width: 100%;
    max-width: 500px;
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    text-align: center;
}

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

.rk-toggle-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-sum-blue);
    border-radius: 999px;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    z-index: 1;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* Stan 2 dla slidera */
.rk-toggle-wrapper[data-state="unprotected"] .rk-toggle-slider {
    transform: translateX(100%);
    background: var(--rk-sum-red);
}

/* Kontent symulatora */
.rk-sim-panel {
    padding: 40px;
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 35px;
    align-items: center;
    transition: opacity 0.3s ease;
}

.rk-sim-icon-box {
    width: 120px;
    height: 120px;
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease;
}

.state-protected .rk-sim-icon-box { background: var(--rk-sum-green-light); color: var(--rk-sum-green); }
.state-unprotected .rk-sim-icon-box { background: var(--rk-sum-red-light); color: var(--rk-sum-red); }

.rk-sim-icon-box svg {
    width: 60px;
    height: 60px;
}

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

.state-protected .rk-sim-text h4 { color: var(--rk-sum-green); }
.state-unprotected .rk-sim-text h4 { color: var(--rk-sum-red); }

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

.rk-sim-text a {
    color: var(--rk-sum-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-sim-text a:hover {
    border-color: var(--rk-sum-blue);
}

/* Tagi Długiego Ogona */
.rk-tags-section {
    padding: 0 40px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: #334155;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: #e2e8f0;
    color: var(--rk-sum-dark);
}

/* CTA */
.rk-widget-cta {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 40px;
    text-align: center;
    border-radius: 0 0 24px 24px;
}

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

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-sum-blue);
    color: #ffffff;
    padding: 18px 35px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-btn-cta:hover {
    background: #0ea5e9;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
}

/* Mobile */
@media (max-width: 768px) {
    .rk-widget-header { padding: 30px 20px 15px; }
    .rk-widget-header h2 { font-size: 24px; }
    .rk-sim-panel { grid-template-columns: 1fr; text-align: center; padding: 30px 20px; gap: 20px; }
    .rk-sim-icon-box { margin: 0 auto; width: 90px; height: 90px; }
    .rk-sim-icon-box svg { width: 45px; height: 45px; }
    .rk-tags-section { padding: 0 20px 25px; }
    .rk-widget-cta { padding: 30px 20px; }
    .rk-btn-cta { width: 100%; justify-content: center; padding: 16px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
    },
    "headline": "Podsumowanie: Separator Zanieczyszczeń to Inwestycja, Nie Koszt",
    "description": "Zestawienie korzyści płynących z montażu separatorów powietrza i zanieczyszczeń w ogrzewaniu podłogowym. Sprawdź, jak chronią one pompy obiegowe i wymienniki przed magnetytem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-07",
    "dateModified": "2026-08-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#dataset-symulacja",
    "name": "Symulacja Żywotności Instalacji C.O. z Separatorem i bez",
    "description": "Dane obrazujące wpływ osadów magnetytowych i mikropęcherzy powietrza na żywotność elementów wykonawczych instalacji grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "separator magnetyczny do pompy ciepła",
      "odpowietrznik mikropęcherzy w podłogówce",
      "ochrona wymiennika płytowego przed szlamem",
      "żywotność pompy obiegowej z magnesami trwałymi",
      "zatykanie rur pex w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Porównanie techniczne niezawodności armatury (pompy, wymienniki) w warunkach pracy z tlenkami żelaza kontra praca z pełną filtracją magnetyczną.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Instalacja chroniona: Pełna żywotność pompy ECM, stabilny przepływ w pętlach, zachowana sprawność wymiennika.",
        "Brak ochrony: Zablokowanie wirnika z magnesami trwałymi, spadek przepływu o 30 procent, głośna praca kawitacyjna."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webapp-symulator",
    "name": "Interaktywny Symulator Ochrony Hydraulicznej",
    "description": "Narzędzie pozwalające na interaktywne przełączanie między stanami instalacji z filtrem magnetycznym oraz bez niego, demonstrujące potencjalne uszkodzenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-widget" id="rk-separator-summary">
    <div class="rk-widget-header">
        <h2>Podsumowanie: Separator Zanieczyszczeń to Inwestycja, Nie Koszt</h2>
        <h3>Symulator Ochrony Hydraulicznej i Żywotności Podłogówki</h3>
    </div>

    <div class="rk-toggle-container">
        <div class="rk-toggle-wrapper" id="rk-sim-toggle" data-state="protected">
            <div class="rk-toggle-slider"></div>
            <button class="rk-toggle-btn active" data-target="protected">Instalacja Chroniona</button>
            <button class="rk-toggle-btn" data-target="unprotected">Brak Ochrony</button>
        </div>
    </div>

    <!-- Panel: Instalacja Chroniona -->
    <div class="rk-sim-panel state-protected" id="rk-panel-protected">
        <div class="rk-sim-icon-box">
            <svg 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>
                <polyline points="9 12 11 14 15 10"></polyline>
            </svg>
        </div>
        <div class="rk-sim-text">
            <h4>Wieloletnia praca bez awarii</h4>
            <p>Stosowanie dedykowanego separatora zanieczyszczeń z wkładem magnetycznym oraz deaeratora mikropęcherzyków to gwarancja bezpieczeństwa. Chronisz w ten sposób <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowe</a> z wirnikiem ECM przed zatarciem.</p>
            <p>Utrzymujesz czystość wąskich pętli rur PEX oraz chronisz <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">wymiennik płytowy</a> przed zjawiskiem zarastania. Korzyści finansowe z bezawaryjnej pracy wielokrotnie przewyższają jednorazowy koszt zakupu separatorów.</p>
        </div>
    </div>

    <!-- Panel: Brak Ochrony (domyślnie ukryty) -->
    <div class="rk-sim-panel state-unprotected" id="rk-panel-unprotected" style="display: none;">
        <div class="rk-sim-icon-box">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <line x1="12" y1="8" x2="12" y2="12"></line>
                <line x1="12" y1="16" x2="12.01" y2="16"></line>
            </svg>
        </div>
        <div class="rk-sim-text">
            <h4>Błędy, które zniszczą budżet</h4>
            <p>Rezygnacja z separacji osadów i powietrza oznacza, że krążący w układzie magnetyt trafia prosto na wirniki z magnesami trwałymi. Skutek? Zablokowana pompa, błąd przepływu na pompie ciepła i kosztowna naprawa gwarancyjna (odrzucana przez serwisy).</p>
            <p>Zanieczyszczenia w postaci szlamu obniżają sprawność przekazywania ciepła o dziesiątki procent. Brak fachowego <a href="https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/">projektu instalacji</a> to pierwszy krok do katastrofy.</p>
        </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># separator magnetyczny do pompy ciepła</span>
        <span class="rk-mat-tag"># odpowietrznik mikropęcherzy w podłogówce</span>
        <span class="rk-mat-tag"># ochrona wymiennika płytowego przed szlamem</span>
        <span class="rk-mat-tag"># żywotność pompy obiegowej z magnesami trwałymi</span>
        <span class="rk-mat-tag"># zatykanie rur pex w ogrzewaniu podłogowym</span>
        <span class="rk-mat-tag"># profesjonalny projekt instalacji grzewczej</span>
        <span class="rk-mat-tag"># awaria pompy ciepła błąd przepływu</span>
        <span class="rk-mat-tag"># odmulacz do instalacji c.o. cena</span>
        <span class="rk-mat-tag"># magnetyt w instalacji grzewczej</span>
        <span class="rk-mat-tag"># armatura zabezpieczająca do podłogówki</span>
    </div>

    <div class="rk-widget-cta">
        <p>Planujesz montaż ogrzewania podłogowego w swoim domu i chcesz uniknąć kosztownych błędów hydraulicznych? Skorzystaj z doświadczenia inżynierów projekt-ogrzewania.pl. Zbudujemy układ, który będzie służył dekady.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            ZOBACZ KOMPLETNĄ BAZĘ WIEDZY
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
                <line x1="5" y1="12" x2="19" y2="12"></line>
                <polyline points="12 5 19 12 12 19"></polyline>
            </svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleWrapper = document.getElementById('rk-sim-toggle');
    const btns = toggleWrapper.querySelectorAll('.rk-toggle-btn');
    const panelProtected = document.getElementById('rk-panel-protected');
    const panelUnprotected = document.getElementById('rk-panel-unprotected');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetState = this.getAttribute('data-target');
            
            // Aktualizacja przycisków
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            this.classList.add('active');
            
            // Aktualizacja stanu suwaka
            toggleWrapper.setAttribute('data-state', targetState);

            // Wyświetlanie odpowiedniego panelu ze sprawdzeniem bezpiecznej logiki (bez "&&")
            if (targetState === 'protected') {
                panelUnprotected.style.display = 'none';
                panelProtected.style.display = 'grid';
                // Wymuszenie reflow dla płynności
                void panelProtected.offsetWidth;
                panelProtected.style.opacity = '1';
                panelUnprotected.style.opacity = '0';
            } else {
                panelProtected.style.display = 'none';
                panelUnprotected.style.display = 'grid';
                // Wymuszenie reflow dla płynności
                void panelUnprotected.offsetWidth;
                panelUnprotected.style.opacity = '1';
                panelProtected.style.opacity = '0';
            }
        });
    });
});
</script>



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

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

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

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

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "separator zanieczyszczeń z magnesem",
        "separator powietrza w ogrzewaniu podłogowym",
        "ochrona pompy ciepła przed szlamem",
        "schemat montażu separatora",
        "Robert Kucharski ogrzewanie podłogowe"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 07:09:15 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Modernizacja instalacji]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Wymiennik płytowy]]></category>
		<category><![CDATA[Zabezpieczenia instalacji]]></category>
		<category><![CDATA[awarie instalacji]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[kocioł na paliwo stałe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opory hydrauliczne]]></category>
		<category><![CDATA[pex]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[przepływ przeciwprądowy]]></category>
		<category><![CDATA[rozdzielacz podłogowy]]></category>
		<category><![CDATA[separacja hydrauliczna]]></category>
		<category><![CDATA[sprzęgło hydrauliczne]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[wymiennik płytowy]]></category>
		<category><![CDATA[zawór trójdrogowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4369</guid>

					<description><![CDATA[<p>Zastanawiasz się, jak bezpiecznie połączyć nowoczesny system płaszczyznowy ze starszym kotłem stałopalnym lub gazowym, który generuje bardzo wysokie temperatury? Odpowiedzią na to wyzwanie inżynieryjne jest prawidłowo dobrany wymiennik płytowy w ogrzewaniu podłogowym. To stosunkowo niewielkie, ale absolutnie kluczowe urządzenie pełni funkcję głównego strażnika całej instalacji. Skutecznie obniża temperaturę wody zasilającej, chroniąc rury PEX przed przyspieszonym starzeniem oraz wylewkę przed pękaniem. W naszym najnowszym artykule dokładnie analizujemy, kiedy jego montaż jest konieczny, a w jakich sytuacjach (np. przy nowoczesnych pompach ciepła) można z niego zrezygnować. Poznaj zasady przepływu przeciwprądowego, naucz się samodzielnie obliczać opory hydrauliczne i zobacz na konkretnych przykładach, jak uniknąć krytycznych błędów, które mogą kosztować Cię nawet kilkadziesiąt tysięcy złotych za kucie zniszczonej posadzki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; /* Zmiana na chłodny niebieski/techniczny, pasujący do hydrauliki i wymienników */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; /* Jasnoniebieskie tło dopasowane do akcentu */
    --border-color: #e2e8f0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Zasada działania wymiennika płytowego w ogrzewaniu podłogowym",
    "description": "Kompendium wiedzy na temat zasady działania, parametrów technicznych i doboru wymiennika płytowego do instalacji ogrzewania podłogowego. Separacja hydrauliczna i ochrona termiczna jastrychu.",
    "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/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny pracy wymiennika płytowego",
    "description": "Zestawienie kluczowych parametrów technicznych oraz procesów fizycznych zachodzących w wymienniku płytowym w układzie ogrzewania płaszczyznowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Fizyka procesu",
        "value": "Przewodzenie przeciwprądowe",
        "description": "Zjawisko przekazywania ciepła przez stalową przegrodę przy wysokiej efektywności"
      },
      {
        "@type": "PropertyValue",
        "name": "Separacja hydrauliczna",
        "value": "Dwa niezależne obiegi",
        "description": "Całkowite oddzielenie medium pierwotnego od wtórnego"
      },
      {
        "@type": "PropertyValue",
        "name": "Ochrona termiczna",
        "value": "Redukcja temperatury",
        "description": "Zabezpieczenie wylewki przed przegrzaniem wg normy PN-EN 1264"
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie",
        "value": "Kotły stałopalne i gazowe",
        "description": "Współpraca wysokotemperaturowych źródeł z systemem niskotemperaturowym"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>🛡️</span> Fundament Bezpieczeństwa
        </div>
        
        <p class="hero-text">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym opiera się na zjawisku przewodzenia ciepła przez cienką stalową przegrodę przy zachowaniu <strong>całkowitej separacji hydraulicznej</strong> dwóch niezależnych obiegów. Jest to kluczowy element instalacji niskotemperaturowych, który umożliwia bezpieczną współpracę wysokotemperaturowego źródła ciepła z wrażliwą na przegrzanie wylewką podłogową. W niniejszym artykule przeanalizuję szczegółowo fizykę tego procesu, parametry techniczne oraz kryteria optymalnego doboru urządzenia w kontekście <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normy PN-EN 1264</a> dotyczącej ogrzewania płaszczyznowego.</p>
        
        <p class="hero-text">Współczesne systemy grzewcze coraz częściej wymagają oddzielenia obiegu źródła ciepła od obiegu odbiorczego. W przypadku podłogówki, gdzie <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania nie powinna przekraczać 55°C</a> (a optymalnie wynosi 35-40°C), wymiennik płytowy staje się nie tyle dodatkiem, co koniecznością techniczną przy współpracy z <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">kotłami stałopalnymi</a>, gazowymi niekondensacyjnymi czy nawet niektórymi pompami ciepła pracującymi w trybie wysokotemperaturowym.</p>

        <div class="hero-modules-title">W tym kompendium przeanalizujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">🌡️</span>
                <span class="hero-card-title">Fizyka wymiany ciepła</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🔀</span>
                <span class="hero-card-title">Separacja hydrauliczna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">📉</span>
                <span class="hero-card-title">Parametry doboru wg EN 1264</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🛡️</span>
                <span class="hero-card-title">Ochrona rur i wylewki</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Kluczowe parametry i funkcje wymiennika płytowego</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Aspekt techniczny</th>
                        <th style="padding: 10px 0; color: #475569;">Charakterystyka</th>
                        <th style="padding: 10px 0; color: #475569;">Główne zadanie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Fizyka procesu</td>
                        <td style="padding: 10px 0; font-weight: bold;">Przewodzenie przez przegrodę</td>
                        <td style="padding: 10px 0; color: #0284c7;">Wysoka efektywność wymiany bez mieszania</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Separacja hydrauliczna</td>
                        <td style="padding: 10px 0; font-weight: bold;">Dwa niezależne obiegi</td>
                        <td style="padding: 10px 0; color: #0284c7;">Ochrona instalacji przed zanieczyszczeniami z kotła</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Redukcja temperatury</td>
                        <td style="padding: 10px 0; font-weight: bold;">T_max zasilania = 55°C</td>
                        <td style="padding: 10px 0; color: #0284c7;">Zabezpieczenie rur PEX/PERT oraz jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Zastosowanie (Źródło)</td>
                        <td style="padding: 10px 0; font-weight: bold;">Wysokotemperaturowe</td>
                        <td style="padding: 10px 0; color: #0284c7;">Współpraca ze stałopałami i kotłami starszego typu</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

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



<style>
/* STYLE DLA TABELI TECHNICZNEJ I CECH KONSTRUKCYJNYCH */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

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

.compare-header {
    padding: 40px 40px 20px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    text-align: left;
}

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

.compare-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

/* TABELA */
.table-container {
    padding: 10px 40px 20px 40px;
}

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

.styled-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.styled-table th,
.styled-table td {
    padding: 16px 15px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
}

.styled-table th {
    background-color: var(--bg-light);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
    border-bottom: 3px solid var(--border-color);
}

.styled-table th:nth-child(1) { width: 25%; }
.styled-table th:nth-child(2) { width: 15%; color: var(--accent); border-bottom-color: var(--accent); }
.styled-table th:nth-child(3) { width: 25%; }
.styled-table th:nth-child(4) { width: 35%; }

.styled-table td {
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

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

.styled-table td a:hover {
    color: #1e3a8a;
    border-bottom-style: solid;
}

.styled-table td:first-child {
    font-weight: 700;
    color: var(--primary);
}

.styled-table td:nth-child(2) {
    font-family: 'Georgia', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 16px;
    color: var(--accent);
}

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

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

/* CECHY KONSTRUKCYJNE (Zamiast Case Study) */
.case-study-container {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.case-study-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.case-card {
    background: var(--bg-light);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

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

.case-card.feat-1::before { background: var(--accent); }
.case-card.feat-2::before { background: var(--success); }

.case-card h5 {
    margin: 0 0 15px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

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

.power-result {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.power-result span {
    display: block;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 5px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.power-result strong {
    font-size: 20px;
    font-weight: 900;
    color: var(--primary);
}

/* RESPONSYWNOŚĆ TABELI (KARTY NA MOBILE) */
@media (max-width: 768px) {
    .compare-header { padding: 30px 20px; }
    .table-container { padding: 10px 20px; }
    .case-study-container { padding: 20px; }
    .case-grid { grid-template-columns: 1fr; }
    
    /* Transformacja tabeli w bloki na małych ekranach */
    .styled-table thead { display: none; }
    .styled-table, .styled-table tbody, .styled-table tr, .styled-table td {
        display: block;
        width: 100%;
    }
    
    .styled-table tr {
        margin-bottom: 20px;
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    }
    
    .styled-table td {
        padding: 12px 15px;
        text-align: right;
        border-bottom: 1px solid #f1f5f9;
        position: relative;
    }
    
    .styled-table td:last-child {
        border-bottom: 0;
    }

    /* Etykiety dla bloków (zastępują nagłówki kolumn) */
    .styled-table td::before {
        content: attr(data-label);
        position: absolute;
        left: 15px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
        text-align: left;
        font-weight: 800;
        font-size: 12px;
        color: #64748b;
        text-transform: uppercase;
    }

    .styled-table td:nth-child(2) {
        text-align: right;
    }
    
    /* Upewnienie się, że tekst się mieści */
    .styled-table td {
        padding-left: 50%; /* Zostawia miejsce na etykietę */
    }
    
    /* Na pierwszym wierszu wyłączamy etykietę żeby służył jako tytuł karty */
    .styled-table td:first-child {
        padding-left: 15px;
        text-align: left;
        background: var(--bg-light);
        font-size: 15px;
        border-bottom: 2px solid var(--accent);
    }
    
    .styled-table td:first-child::before {
        content: none;
    }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Podstawowe parametry techniczne wymiennika płytowego",
  "description": "Zestawienie kluczowych wielkości fizycznych i technicznych definiujących pracę wymiennika płytowego w instalacji ogrzewania podłogowego o mocy 10-30 kW.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Moc nominalna",
      "propertyID": "Q",
      "value": "15–40 kW",
      "description": "Musi odpowiadać zapotrzebowaniu cieplnemu budynku powiększonemu o 15–20% zapasu"
    },
    {
      "@type": "PropertyValue",
      "name": "Współczynnik przenikania ciepła",
      "propertyID": "k",
      "value": "3000–6000 W/(m²·K)",
      "description": "Im wyższy, tym mniejszy wymiennik potrzebny do tej samej mocy"
    },
    {
      "@type": "PropertyValue",
      "name": "Spadek ciśnienia po stronie wtórnej",
      "propertyID": "Δp",
      "value": "5–20 kPa",
      "description": "Krytyczny dla doboru pompy obiegowej podłogówki"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalne ciśnienie pracy",
      "propertyID": "Pmax",
      "value": "10–16 bar",
      "description": "Standard dla instalacji zamkniętych z naczyniem przeponowym"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna temperatura pracy",
      "propertyID": "Tmax",
      "value": "110–180°C",
      "description": "Zabezpieczenie przed przegrzaniem z kotła stałopalnego"
    },
    {
      "@type": "PropertyValue",
      "name": "Liczba płyt",
      "propertyID": "n",
      "value": "20–60",
      "description": "Decyduje o mocy i oporach hydraulicznych"
    },
    {
      "@type": "PropertyValue",
      "name": "Pojemność wodna",
      "propertyID": "V",
      "value": "0,5–2,5 dm³",
      "description": "Mała bezwładność cieplna = szybka reakcja na zmiany zapotrzebowania"
    }
  ],
  "creator": {
    "@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/"
    ]
  }
}
</script>

<div class="premium-compare-module premium-protected" id="exchanger-params-app">
    
    <div class="compare-header">
        <h3>Czym dokładnie jest wymiennik płytowy w instalacji podłogowej?</h3>
        <p>Wymiennik płytowy to urządzenie składające się z pakietu cienkich, profilowanych płyt ze stali nierdzewnej (najczęściej <strong>AISI 316L</strong> lub <strong>AISI 304</strong>), które są ze sobą szczelnie zlutowane lub skręcone.</p>
        
        <p>Pomiędzy płytami powstają naprzemienne kanały przepływowe – jedne dla <strong>medium pierwotnego</strong> (gorąca woda z kotła), drugie dla <strong>medium wtórnego</strong> (woda krążąca w pętlach podłogowych). <strong>Fizyczny kontakt obu cieczy jest niemożliwy</strong>, co stanowi fundament bezpieczeństwa całej instalacji.</p>
    </div>

    <div class="table-container">
        <span class="table-title">Podstawowe parametry techniczne definiujące pracę wymiennika</span>
        <p style="font-size: 14px; color: #475569; margin-top: 0; margin-bottom: 20px;">Każdy wymiennik charakteryzuje się zestawem parametrów, które bezpośrednio determinują jego przydatność. Poniższa tabela przedstawia kluczowe wielkości dla typowych aplikacji mieszkaniowych (10–30 kW).</p>
        
        <table class="styled-table">
            <thead>
                <tr>
                    <th>Parametr techniczny</th>
                    <th>Oznaczenie</th>
                    <th>Typowa wartość</th>
                    <th>Znaczenie praktyczne</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td data-label="Parametr">Moc nominalna</td>
                    <td data-label="Oznaczenie">Q</td>
                    <td data-label="Wartość"><strong>15–40 kW</strong></td>
                    <td data-label="Znaczenie">Musi odpowiadać <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowaniu cieplnemu budynku</a> powiększonemu o 15–20% zapasu.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Współczynnik przenikania</td>
                    <td data-label="Oznaczenie">k</td>
                    <td data-label="Wartość"><strong>3000–6000 W/(m²·K)</strong></td>
                    <td data-label="Znaczenie">Im wyższy, tym mniejszy wymiennik potrzebny do przeniesienia tej samej mocy.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Spadek ciśnienia wtórny</td>
                    <td data-label="Oznaczenie">Δp</td>
                    <td data-label="Wartość"><strong>5–20 kPa</strong></td>
                    <td data-label="Znaczenie">Krytyczny parametr dla prawidłowego doboru <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej podłogówki</a>.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Maksymalne ciśnienie</td>
                    <td data-label="Oznaczenie">Pmax</td>
                    <td data-label="Wartość"><strong>10–16 bar</strong></td>
                    <td data-label="Znaczenie">Standard wytrzymałościowy dla instalacji zamkniętych z <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczyniem wzbiorczym przeponowym</a>.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Maksymalna temp.</td>
                    <td data-label="Oznaczenie">Tmax</td>
                    <td data-label="Wartość"><strong>110–180°C</strong></td>
                    <td data-label="Znaczenie">Zabezpieczenie strukturalne przed skrajnym przegrzaniem z kotła stałopalnego.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Liczba płyt</td>
                    <td data-label="Oznaczenie">n</td>
                    <td data-label="Wartość"><strong>20–60</strong></td>
                    <td data-label="Znaczenie">Decyduje o fizycznej powierzchni wymiany ciepła i oporach hydraulicznych.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Pojemność wodna</td>
                    <td data-label="Oznaczenie">V</td>
                    <td data-label="Wartość"><strong>0,5–2,5 dm³</strong></td>
                    <td data-label="Znaczenie">Mała bezwładność cieplna = błyskawiczna reakcja układu na zmiany zapotrzebowania.</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="case-study-container">
        <div class="case-study-title">
            <span>🔍</span> Kluczowe Cechy Konstrukcyjne
        </div>
        
        <div class="case-grid">
            
            <div class="case-card feat-1">
                <h5>Rozwinięta powierzchnia wymiany</h5>
                <p>Mimo małych gabarytów, wymiennik oferuje gigantyczną powierzchnię kontaktu między mediami dzięki specjalnemu tłoczeniu w jodełkę (herringbone pattern).</p>
                
                <div class="power-result">
                    <span>Pojedyncza płyta (100 × 300 mm)</span>
                    Rzeczywisty kontakt: <strong>> 0,05 m²</strong>
                </div>
            </div>

            <div class="case-card feat-2">
                <h5>Kompaktowa potęga (Model 30-płytowy)</h5>
                <p>Złożenie kilkudziesięciu takich płyt w jeden zlutowany blok tworzy urządzenie, które bez problemu zasili ogrzewanie w dużym domu jednorodzinnym.</p>
                
                <div class="power-result" style="border-top: 3px solid var(--success);">
                    <span>Wymiennik 30-płytowy</span>
                    Łączna powierzchnia: <strong>1,5 – 2,0 m²</strong>
                </div>
            </div>

        </div>
    </div>

</div>

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



<style>
:root {
    --primary: #0f172a;
    --accent: #ef4444; /* Czerwony - ostrzegawczy */
    --accent-hover: #dc2626;
    --danger: #dc2626;
    --warning: #f59e0b;
    --success: #16a34a;
    --bg-light: #fef2f2; /* Delikatny czerwony podkład */
    --border-color: #fecaca;
}

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

.impact-header {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.impact-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.impact-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

.impact-header a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

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

.impact-content {
    padding: 45px;
}

.consequences-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.consequence-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.consequence-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.1);
    border-color: var(--border-color);
}

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

.consequence-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

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

.consequence-card a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.consequence-card a:hover {
    text-decoration: underline;
}

.card-metric {
    background: #f8fafc;
    padding: 10px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--danger);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #f1f5f9;
}

.interactive-widget-container {
    width: 100%;
    margin-top: 30px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
    background: #ffffff;
}

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

.sim-card {
    background: #f8fafc;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    text-align: center;
    transition: 0.3s;
}

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

@media (max-width: 900px) {
    .consequences-grid { grid-template-columns: 1fr; }
    .impact-header { padding: 30px 25px; }
    .impact-content { padding: 30px 25px; }
    .sim-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Limity termiczne i konsekwencje przegrzania ogrzewania podłogowego",
    "description": "Zestawienie krytycznych temperatur oraz fizycznych i materiałowych konsekwencji braku podmieszania wody w instalacjach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura pracy ciągłej rur PEX",
        "value": "55–60°C",
        "description": "Przekroczenie powoduje starzenie termiczne. Przy 80°C żywotność spada z 50 do 10-15 lat (PN-EN ISO 15875)."
      },
      {
        "@type": "PropertyValue",
        "name": "Współczynnik rozszerzalności termicznej wylewki",
        "value": "0,012 mm/(m·K)",
        "description": "Ryzyko pęknięć jastrychu przy nagłych skokach temperatury o 40°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura posadzki (Strefa mieszkalna)",
        "value": "29°C",
        "description": "Zgodnie z normą PN-EN 1264-2. Wyższe wartości powodują dyskomfort i problemy zdrowotne."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator degradacji termicznej podłogówki",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające symulować wpływ temperatury zasilania z kotła (35°C - 90°C) na żywotność rur, naprężenia w jastrychu oraz odczuwalną temperaturę posadzki.",
    "featureList": [
      "Symulacja skracania żywotności rur PEX w czasie rzeczywistym",
      "Wizualizacja pęknięć jastrychu cementowego w funkcji ΔT",
      "Wskaźnik dyskomfortu termicznego stóp"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-impact-box" id="impact-app-lock">
    <div class="impact-header">
        <h2><span>🔥</span> Dlaczego nie można pompować wrzątku w podłogę?</h2>
        <p>Odpowiedź jest dwutorowa: <strong>bezpieczeństwo materiałowe</strong> oraz <strong>komfort użytkowania</strong>. Woda z typowego kotła gazowego lub na paliwo stałe osiąga temperaturę 70–80°C, a w przypadku kotłów zgazowujących drewno może to być nawet 85–90°C w szczycie pracy. Wprowadzenie tak gorącego medium bezpośrednio do <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rur PEX lub PERT</a> zatopionych w posadzce prowadzi do natychmiastowych, destrukcyjnych konsekwencji.</p>
    </div>

    <div class="impact-content">
        <div class="consequences-grid">
            
            <div class="consequence-card">
                <span class="card-icon">☠️</span>
                <h4>Degradacja Rur (PN-EN ISO 15875)</h4>
                <p>Maksymalna temperatura ciągłej pracy rur PEX wynosi 55–60°C. Długotrwałe narażenie na 80°C powoduje przyspieszone starzenie termiczne polietylenu, kruchość i utratę elastyczności.</p>
                <div class="card-metric">
                    <span>Żywotność układu:</span>
                    <span>Spadek z 50 do 10 lat</span>
                </div>
            </div>

            <div class="consequence-card">
                <span class="card-icon">⚡</span>
                <h4>Rozrywanie Wylewki</h4>
                <p>Naprężenia termiczne w <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu cementowym</a> (współczynnik 0,012 mm/(m·K)) przy różnicy temperatur rzędu 40°C przekraczają jego wytrzymałość na rozciąganie.</p>
                <div class="card-metric">
                    <span>Skutek wizualny:</span>
                    <span>Pękanie płytek</span>
                </div>
            </div>

            <div class="consequence-card">
                <span class="card-icon">👣</span>
                <h4>Dyskomfort i Oparzenia</h4>
                <p>Norma PN-EN 1264-2 określa maksymalną temperaturę podłogi na 29°C. Przy zasilaniu rzędu 80°C, miejscowa temperatura posadzki osiąga wartości nieakceptowalne dla człowieka.</p>
                <div class="card-metric">
                    <span>Temp. podeszwy:</span>
                    <span>Nawet > 40°C</span>
                </div>
            </div>

        </div>

        <h4 style="margin: 0 0 15px 0; font-size: 16px; color: var(--primary);">Symulator Degradacji Termicznej</h4>
        <p style="font-size: 14px; color: #475569; margin-bottom: 20px;">Sprawdź na własne oczy, co dzieje się z instalacją, gdy temperatura zasilania przekracza bezpieczne normy. Przesuń suwak na temperaturę generowaną np. przez stary kocioł węglowy.</p>

        <div class="interactive-widget-container">
            <div style="padding: 25px;">
                <div style="margin-bottom: 20px;">
                    <label style="font-weight: 800; font-size: 15px; color: var(--primary); display: flex; justify-content: space-between; align-items: center;">
                        Temperatura Zasilania z Kotła
                        <span id="sim-temp-val" style="color: var(--success); font-size: 22px; font-weight: 900;">35°C</span>
                    </label>
                    <input type="range" id="sim-temp-slider" min="35" max="90" step="1" value="35">
                </div>
                
                <div id="sim-alert" style="padding: 12px 15px; border-radius: 8px; background: #f0fdf4; color: #166534; font-weight: 700; font-size: 14px; margin-bottom: 20px; border: 1px solid #bbf7d0; transition: 0.3s;">
                    Optymalne warunki pracy instalacji.
                </div>
                
                <div class="sim-grid">
                    <div class="sim-card" id="card-pex">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Żywotność Rury PEX</span>
                        <strong id="sim-pex" style="font-size: 18px; color: var(--success);">50 lat</strong>
                    </div>
                    <div class="sim-card" id="card-screed">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Stan Jastrychu</span>
                        <strong id="sim-screed" style="font-size: 18px; color: var(--success);">Stabilny</strong>
                    </div>
                    <div class="sim-card" id="card-floor">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Temp. Posadzki</span>
                        <strong id="sim-floor" style="font-size: 18px; color: var(--success);">~24°C</strong>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h2 style="color: #ffffff; margin-top: 0;">Tabela krytycznych parametrów termicznych</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Temperatura Zasilania</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Żywotność Rury PEX</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Stan Jastrychu</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Komfort</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold; color: #10b981;">35°C &#8211; 45°C</td>
                        <td style="padding: 10px 0;">Projektowe 50 lat</td>
                        <td style="padding: 10px 0;">Stabilny, bezpieczny</td>
                        <td style="padding: 10px 0;">Optymalny (ok. 24°C)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold; color: #f59e0b;">55°C &#8211; 60°C</td>
                        <td style="padding: 10px 0;">Przyspieszone starzenie</td>
                        <td style="padding: 10px 0;">Mikropęknięcia</td>
                        <td style="padding: 10px 0;">Dyskomfort (przekroczone 29°C)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold; color: #ef4444;">70°C &#8211; 90°C</td>
                        <td style="padding: 10px 0; color: #ef4444;">Zaledwie 10-15 lat!</td>
                        <td style="padding: 10px 0; color: #ef4444;">Destrukcja / pękanie płytek</td>
                        <td style="padding: 10px 0; color: #ef4444;">Oparzenia, brak możliwości chodzenia</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Aby przetestować interaktywny symulator wpływu temperatury, włącz obsługę skryptów JavaScript.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('impact-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA SYMULATORA
    const slider = document.getElementById('sim-temp-slider');
    const valDisp = document.getElementById('sim-temp-val');
    const alertBox = document.getElementById('sim-alert');
    const outPex = document.getElementById('sim-pex');
    const outScreed = document.getElementById('sim-screed');
    const outFloor = document.getElementById('sim-floor');
    
    const cardPex = document.getElementById('card-pex');
    const cardScreed = document.getElementById('card-screed');
    const cardFloor = document.getElementById('card-floor');

    if(slider) {
        slider.addEventListener('input', function() {
            let temp = parseInt(this.value);
            valDisp.innerText = temp + '°C';

            // Uproszczona kalkulacja temperatury posadzki dla celów demonstracyjnych
            let floorTemp = 24 + ((temp - 35) * 0.4);

            if (temp <= 45) {
                valDisp.style.color = 'var(--success)';
                alertBox.style.background = '#f0fdf4';
                alertBox.style.color = '#166534';
                alertBox.style.borderColor = '#bbf7d0';
                alertBox.innerHTML = '✅ Optymalne warunki pracy instalacji.';

                outPex.innerText = '50 lat (Zgodnie z normą)';
                outPex.style.color = 'var(--success)';
                cardPex.style.borderColor = '#bbf7d0';

                outScreed.innerText = 'Stabilny, bezpieczny';
                outScreed.style.color = 'var(--success)';
                cardScreed.style.borderColor = '#bbf7d0';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Komfort)';
                outFloor.style.color = 'var(--success)';
                cardFloor.style.borderColor = '#bbf7d0';

            } else if (temp <= 60) {
                valDisp.style.color = 'var(--warning)';
                alertBox.style.background = '#fffbeb';
                alertBox.style.color = '#b45309';
                alertBox.style.borderColor = '#fde68a';
                alertBox.innerHTML = '⚠️ Ostrzeżenie: Rozpoczyna się przyspieszone starzenie materiałów.';

                outPex.innerText = '~30 lat (Skrócona)';
                outPex.style.color = 'var(--warning)';
                cardPex.style.borderColor = '#fde68a';

                outScreed.innerText = 'Ryzyko mikropęknięć';
                outScreed.style.color = 'var(--warning)';
                cardScreed.style.borderColor = '#fde68a';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Zbyt ciepło)';
                outFloor.style.color = 'var(--warning)';
                cardFloor.style.borderColor = '#fde68a';

            } else if (temp <= 75) {
                valDisp.style.color = 'var(--danger)';
                alertBox.style.background = '#fef2f2';
                alertBox.style.color = '#b91c1c';
                alertBox.style.borderColor = '#fecaca';
                alertBox.innerHTML = '🚨 Krytycznie: Znaczne przekroczenie norm! Parametry destrukcyjne.';

                outPex.innerText = '~15-20 lat';
                outPex.style.color = 'var(--danger)';
                cardPex.style.borderColor = '#fecaca';

                outScreed.innerText = 'Naprężenia, pękanie';
                outScreed.style.color = 'var(--danger)';
                cardScreed.style.borderColor = '#fecaca';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Ryzyko oparzeń)';
                outFloor.style.color = 'var(--danger)';
                cardFloor.style.borderColor = '#fecaca';

            } else {
                valDisp.style.color = '#7f1d1d';
                slider.style.background = '#fecaca';
                alertBox.style.background = '#7f1d1d';
                alertBox.style.color = '#ffffff';
                alertBox.style.borderColor = '#450a0a';
                alertBox.innerHTML = '☠️ AWARIA: Wrzątek w instalacji! Natychmiastowe zniszczenia.';

                outPex.innerText = '< 10 lat!';
                outPex.style.color = '#7f1d1d';
                cardPex.style.borderColor = '#7f1d1d';

                outScreed.innerText = 'Destrukcja / odspojenia';
                outScreed.style.color = '#7f1d1d';
                cardScreed.style.borderColor = '#7f1d1d';

                outFloor.innerText = '> 40°C!';
                outFloor.style.color = '#7f1d1d';
                cardFloor.style.borderColor = '#7f1d1d';
            }
        });
        
        // Trigger initial state
        slider.dispatchEvent(new Event('input'));
    }
});
</script>



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

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

.formula-header {
    padding: 35px 45px;
    text-align: left;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border-bottom: 1px solid var(--border-color);
}

.formula-header h3 {
    margin: 0 0 12px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

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

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

.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 42px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #f0f7ff;
    padding: 30px 60px;
    border-radius: 20px;
    border: 2px solid #dbeafe;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

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

.legend-box {
    width: 100%;
    max-width: 650px;
}

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

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

.legend-item {
    display: flex;
    align-items: flex-start;
    padding: 16px 20px;
    margin-bottom: 10px;
    background: #ffffff;
    border-radius: 14px;
    border: 1px solid #f1f5f9;
    font-size: 15px;
    color: #334155;
    transition: all 0.2s ease;
}

.legend-item:hover {
    background: var(--bg-light);
    border-color: var(--accent);
    transform: translateX(5px);
}

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

.legend-desc strong {
    color: var(--primary);
}

.calculation-example {
    width: 100%;
    background: #f8fafc;
    border-radius: 16px;
    padding: 25px;
    border-left: 4px solid var(--accent);
}

.example-title {
    font-weight: 800;
    font-size: 14px;
    color: var(--primary);
    margin-bottom: 15px;
    text-transform: uppercase;
}

.formula-footer {
    padding: 25px 45px;
    background: #ffffff;
    border-top: 1px solid #f1f5f9;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #64748b;
}

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

@media (max-width: 600px) {
    .formula-header { padding: 30px 25px; }
    .formula-content { padding: 30px 20px; }
    .math-display { font-size: 28px; padding: 20px; flex-wrap: wrap; }
    .legend-item { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wzór inżynierski na moc cieplną wymiennika płytowego (Równanie Fouriera)",
    "description": "Zestawienie parametrów termodynamicznych wymiennika ciepła, w tym strumień cieplny (Q), współczynnik przenikania (k), powierzchnia wymiany (A) oraz średnia logarytmiczna różnica temperatur (ΔTlm).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Q (Strumień cieplny)",
        "description": "Całkowita moc [W/kW], jaką musi dostarczyć wymiennik, by pokryć straty ciepła budynku."
      },
      {
        "@type": "PropertyValue",
        "name": "k (Współczynnik przenikania)",
        "description": "Zdolność przewodzenia ciepła stali (np. AISI 316L) zależna od profilu płyt [W/(m²·K)]."
      },
      {
        "@type": "PropertyValue",
        "name": "A (Powierzchnia wymiany)",
        "description": "Suma powierzchni kontaktowych płyt [m²]."
      },
      {
        "@type": "PropertyValue",
        "name": "ΔTlm (Średnia logarytmiczna różnica temperatur)",
        "description": "Siła napędowa wymiany ciepła w układzie przeciwprądowym [K]."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Edukacyjny Panel Obliczeniowy: Inżynieria Wymiany Ciepła",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny moduł edukacyjny wyjaśniający proces termodynamiczny w wymienniku płytowym. Prezentuje układ równania Fouriera, analizę parametrów wejściowych oraz Case Study dla doboru urządzenia o mocy 20 kW.",
    "featureList": [
      "Dekonstrukcja równania Fouriera dla wymiany ciepła",
      "Analiza parametrów Q, k, A, ΔTlm",
      "Przykład obliczeniowy dla projektowania układu o mocy 20 kW"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-formula-box" id="formula-thermal-app">
    <div class="formula-header">
        <h3><span>🔬</span> Inżynieria Wymiany Ciepła</h3>
        <p>Proces termodynamiczny w wymienniku płytowym opisuje równanie Fouriera, które definiuje sprawność przekazu energii między obiegiem kotła a <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color: var(--accent); font-weight: 600;">pętlami podłogówki</a>.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>Q</span>
            <span style="color: var(--primary); font-style: normal; margin: 0 10px;">=</span>
            <span>k · A · ΔT<sub class="math-sub">lm</sub></span>
        </div>

        <div class="legend-box">
            <div class="legend-title">Analiza parametrów wejściowych:</div>
            
            <div class="legend-item">
                <div class="legend-symbol">Q</div>
                <div class="legend-desc"><strong>Strumień cieplny</strong> [W/kW] – całkowita moc, jaką musi dostarczyć wymiennik, by pokryć <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty ciepła budynku</a>.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">k</div>
                <div class="legend-desc"><strong>Współczynnik przenikania</strong> [W/(m²·K)] – zdolność stali (AISI 316L) do przewodzenia, zależna od profilu płyt i turbulencji przepływu.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">A</div>
                <div class="legend-desc"><strong>Powierzchnia wymiany</strong> [m²] – suma powierzchni wszystkich płyt kontaktu; klucz do kompaktowości urządzenia.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">ΔT<sub style="font-size: 10px; position: relative; top: 2px;">lm</sub></div>
                <div class="legend-desc"><strong>Średnia logarytmiczna różnica temperatur</strong> – rzeczywista „siła napędowa” wymiany w układzie przeciwprądowym.</div>
            </div>
        </div>

        <div class="calculation-example">
            <div class="example-title">💡 Case Study: Dobór dla 20 kW</div>
            <p style="font-size: 14px; line-height: 1.6; color: #475569; margin: 0;">
                Przy parametrach 75/55°C (kocioł) oraz 40/30°C (podłoga), ΔT<sub>lm</sub> wynosi <strong>29,7 K</strong>. 
                Dla standardowego wymiennika (k=4500), wymagana powierzchnia to zaledwie <strong>0,15 m²</strong>. 
                To pokazuje, dlaczego urządzenia te są tak małe przy tak ogromnych mocach.
            </p>
        </div>
    </div>

    <div class="formula-footer">
        <span>Norma: <strong>PN-EN 1264</strong></span>
        <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const app = document.getElementById('formula-thermal-app');
        if (app) {
            app.innerHTML = '<div style="padding: 50px; text-align: center; color: #dc2626; font-weight: 800;">Zasób chroniony prawem autorskim Projekt-Ogrzewania.pl</div>';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

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

/* LEWA STRONA - OBRAZ Z KLIKIEM */
.banner-image-wrapper {
    background: #f1f5f9;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--border-color);
    cursor: pointer;
    transition: background 0.3s ease;
}

.banner-image-wrapper:hover {
    background: #e2e8f0;
}

.img-click-target {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 0.4s ease;
}

.banner-image-wrapper:hover .img-click-target {
    transform: scale(1.03); /* Delikatne powiększenie zachęcające do kliknięcia */
}

.zoom-hint {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 8px;
    backdrop-filter: blur(4px);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.banner-image-wrapper:hover .zoom-hint {
    background: var(--accent);
    transform: translateX(-50%) translateY(-3px);
}

/* PRAWA STRONA - TREŚĆ I CTA */
.banner-content {
    padding: 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.banner-badge {
    display: inline-block;
    align-self: flex-start;
    padding: 6px 12px;
    background: #eff6ff;
    color: var(--accent);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 8px;
    margin-bottom: 20px;
    letter-spacing: 0.5px;
}

.banner-title {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.2;
}

.banner-desc {
    margin: 0 0 25px 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-muted);
}

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

.banner-features li {
    font-size: 14px;
    color: var(--primary);
    font-weight: 600;
    margin-bottom: 12px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.banner-features li::before {
    content: '✅';
    font-size: 14px;
    line-height: 1.4;
}

.btn-download-pdf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 30px;
    background: var(--accent);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.4);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-download-pdf:hover {
    background: var(--accent-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

.btn-subtext {
    display: block;
    margin-top: 12px;
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    text-align: center;
}

/* LIGHTBOX MODAL */
.lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    display: none; /* Ukryte domyślnie */
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.lightbox-overlay.active {
    display: flex;
    opacity: 1;
}

.lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
}

.lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    object-fit: contain;
}

.lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
    color: #ffffff;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s ease;
}

.lightbox-close:hover {
    color: var(--danger);
}

@media (max-width: 768px) {
    .premium-download-banner {
        grid-template-columns: 1fr;
    }
    .banner-image-wrapper {
        height: 250px;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
    }
    .banner-content {
        padding: 35px 25px;
    }
    .banner-title {
        font-size: 22px;
    }
    .lightbox-close {
        top: -35px;
        right: 10px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Infografika: Zasada działania wymiennika płytowego w ogrzewaniu podłogowym",
    "description": "Kompleksowa infografika inżynierska prezentująca zasady separacji hydraulicznej, algorytmy doboru wymiennika płytowego (wzór na moc Q) oraz ryzyka związane z przekraczaniem bezpiecznej temperatury zasilania w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    },
    "distribution": [
      {
        "@type": "DataDownload",
        "encodingFormat": "application/pdf",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.pdf"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "image/webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Galeria Infografik: Wymiennik Płytowy",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny interfejs wizualny (Lightbox) umożliwiający przeglądanie schematów hydraulicznych ogrzewania podłogowego w pełnym oknie przeglądarki. Narzędzie integruje również punkt pobierania zasobów edukacyjnych PDF w wysokiej rozdzielczości.",
    "featureList": [
      "Przeglądarka pełnoekranowa (Lightbox) dla schematów technicznych",
      "Pobieranie plików inżynierskich w formacie PDF",
      "Prezentacja strukturalna danych technicznych (Tabela krytycznych temperatur, Algorytm doboru)"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-download-banner" id="banner-app-lock">
    
    <div class="banner-image-wrapper" id="open-lightbox-btn">
        <img decoding="async" 
            src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp" 
            alt="Szczegółowy schemat i zasada działania wymiennika płytowego w podłogówce" 
            class="img-click-target"
            loading="lazy"
        >
        <div class="zoom-hint">🔍 Kliknij, aby powiększyć</div>
    </div>

    <div class="banner-content">
        <span class="banner-badge">📚 Darmowe Kompendium Wiedzy</span>
        
        <h3 class="banner-title">Wymiennik płytowy w podłogówce: Separacja, Bezpieczeństwo, Dobór</h3>
        
        <p class="banner-desc">Dlaczego nie można pompować wrzątku w podłogę? Pobierz naszą autorską infografikę w wysokiej rozdzielczości i miej najważniejsze wytyczne projektowe zawsze pod ręką.</p>
        
        <ul class="banner-features">
            <li><strong>Tabela Krytycznych Temperatur:</strong> Skutki wpuszczenia 80°C w wylewkę.</li>
            <li><strong>Algorytm Doboru (Skrót):</strong> Wzór inżynierski i parametry pomp.</li>
            <li><strong>Analiza Układów:</strong> Dlaczego przeciwprąd jest zawsze preferowany.</li>
        </ul>

        <div>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="btn-download-pdf">
                <span>📄 Pobierz Infografikę (PDF)</span>
            </a>
            <span class="btn-subtext">Plik bezpieczny, gotowy do druku A4/A3.</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fffbeb; color: #b45309; text-align: center; font-size: 14px;">
            Plik PDF ze schematami możesz pobrać bezpiecznie klikając w przycisk powyżej.
        </div>
    </noscript>
</div>

<div class="lightbox-overlay" id="lightbox-modal">
    <div class="lightbox-content">
        <span class="lightbox-close" id="close-lightbox-btn">&times;</span>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp" alt="Powiększona Infografika - Zasada Działania Wymiennika">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('banner-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny baner jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return;
    }

    // 2. LOGIKA LIGHTBOXA
    const openBtn = document.getElementById('open-lightbox-btn');
    const closeBtn = document.getElementById('close-lightbox-btn');
    const modal = document.getElementById('lightbox-modal');

    if (openBtn && modal && closeBtn) {
        // Otwieranie
        openBtn.addEventListener('click', function() {
            modal.classList.add('active');
            document.body.style.overflow = 'hidden'; // Blokuje przewijanie strony pod spodem
        });

        // Zamykanie X-em
        closeBtn.addEventListener('click', function() {
            modal.classList.remove('active');
            document.body.style.overflow = '';
        });

        // Zamykanie kliknięciem w tło (poza obrazkiem)
        modal.addEventListener('click', function(e) {
            if (e.target === modal) {
                modal.classList.remove('active');
                document.body.style.overflow = '';
            }
        });

        // Zamykanie klawiszem ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Escape' && modal.classList.contains('active')) {
                modal.classList.remove('active');
                document.body.style.overflow = '';
            }
        });
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Kolory termiczne */
    --temp-75: #ef4444; /* Gorąca */
    --temp-72: #f97316; /* Bardzo ciepła */
    --temp-52: #fcd34d; /* Letnia / Pośrednia */
    --temp-33: #7dd3fc; /* Wychłodzona */
    --temp-30: #3b82f6; /* Zimna */
}

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

.flow-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.flow-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.flow-header p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.flow-content {
    padding: 40px 45px;
}

/* SYMULATOR PRZEPŁYWU */
.sim-container {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 40px;
}

.sim-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.sim-btn {
    padding: 12px 25px;
    border: 2px solid #cbd5e1;
    background: #ffffff;
    border-radius: 12px;
    font-weight: 800;
    font-size: 14px;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
}

.sim-btn.active {
    border-color: var(--accent);
    background: var(--accent);
    color: #ffffff;
    box-shadow: 0 5px 15px rgba(37, 99, 235, 0.3);
}

.pipe-wrapper {
    position: relative;
    margin-bottom: 30px;
}

.pipe-wrapper:last-child {
    margin-bottom: 0;
}

.pipe-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #475569;
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
}

.pipe-track {
    height: 40px;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);
}

/* Warstwy gradientów do płynnego przenikania */
.pipe-gradient {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    transition: opacity 0.5s ease;
}

/* Gradienty Kocioł */
.grad-kociol-przeciw { background: linear-gradient(to right, var(--temp-75), var(--temp-33)); }
.grad-kociol-wspol { background: linear-gradient(to right, var(--temp-75), var(--temp-52)); opacity: 0; }

/* Gradienty Podłoga */
.grad-podloga-przeciw { background: linear-gradient(to left, var(--temp-30), var(--temp-72)); }
.grad-podloga-wspol { background: linear-gradient(to right, var(--temp-30), var(--temp-52)); opacity: 0; }

.flow-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255,255,255,0.8);
    font-size: 20px;
    font-weight: bold;
    pointer-events: none;
    transition: all 0.5s ease;
}

.arrow-left { left: 20px; }
.arrow-right { right: 20px; }
.arrow-center { left: 50%; transform: translate(-50%, -50%); }

.temp-badge {
    position: absolute;
    top: -12px;
    background: #ffffff;
    border: 2px solid var(--primary);
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    color: var(--primary);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.5s ease;
    z-index: 2;
}

.badge-start { left: 0; }
.badge-end { right: 0; }

.result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed #cbd5e1;
}

.metric-box {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.metric-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    display: block;
    margin-bottom: 5px;
}

.metric-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.metric-diff {
    font-size: 12px;
    font-weight: 700;
    color: var(--success);
    margin-top: 5px;
    display: block;
}

/* TEKST ARTYKUŁU */
.text-section {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
}

.text-section h4 {
    font-size: 18px;
    color: var(--primary);
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 800;
}

.text-section p {
    margin-bottom: 15px;
}

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

.highlight-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

.highlight-box code {
    display: block;
    font-family: monospace;
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 700;
    margin-bottom: 5px;
}

@media (max-width: 768px) {
    .flow-header { padding: 30px 25px; }
    .flow-content { padding: 30px 25px; }
    .sim-controls { flex-direction: column; }
    .result-metrics { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Porównanie parametrów układu przeciwprądowego i współprądowego",
    "description": "Zestawienie efektywności termodynamicznej wymienników ciepła z uwzględnieniem kierunku przepływu mediów.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Układ Współprądowy (T_końcowa)",
        "value": "52,5°C",
        "description": "Osiągana wartość asymptotyczna. Niemożliwe schłodzenie wody kotłowej poniżej tej wartości."
      },
      {
        "@type": "PropertyValue",
        "name": "Układ Przeciwprądowy (T1_wyj kocioł)",
        "value": "33°C",
        "description": "Przy tzw. approach temperature rzędu 3 K."
      },
      {
        "@type": "PropertyValue",
        "name": "Układ Przeciwprądowy (T2_wyj podłogówka)",
        "value": "72°C",
        "description": "Wysoka efektywność odzysku energii ze źródła ciepła."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator przepływów w wymienniku płytowym",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne ilustrujące zjawisko przepływu współprądowego i przeciwprądowego. Pozwala wizualnie zaobserwować proces dążenia do asymptoty (współprąd) w kontraście do efektywnego schłodzenia medium pierwotnego (przeciwprąd).",
    "featureList": [
      "Animacja gradientów termicznych wewnątrz kanałów przepływowych",
      "Dynamiczne przeliczanie parametrów wyjściowych (T1_wyj, T2_wyj)",
      "Graficzna prezentacja odwróconych strumieni przepływu"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-flow-module" id="flow-app-lock">
    <div class="flow-header">
        <h2><span>🔄</span> Jak przepływ przeciwprądowy maksymalizuje efektywność?</h2>
        <p>Przełącz tryb przepływu poniżej, aby fizycznie zobaczyć, dlaczego jeden układ marnuje energię, a drugi wyciska z niej 100%.</p>
    </div>

    <div class="flow-content">
        
        <div class="sim-container">
            <div class="sim-controls">
                <button class="sim-btn active" id="btn-counter">Układ Przeciwprądowy</button>
                <button class="sim-btn" id="btn-co">Układ Współprądowy</button>
            </div>

            <div class="pipe-wrapper">
                <div class="pipe-label">
                    <span>Medium Pierwotne (Kocioł)</span>
                    <span id="p1-direction" style="color:var(--danger)">Przepływ: → Lewo do Prawa</span>
                </div>
                <div class="pipe-track">
                    <div class="pipe-gradient grad-kociol-przeciw" id="p1-grad-counter"></div>
                    <div class="pipe-gradient grad-kociol-wspol" id="p1-grad-co"></div>
                    <span class="flow-arrow arrow-left">»</span>
                    <span class="flow-arrow arrow-center">»</span>
                    <span class="flow-arrow arrow-right">»</span>
                </div>
                <div class="temp-badge badge-start" style="border-color: var(--temp-75)">T1 wej = 75°C</div>
                <div class="temp-badge badge-end" id="p1-out-badge" style="border-color: var(--temp-33)">T1 wyj = 33°C</div>
            </div>

            <div class="pipe-wrapper" style="margin-top: 45px;">
                <div class="pipe-label">
                    <span>Medium Wtórne (Podłogówka)</span>
                    <span id="p2-direction" style="color:var(--success)">Przepływ: ← Prawo do Lewa</span>
                </div>
                <div class="pipe-track">
                    <div class="pipe-gradient grad-podloga-przeciw" id="p2-grad-counter"></div>
                    <div class="pipe-gradient grad-podloga-wspol" id="p2-grad-co"></div>
                    <span class="flow-arrow arrow-left" id="p2-arr-1">«</span>
                    <span class="flow-arrow arrow-center" id="p2-arr-2">«</span>
                    <span class="flow-arrow arrow-right" id="p2-arr-3">«</span>
                </div>
                <div class="temp-badge badge-start" id="p2-badge-left" style="border-color: var(--temp-72)">T2 wyj = 72°C</div>
                <div class="temp-badge badge-end" id="p2-badge-right" style="border-color: var(--temp-30)">T2 wej = 30°C</div>
            </div>

            <div class="result-metrics">
                <div class="metric-box">
                    <span class="metric-title">Sprawność termodynamiczna</span>
                    <span class="metric-val" id="eff-val">Max (Odzysk +50%)</span>
                    <span class="metric-diff" id="eff-desc">Minimalne straty egzergii</span>
                </div>
                <div class="metric-box">
                    <span class="metric-title">Średnia różnica temp. (ΔTlm)</span>
                    <span class="metric-val" id="dt-val">Wysoka i stabilna</span>
                    <span class="metric-diff" id="dt-desc" style="color:var(--accent)">Siła napędowa zachowana</span>
                </div>
            </div>
        </div>

        <div class="text-section">
            <p>Przepływ przeciwprądowy polega na skierowaniu obu mediów w przeciwne strony – gorące wchodzi od dołu, zimne od góry. Taka konfiguracja zapewnia <strong>najwyższą możliwą średnią różnicę temperatur</strong> na całej długości wymiennika, co przekłada się na minimalne straty egzergii i możliwość schłodzenia medium pierwotnego poniżej temperatury wylotowej medium wtórnego.</p>

            <h4>Zalety układu przeciwprądowego w liczbach</h4>
            <p>Porównanie efektywności układu współprądowego i przeciwprądowego dla identycznych parametrów wejściowych (T1_wej = 75°C, T2_wej = 30°C) doskonale obrazuje tę przewagę.</p>

            <p>W <strong>układzie współprądowym</strong> oba media płyną w tym samym kierunku. Temperatury dążą asymptotycznie do wspólnej wartości pośredniej. Przy założeniu nieskończenie dużej powierzchni wymiany, oba strumienie osiągnęłyby tę samą temperaturę końcową <strong>T_końcowa = 52,5°C</strong> (średnia arytmetyczna). Oznacza to, że <strong>niemożliwe jest schłodzenie wody kotłowej poniżej 52,5°C</strong>, a podłogówka nigdy nie osiągnie temperatury wyższej niż 52,5°C.</p>

            <p>W <strong>układzie przeciwprądowym</strong> sytuacja wygląda diametralnie inaczej. Teoretycznie, przy nieskończonej powierzchni wymiany, woda z kotła może zostać schłodzona do temperatury wejściowej podłogówki (30°C), a woda podłogowa podgrzana do temperatury wejściowej kotła (75°C). W praktyce inżynierskiej osiąga się tzw. <em>approach temperature</em> rzędu 2–5 K, co oznacza:</p>

            <div class="highlight-box">
                <code>T1_wyj (kocioł) = 30°C + 3 K = 33°C</code>
                <code>T2_wyj (podłogówka) = 75°C – 3 K = 72°C</code>
            </div>

            <p>Efektywność termodynamiczna układu przeciwprądowego jest zatem o <strong>30–50% wyższa</strong> niż współprądowego przy zachowaniu dokładnie tej samej powierzchni wymiany (wielkości wymiennika).</p>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Podsumowanie wyników: Współprąd vs Przeciwprąd</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Parametr</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Współprądowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Przeciwprądowy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0;">Temperatura Kotła (Wyjście)</td>
                        <td style="padding: 10px 0; color: #f59e0b;">52,5°C (Zbyt wysoka)</td>
                        <td style="padding: 10px 0; font-weight: bold; color: #3b82f6;">33,0°C (Idealna)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Temperatura Podłogi (Wyjście)</td>
                        <td style="padding: 10px 0; color: #f59e0b;">52,5°C (Ograniczona)</td>
                        <td style="padding: 10px 0; font-weight: bold; color: #ef4444;">72,0°C (Maksymalna)</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Aby skorzystać z interaktywnego symulatora przepływów, włącz obsługę JavaScript w swojej przeglądarce.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('flow-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA SYMULATORA PRZEPŁYWU
    const btnCounter = document.getElementById('btn-counter');
    const btnCo = document.getElementById('btn-co');

    // Warstwy gradientów
    const p1GradCo = document.getElementById('p1-grad-co');
    const p2GradCo = document.getElementById('p2-grad-co');
    
    // Etykiety i Badges
    const p1OutBadge = document.getElementById('p1-out-badge');
    const p2BadgeLeft = document.getElementById('p2-badge-left');
    const p2BadgeRight = document.getElementById('p2-badge-right');
    const p2Direction = document.getElementById('p2-direction');
    
    // Strzałki rury 2
    const p2Arr1 = document.getElementById('p2-arr-1');
    const p2Arr2 = document.getElementById('p2-arr-2');
    const p2Arr3 = document.getElementById('p2-arr-3');

    // Wyniki pod spodem
    const effVal = document.getElementById('eff-val');
    const effDesc = document.getElementById('eff-desc');
    const dtVal = document.getElementById('dt-val');
    const dtDesc = document.getElementById('dt-desc');

    function setCounterFlow() {
        btnCounter.classList.add('active');
        btnCo.classList.remove('active');

        // Przejście gradientów
        p1GradCo.style.opacity = '0';
        p2GradCo.style.opacity = '0';

        // Teksty Kocioł
        p1OutBadge.innerText = 'T1 wyj = 33°C';
        p1OutBadge.style.borderColor = 'var(--temp-33)';

        // Teksty Podłogówka (w przeciwprądzie wejście jest z prawej)
        p2Direction.innerText = 'Przepływ: ← Prawo do Lewa';
        p2Direction.style.color = 'var(--success)';
        
        p2BadgeRight.innerText = 'T2 wej = 30°C';
        p2BadgeRight.style.borderColor = 'var(--temp-30)';
        p2BadgeLeft.innerText = 'T2 wyj = 72°C';
        p2BadgeLeft.style.borderColor = 'var(--temp-72)';

        // Strzałki
        p2Arr1.innerText = '«'; p2Arr2.innerText = '«'; p2Arr3.innerText = '«';

        // Wyniki
        effVal.innerText = 'Max (Odzysk +50%)';
        effVal.style.color = 'var(--primary)';
        effDesc.innerText = 'Minimalne straty egzergii';
        effDesc.style.color = 'var(--success)';

        dtVal.innerText = 'Wysoka i stabilna';
        dtVal.style.color = 'var(--primary)';
        dtDesc.innerText = 'Siła napędowa zachowana';
        dtDesc.style.color = 'var(--accent)';
    }

    function setCoFlow() {
        btnCo.classList.add('active');
        btnCounter.classList.remove('active');

        // Przejście gradientów
        p1GradCo.style.opacity = '1';
        p2GradCo.style.opacity = '1';

        // Teksty Kocioł
        p1OutBadge.innerText = 'T1 wyj = 52.5°C';
        p1OutBadge.style.borderColor = 'var(--temp-52)';

        // Teksty Podłogówka (we współprądzie wejście jest z lewej)
        p2Direction.innerText = 'Przepływ: → Lewo do Prawa';
        p2Direction.style.color = 'var(--danger)';
        
        p2BadgeLeft.innerText = 'T2 wej = 30°C';
        p2BadgeLeft.style.borderColor = 'var(--temp-30)';
        p2BadgeRight.innerText = 'T2 wyj = 52.5°C';
        p2BadgeRight.style.borderColor = 'var(--temp-52)';

        // Strzałki
        p2Arr1.innerText = '»'; p2Arr2.innerText = '»'; p2Arr3.innerText = '»';

        // Wyniki
        effVal.innerText = 'Zaniżona / Asymptota';
        effVal.style.color = 'var(--danger)';
        effDesc.innerText = 'Zablokowany transfer energii';
        effDesc.style.color = 'var(--danger)';

        dtVal.innerText = 'Spada do Zera';
        dtVal.style.color = 'var(--danger)';
        dtDesc.innerText = 'Brak siły napędowej na końcu';
        dtDesc.style.color = 'var(--danger)';
    }

    btnCounter.addEventListener('click', setCounterFlow);
    btnCo.addEventListener('click', setCoFlow);
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --chart-hot: #ef4444;
    --chart-cold: #3b82f6;
    --chart-fill: rgba(37, 99, 235, 0.1);
}

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

.chart-header {
    padding: 35px 45px;
    text-align: left;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border-bottom: 1px solid var(--border-color);
}

.chart-header h3 {
    margin: 0 0 12px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.chart-content {
    padding: 45px;
}

.chart-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 30px;
}

/* WIZUALIZACJA WYKRESU */
.interactive-chart-wrapper {
    margin-top: 20px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    padding: 20px;
}

.chart-controls {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 25px;
}

.chart-toggle {
    padding: 10px 20px;
    border: 2px solid #cbd5e1;
    background: #ffffff;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    color: #64748b;
    cursor: pointer;
    transition: 0.2s;
}

.chart-toggle.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
}

.chart-canvas-area {
    position: relative;
    width: 100%;
    height: 350px;
}

.svg-main {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.chart-tooltip {
    position: absolute;
    background: rgba(15, 23, 42, 0.95);
    color: white;
    padding: 12px;
    border-radius: 8px;
    font-size: 12px;
    pointer-events: none;
    opacity: 0;
    z-index: 10;
    min-width: 180px;
    box-shadow: 0 10px 15px rgba(0,0,0,0.2);
}

.chart-legend {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
}

@media (max-width: 600px) {
    .chart-header { padding: 25px; }
    .chart-content { padding: 20px; }
    .chart-controls { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Profil temperaturowy wymiennika płytowego",
    "description": "Zestawienie zmian temperatur dla medium pierwotnego i wtórnego w układzie przeciwprądowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator wymiany ciepła",
    "applicationCategory": "EducationalApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-chart-box" id="chart-app-lock">
    <div class="chart-header">
        <h3><span>📈</span> Dynamika wymiany ciepła na wykresie</h3>
        <p style="margin:0; font-size:15px; color:#64748b;">Przetestuj różnicę między układem optymalnym a błędnym.</p>
    </div>

    <div class="chart-content">
        <div class="chart-text-section">
            <p>Poniższy model pokazuje, jak zmienia się temperatura wody wewnątrz wymiennika. Przełączając tryby, zobaczysz dlaczego <strong>układ przeciwprądowy</strong> jest jedynym słusznym rozwiązaniem w podłogówce.</p>
            <ul>
                <li>🔴 <strong>Kocioł:</strong> Oddaje ciepło (spadek z 75°C).</li>
                <li>🔵 <strong>Podłogówka:</strong> Odbiera ciepło (wzrost do ok. 72°C).</li>
            </ul>
        </div>

        <div class="interactive-chart-wrapper">
            <div class="chart-controls">
                <button class="chart-toggle active" id="btn-przeciw">Układ Przeciwprądowy</button>
                <button class="chart-toggle" id="btn-wspol">Układ Współprądowy</button>
            </div>

            <div class="chart-canvas-area" id="canvas-container">
                <svg class="svg-main" id="chart-svg" viewBox="0 0 800 400" preserveAspectRatio="none"></svg>
                <div id="chart-tt" class="chart-tooltip"></div>
            </div>

            <div class="chart-legend">
                <span><b style="color:var(--chart-hot)">—</b> Kocioł</span>
                <span><b style="color:var(--chart-cold)">—</b> Podłogówka</span>
                <span><span style="background:var(--chart-fill); border:1px solid #ccc; padding:0 5px;">&nbsp;</span> Lokalne ΔT</span>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var container = document.getElementById('chart-app-lock');
        if (container) container.innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold;">Treść chroniona prawem autorskim Projekt-Ogrzewania.pl</div>';
        return;
    }

    const svg = document.getElementById('chart-svg');
    const tt = document.getElementById('chart-tt');
    const btnP = document.getElementById('btn-przeciw');
    const btnW = document.getElementById('btn-wspol');
    
    let mode = 'przeciw';

    function getPoints(currentMode) {
        if(currentMode === 'przeciw') {
            return {
                hot: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((75 - (i * 4.2)) - 20) * 6.6})),
                cold: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((72 - (i * 4.2)) - 20) * 6.6}))
            };
        } else {
            return {
                hot: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((52.5 + 22.5 * Math.exp(-i/2)) - 20) * 6.6})),
                cold: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((52.5 - 22.5 * Math.exp(-i/2)) - 20) * 6.6}))
            };
        }
    }

    function draw() {
        const pts = getPoints(mode);
        const pathH = "M" + pts.hot.map(p => `${p.x},${p.y}`).join(" L");
        const pathC = "M" + pts.cold.map(p => `${p.x},${p.y}`).join(" L");
        
        // Cieniowanie obszaru ΔT
        const fillPath = pathH + " L" + pts.cold.slice().reverse().map(p => `${p.x},${p.y}`).join(" L") + " Z";

        svg.innerHTML = `
            <g stroke="#e2e8f0" stroke-width="1">
                ${[0, 100, 200, 300].map(y => `<line x1="0" y1="${y}" x2="800" y2="${y}" />`).join('')}
            </g>
            <path d="${fillPath}" fill="var(--chart-fill)" stroke="none" />
            <path d="${pathH}" fill="none" stroke="var(--chart-hot)" stroke-width="4" stroke-linecap="round" />
            <path d="${pathC}" fill="none" stroke="var(--chart-cold)" stroke-width="4" stroke-linecap="round" />
        `;
    }

    function updateTooltip(e) {
        const rect = svg.getBoundingClientRect();
        const x = (e.clientX || e.touches[0].clientX) - rect.left;
        const pct = Math.max(0, Math.min(100, (x / rect.width) * 100));
        
        // Uproszczone wyliczanie wartości dla tooltipa
        let th, tc;
        if(mode === 'przeciw') {
            th = 75 - (pct * 0.42);
            tc = 72 - (pct * 0.42);
        } else {
            th = 52.5 + 22.5 * Math.exp(-pct/20);
            tc = 52.5 - 22.5 * Math.exp(-pct/20);
        }

        tt.style.opacity = "1";
        tt.style.left = x + "px";
        tt.style.top = "20px";
        tt.innerHTML = `
            <b>Długość: ${Math.round(pct)}%</b><br>
            Kocioł: ${th.toFixed(1)}°C<br>
            Podłogówka: ${tc.toFixed(1)}°C<br>
            <hr style="border:0; border-top:1px solid #444">
            Lokalne ΔT: ${(th-tc).toFixed(1)} K
        `;
    }

    btnP.onclick = () => { mode='przeciw'; btnP.classList.add('active'); btnW.classList.remove('active'); draw(); };
    btnW.onclick = () => { mode='wspol'; btnW.classList.add('active'); btnP.classList.remove('active'); draw(); };
    
    svg.onmousemove = updateTooltip;
    svg.ontouchmove = updateTooltip;
    svg.onmouseleave = () => tt.style.opacity = "0";

    draw();
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator doboru wymiennika płytowego",
    "description": "Narzędzie inżynierskie pozwalające oszacować parametry wymiennika ciepła na podstawie zapotrzebowania cieplnego budynku, rodzaju źródła ciepła oraz reżimu pracy ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Q_obl",
        "description": "Moc obliczeniowa powiększona o 15% współczynnik zapasu."
      },
      {
        "@type": "PropertyValue",
        "name": "m1 (Przepływ pierwotny)",
        "value": "Q / (1.16 * ΔT1)",
        "unitText": "m³/h"
      },
      {
        "@type": "PropertyValue",
        "name": "m2 (Przepływ wtórny podłogówki)",
        "value": "Q / (1.16 * ΔT2)",
        "unitText": "m³/h"
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator inżynierski: Dobór wymiennika płytowego",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Algorytm krok po kroku służący do oszacowania wielkości wymiennika płytowego oraz wymaganych przepływów masowych (m1, m2) przy współpracy z różnymi źródłami ciepła.",
    "featureList": [
      "Obliczanie przepływu dla podłogówki (m2)",
      "Obliczanie przepływu dla kotła/pompy (m1)",
      "Szacowanie liczby płyt i oporów hydraulicznych"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="calc-intro">
    <h2>Algorytm doboru wymiennika ciepła</h2>
    <p>Poniższy schemat logiczny pozwala na samodzielne oszacowanie wymaganego rozmiaru wymiennika płytowego do instalacji podłogowej. Jest to uproszczony algorytm inżynierski, który daje silną podstawę do rozmowy z instalatorem i zapobiega błędom w <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color: #2563eb; font-weight: 700; text-decoration: none;">doborze pompy obiegowej</a>.</p>
</div>

<div class="screed-calc" id="heat-exchanger-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">Krok 1: Zapotrzebowanie na ciepło (Q)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Projektowe obciążenie cieplne</label><span class="val-badge"><span id="v-heat">10</span> kW</span></div>
                <input type="range" id="heat-load" min="5" max="30" step="1" value="10">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Dla nowych domów ok. 150m² w standardzie WT 2021 to zazwyczaj 6-9 kW. Kalkulator automatycznie doliczy 15% zapasu inżynierskiego.</div>
            </div>

            <span class="section-title">Krok 2 &#038; 3: Parametry układu (Temperatury)</span>
            
            <label style="font-size: 12px; font-weight: 700; color: #475569; margin-bottom: 8px; display: block;">Źródło ciepła (Strona pierwotna)</label>
            <div class="type-selector" id="src-group">
                <div class="type-btn active" id="btn-src-stal" data-dt="20">Kocioł Stałopalny<span style="font-size:10px; font-weight:400">75/55°C</span></div>
                <div class="type-btn" id="btn-src-gaz" data-dt="10">Kocioł Gazowy<span style="font-size:10px; font-weight:400">55/45°C</span></div>
                <div class="type-btn" id="btn-src-pc" data-dt="15">Pompa Ciepła<span style="font-size:10px; font-weight:400">50/35°C</span></div>
            </div>

            <label style="font-size: 12px; font-weight: 700; color: #475569; margin-bottom: 8px; display: block;">Obieg odbiorczy (Strona wtórna &#8211; podłogówka)</label>
            <div class="type-selector two-cols" id="flr-group">
                <div class="type-btn active" id="btn-flr-std" data-dt="5">Standard Podłogowy<span style="font-size:10px; font-weight:400">35/30°C (Zalecane)</span></div>
                <div class="type-btn" id="btn-flr-mix" data-dt="10">Układ Mieszany<span style="font-size:10px; font-weight:400">40/30°C (np. z drabinką)</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana wielkość urządzenia</span>
                <span class="score-num" id="resPlates">20-30</span>
                <span class="score-label">Płyt wymiany ciepła</span>
                <div id="risk-msg">⚠️ Opory po stronie podłogówki mogą być wysokie!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Obliczeniowa moc wymiennika:</span><strong id="resPower">&#8212; kW</strong></div>
                <div class="tech-item"><span>Przepływ &#8211; Kocioł (m1):</span><strong id="resFlow1">&#8212; m³/h</strong></div>
                <div class="tech-item"><span>Przepływ &#8211; Podłogówka (m2):</span><strong class="highlight" id="resFlow2">&#8212; m³/h</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Sugerowane przyłącza:</span><strong id="resConn">1&#8243; (Cal)</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Krok 4-7:</strong> Algorytm przelicza przepływy masowe przy użyciu ciepła właściwego wody (cp ≈ 1,16 Wh/kg·K). Parametr <strong style="color: #38bdf8;">m2</strong> jest kluczowy do określenia spadków ciśnienia (Δp) i doboru wydajnej pompy.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Potrzebujesz pełnej analizy instalacji?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator służy do wstępnego szacowania parametrów. Profesjonalny dobór wymaga uwzględnienia dokładnej straty ciśnienia oraz krzywej roboczej pompy obiegowej.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                📐 ZAMÓW PROJEKT INSTALACJI
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Metodyka obliczeń (Wzory Inżynierskie)</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Krok Algorytmu</th>
                        <th style="padding: 10px 0; color: #475569;">Wzór / Działanie</th>
                        <th style="padding: 10px 0; color: #475569;">Wynik dla przykładowych 10 kW</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Moc z zapasem</strong></td>
                        <td style="padding: 10px 0;">Q_obl = Q_budynek × 1.15</td>
                        <td style="padding: 10px 0;">10 * 1.15 = 11.5 kW</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Przepływ wtórny (m2)</strong></td>
                        <td style="padding: 10px 0;">m2 = Q_obl / (1.16 * ΔT2)</td>
                        <td style="padding: 10px 0;">11.5 / (1.16 * 5) ≈ 1.98 m³/h</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Przepływ pierwotny (m1)</strong></td>
                        <td style="padding: 10px 0;">m1 = Q_obl / (1.16 * ΔT1)</td>
                        <td style="padding: 10px 0;">11.5 / (1.16 * 20) ≈ 0.50 m³/h</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;"><strong>Szacunek Płyt</strong></td>
                        <td style="padding: 10px 0;">Na podst. m2 i Q_obl</td>
                        <td style="padding: 10px 0;">20-30 płyt, przyłącza 1&#8243;</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                Spadek ciśnienia po stronie wtórnej Δp2 nie powinien przekraczać 20 kPa, aby zapobiec przewymiarowaniu pompy obiegowej podłogówki.
            </p>
        </div>
    </noscript>
</div>

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

    // Stan aplikacji
    var q_nominal = 10;
    var dt_src = 20; // Domyślnie Kocioł Stałopalny
    var dt_flr = 5;  // Domyślnie Standard Podłogowy

    var heatInput = document.getElementById('heat-load');
    var vHeat = document.getElementById('v-heat');

    // Elementy wynikowe
    var resPower = document.getElementById('resPower');
    var resFlow1 = document.getElementById('resFlow1');
    var resFlow2 = document.getElementById('resFlow2');
    var resPlates = document.getElementById('resPlates');
    var resConn = document.getElementById('resConn');
    var mainBox = document.getElementById('mainBox');
    var riskMsg = document.getElementById('risk-msg');

    function calculate() {
        if(!heatInput) return;
        q_nominal = parseFloat(heatInput.value);
        vHeat.innerText = q_nominal;

        // Krok 1: Moc z zapasem
        var q_calc = q_nominal * 1.15;
        
        // Krok 4 & 5: Przepływy masowe m = Q / (cp * dT)
        // cp wody w przybliżeniu = 1.16 kWh/(t*K) -> wynik w m3/h
        var m1 = q_calc / (1.16 * dt_src);
        var m2 = q_calc / (1.16 * dt_flr);

        // Krok 6: Wstępny dobór płyt na podstawie przepływu strony wtórnej (m2 generuje największe opory)
        var platesText = "20-30";
        var connText = '1" (Cal)';
        var warningText = "";
        var boxColor = 'var(--accent)';

        if (m2 <= 1.2) {
            platesText = "20";
        } else if (m2 > 1.2 && m2 <= 2.2) {
            platesText = "30-40";
        } else if (m2 > 2.2 && m2 <= 3.2) {
            platesText = "40-50";
        } else if (m2 > 3.2 && m2 <= 4.5) {
            platesText = "60+";
            connText = '5/4" (Cale)';
            warningText = "⚠️ <strong>Wysoki przepływ!</strong> Skonsultuj dobór pompy. Przyłącza 1\" mogą stawiać zbyt duży opór (>20 kPa). Konieczny większy wymiennik z przyłączami 5/4\".";
            boxColor = 'var(--warning)';
        } else {
            platesText = "Duży dobór";
            connText = 'Min. 5/4" lub więcej';
            warningText = "❌ <strong>Przekroczone standardy domowe!</strong> Wymagany indywidualny dobór wymiennika przez biuro projektowe.";
            boxColor = 'var(--danger)';
        }

        // Aktualizacja UI
        resPower.innerText = q_calc.toFixed(1) + " kW";
        resFlow1.innerText = m1.toFixed(2) + " m³/h";
        resFlow2.innerText = m2.toFixed(2) + " m³/h";
        resPlates.innerText = platesText;
        resConn.innerText = connText;

        if (warningText !== "") {
            riskMsg.innerHTML = warningText;
            riskMsg.style.display = 'block';
        } else {
            riskMsg.style.display = 'none';
        }
        mainBox.style.borderBottomColor = boxColor;
    }

    // Event Listenery dla źródła ciepła
    var srcButtons = document.querySelectorAll('#src-group .type-btn');
    srcButtons.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            srcButtons.forEach(function(b){ b.classList.remove('active'); });
            var target = e.currentTarget;
            target.classList.add('active');
            dt_src = parseFloat(target.getAttribute('data-dt'));
            calculate();
        });
    });

    // Event Listenery dla podłogówki
    var flrButtons = document.querySelectorAll('#flr-group .type-btn');
    flrButtons.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            flrButtons.forEach(function(b){ b.classList.remove('active'); });
            var target = e.currentTarget;
            target.classList.add('active');
            dt_flr = parseFloat(target.getAttribute('data-dt'));
            calculate();
        });
    });

    // Event Listener dla suwaka
    if(heatInput) {
        heatInput.addEventListener('input', calculate);
    }

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --cta-grad: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
    --btn-bg: #ffffff;
    --btn-text: #1e3a8a;
}

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

.system-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

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

.system-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

.system-content {
    padding: 40px 45px;
}

/* KARTY PORÓWNAWCZE */
.split-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 40px;
}

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

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

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

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

/* INTERAKTYWNY PULPIT */
.dashboard-container {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 40px;
}

.dashboard-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.calc-inputs label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #475569;
    margin-bottom: 8px;
}

.calc-inputs .val-badge {
    color: var(--accent);
    font-weight: 900;
    background: #eff6ff;
    padding: 2px 8px;
    border-radius: 6px;
}

.calc-inputs input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}

.calc-inputs input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 20px; height: 20px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer;
}

.calc-outputs {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.calc-outputs span {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    letter-spacing: 0.5px;
}

.calc-outputs strong {
    font-size: 42px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.1;
    margin: 10px 0;
}

.pump-recommendation {
    display: inline-block;
    padding: 8px 15px;
    background: #f0fdf4;
    color: #166534;
    font-weight: 700;
    font-size: 14px;
    border-radius: 8px;
    border: 1px solid #bbf7d0;
    margin-top: 10px;
}

/* AUTOMATYKA */
.automation-box {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed #cbd5e1;
}

.valve-status {
    padding: 15px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    text-align: center;
    transition: 0.3s;
    border: 1px solid transparent;
}

/* PREMIUM CTA */
.premium-cta-box {
    background: var(--cta-grad);
    padding: 50px 45px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.premium-cta-box::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%);
    pointer-events: none;
}

.premium-cta-box h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.premium-cta-box p {
    margin: 0 0 30px 0;
    font-size: 16px;
    color: #bfdbfe;
    line-height: 1.6;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.cta-btn-premium {
    display: inline-block;
    padding: 18px 40px;
    background: var(--btn-bg);
    color: var(--btn-text);
    font-size: 16px;
    font-weight: 900;
    text-decoration: none;
    border-radius: 14px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    position: relative;
    z-index: 2;
}

.cta-btn-premium:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25);
    background: #f8fafc;
}

@media (max-width: 768px) {
    .system-header { padding: 30px 25px; }
    .system-content { padding: 30px 25px; }
    .split-cards { grid-template-columns: 1fr; }
    .calc-grid { grid-template-columns: 1fr; }
    .premium-cta-box { padding: 40px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ wymiennika płytowego na parametry układu",
    "description": "Obliczenia hydrauliczne spadku ciśnienia i logiki automatyki zaworu mieszającego w instalacji ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Sprzęgło hydrauliczne",
        "description": "Zapewnia separację hydrauliczną bez zmiany parametrów fizycznych wody. Nie chroni przed przegrzaniem."
      },
      {
        "@type": "PropertyValue",
        "name": "Wymiennik płytowy",
        "description": "Pełna separacja fizyczna. Pozwala zasilać podłogówkę wodą 35°C z kotła pracującego na 80°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór wymiennika (Δp_wym)",
        "value": "12 kPa",
        "description": "Zjawisko wymagające doliczenia do całkowitego sprężu pompy obiegowej."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Sprężu Pompy i Symulator Automatyki",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny panel inżynierski pozwalający na obliczenie wymaganej wysokości podnoszenia pompy obiegowej z uwzględnieniem oporów wymiennika oraz symulację logiki pracy zaworu trójdrogowego.",
    "featureList": [
      "Dynamiczne sumowanie oporów hydraulicznych (pętle + wymiennik + armatura)",
      "Przeliczanie oporów z kPa na wysokość podnoszenia (m H2O)",
      "Symulacja reakcji siłownika zaworu na zmiany temperatury zasilania"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-system-module" id="system-app-lock">
    
    <div class="system-header">
        <h2>Rola wymiennika płytowego w projekcie ogrzewania podłogowego – aspekty systemowe.</h2>
        <p>Wymiennika płytowego nie można rozpatrywać jako izolowanego komponentu. Jego obecność wymusza szereg inżynierskich decyzji dotyczących hydrauliki, automatyki i zabezpieczeń całej instalacji.</p>
    </div>

    <div class="system-content">
        
        <div class="split-cards">
            <div class="info-card">
                <h4>🔀 Sprzęgło Hydrauliczne</h4>
                <p>Oddziela obieg kotła od obiegów grzewczych przy zachowaniu <strong>wspólnego medium</strong>. Problem pojawia się, gdy kocioł wymaga wysokiej temperatury powrotu (np. 60°C dla stałopalnego), a podłogówka pracuje na niskich parametrach. Sprzęgło nie zapobiega mieszaniu, a jedynie stabilizuje przepływy.</p>
            </div>
            <div class="info-card" style="border-top: 4px solid var(--accent);">
                <h4>🧱 Wymiennik Płytowy</h4>
                <p>Zapewnia <strong>pełną separację fizyczną</strong> mediów. Umożliwia stabilną pracę kotła na parametrach rzędu 80/60°C, jednocześnie oddając do podłogówki wodę o bezpiecznej temperaturze 35/30°C. To rozwiązanie bezwzględnie niezbędne przy modernizacji starszych instalacji.</p>
            </div>
        </div>

        <div class="dashboard-container">
            <div class="dashboard-title">🧮 Wpływ na dobór pompy obiegowej (Kalkulator)</div>
            <p style="font-size: 14px; color: #475569; margin-bottom: 25px;">Opór hydrauliczny wymiennika musi zostać uwzględniony w obliczeniach wysokości podnoszenia pompy podłogowej. Pominięcie tego elementu skutkuje niedogrzaniem najdalszych pętli.</p>

            <div class="calc-grid">
                <div class="calc-inputs">
                    <label>Opór pętli grzewczych (Δp pętle) <span class="val-badge" id="v-loops">25 kPa</span></label>
                    <input type="range" id="sl-loops" min="10" max="40" step="1" value="25">

                    <label>Opór wymiennika (Δp wym) <span class="val-badge" id="v-exch">12 kPa</span></label>
                    <input type="range" id="sl-exch" min="5" max="25" step="1" value="12">

                    <label>Opór armatury i rur (Δp armatura) <span class="val-badge" id="v-arm">8 kPa</span></label>
                    <input type="range" id="sl-arm" min="2" max="15" step="1" value="8">
                </div>

                <div class="calc-outputs">
                    <span>Całkowity Wymagany Spręż</span>
                    <strong id="v-total">45 kPa</strong>
                    <span style="color: var(--accent); font-weight: 900; font-size: 18px;" id="v-meter">~4.5 m H₂O</span>
                    <div class="pump-recommendation" id="v-pump">Sugerowana pompa: 25-60</div>
                </div>
            </div>

            <div class="automation-box">
                <div class="dashboard-title">⚙️ Automatyka (Logika Zaworu Trójdrogowego)</div>
                <p style="font-size: 14px; color: #475569; margin-bottom: 15px;">Układ chroni podłogówkę przed przegrzaniem. Zmiana temperatury za wymiennikiem wymusza natychmiastową reakcję siłownika zaworu. (Temperatura zadana: 35°C).</p>
                
                <div style="margin-bottom: 15px;">
                    <label style="display:flex; justify-content:space-between; font-size: 13px; font-weight: 700; color: #475569; margin-bottom: 8px;">
                        Bieżąca temp. zasilania (T2_zas) <span class="val-badge" id="v-temp" style="background:#fef2f2; color:var(--danger)">25°C</span>
                    </label>
                    <input type="range" id="sl-temp" min="20" max="50" step="1" value="25">
                </div>

                <div class="valve-status" id="v-status">
                    Oczekiwanie na dane&#8230;
                </div>
            </div>
        </div>
    </div>

    <div class="premium-cta-box">
        <h3>Zbyt wiele zmiennych do opanowania?</h3>
        <p>Błędy hydrauliczne (zły dobór pompy, brak uwzględnienia oporów wymiennika) mszczą się latami zimnymi podłogami. Zabezpiecz swoją inwestycję profesjonalnym projektem, zanim wylejesz beton.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn-premium">
            📐 Zamów Indywidualny Projekt Instalacji
        </a>
    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Obliczenia inżynierskie w pigułce</h3>
            <p><strong>Wzór na całkowity spręż:</strong> Δp_całk = Δp_pętle + Δp_wym + Δp_armatura</p>
            <p>Przykład: 25 kPa + 12 kPa + 8 kPa = 45 kPa (odpowiada wysokości podnoszenia ok. 4,5 metra słupa wody).</p>
            <p><strong>Logika sterowania:</strong> Jeśli T2_zas < 35°C (Zawór otwiera się). Jeśli T2_zas > 35°C (Zawór przymyka się odcinając gorące źródło).</p>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Włącz JavaScript, aby uzyskać dostęp do interaktywnego kalkulatora i symulacji automatyki w czasie rzeczywistym.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('system-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA KALKULATORA POMPY
    const slLoops = document.getElementById('sl-loops');
    const slExch = document.getElementById('sl-exch');
    const slArm = document.getElementById('sl-arm');
    
    const vLoops = document.getElementById('v-loops');
    const vExch = document.getElementById('v-exch');
    const vArm = document.getElementById('v-arm');
    
    const vTotal = document.getElementById('v-total');
    const vMeter = document.getElementById('v-meter');
    const vPump = document.getElementById('v-pump');

    function updatePump() {
        let loops = parseInt(slLoops.value);
        let exch = parseInt(slExch.value);
        let arm = parseInt(slArm.value);
        
        let total = loops + exch + arm;
        let meters = (total / 9.81).toFixed(1);

        vLoops.innerText = loops + ' kPa';
        vExch.innerText = exch + ' kPa';
        vArm.innerText = arm + ' kPa';
        
        vTotal.innerText = total + ' kPa';
        vMeter.innerText = '~' + meters + ' m H₂O';

        if(total <= 35) {
            vPump.innerText = 'Wystarczy standardowa pompa (np. 25-40)';
            vPump.style.color = '#166534';
            vPump.style.background = '#f0fdf4';
            vPump.style.borderColor = '#bbf7d0';
        } else if(total <= 55) {
            vPump.innerText = 'Sugerowana mocniejsza pompa (np. 25-60)';
            vPump.style.color = '#b45309';
            vPump.style.background = '#fffbeb';
            vPump.style.borderColor = '#fde68a';
        } else {
            vPump.innerText = 'Wymagana pompa wysokiego podnoszenia (np. 25-80)';
            vPump.style.color = '#b91c1c';
            vPump.style.background = '#fef2f2';
            vPump.style.borderColor = '#fecaca';
        }
    }

    if(slLoops) slLoops.addEventListener('input', updatePump);
    if(slExch) slExch.addEventListener('input', updatePump);
    if(slArm) slArm.addEventListener('input', updatePump);

    // LOGIKA ZAWORU
    const slTemp = document.getElementById('sl-temp');
    const vTemp = document.getElementById('v-temp');
    const vStatus = document.getElementById('v-status');
    const targetTemp = 35;

    function updateValve() {
        let t = parseInt(slTemp.value);
        vTemp.innerText = t + '°C';

        if(t < targetTemp) {
            vStatus.innerHTML = '🔄 Siłownik: <strong>OTWIERA ZAWÓR</strong> (Zwiększenie dopływu ciepła z kotła)';
            vStatus.style.background = '#eff6ff';
            vStatus.style.color = '#1e3a8a';
            vStatus.style.borderColor = '#bfdbfe';
        } else if (t > targetTemp) {
            vStatus.innerHTML = '🛑 Siłownik: <strong>PRZYMYKA ZAWÓR</strong> (Ograniczenie ciepła - ochrona posadzki)';
            vStatus.style.background = '#fef2f2';
            vStatus.style.color = '#b91c1c';
            vStatus.style.borderColor = '#fecaca';
        } else {
            vStatus.innerHTML = '✅ Siłownik: <strong>STABILNY</strong> (Parametry idealne)';
            vStatus.style.background = '#f0fdf4';
            vStatus.style.color = '#166534';
            vStatus.style.borderColor = '#bbf7d0';
        }
    }

    if(slTemp) slTemp.addEventListener('input', updateValve);

    // Init
    updatePump();
    updateValve();
});
</script>



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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --risk-bg: #fef2f2;
}

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

.decision-header {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

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

.decision-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

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

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

.decision-content {
    padding: 0;
}

/* SEKACJA TEKSTOWA */
.text-arguments {
    padding: 40px 45px;
}

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

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

.arg-card:hover {
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
    transform: translateY(-3px);
}

.arg-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.arg-card a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.arg-card a:hover { text-decoration: underline; }

/* WIDŻET INTERAKTYWNY */
.interactive-decision-tool {
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    padding: 40px 45px;
}

.tool-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    text-align: center;
}

.source-selectors {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
    flex-wrap: wrap;
}

.source-btn {
    padding: 14px 24px;
    background: #ffffff;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 180px;
}

.source-btn span { font-size: 11px; font-weight: 600; text-transform: uppercase; color: #94a3b8; }

.source-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.15);
}
.source-btn.active span { color: var(--accent); }

.decision-result {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--border-color);
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.verdict-box {
    text-align: center;
    padding-right: 30px;
    border-right: 1px dashed #cbd5e1;
}

.verdict-box span {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    display: block;
    margin-bottom: 10px;
}

.verdict-status {
    font-size: 28px;
    font-weight: 900;
    display: block;
    margin-bottom: 10px;
    line-height: 1.1;
}

.risk-analysis {
    padding-left: 10px;
}

.risk-bar-group {
    margin-bottom: 15px;
}

.risk-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
    color: #475569;
}

.risk-track {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
}

.risk-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 0.5s ease-out, background 0.5s ease;
}

@media (max-width: 768px) {
    .decision-header { padding: 30px 25px; }
    .text-arguments { padding: 30px 25px; }
    .interactive-decision-tool { padding: 30px 25px; }
    .arg-grid { grid-template-columns: 1fr; }
    .source-selectors { flex-direction: column; }
    .decision-result { grid-template-columns: 1fr; gap: 20px; }
    .verdict-box { padding-right: 0; border-right: none; border-bottom: 1px dashed #cbd5e1; padding-bottom: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza opłacalności i ryzyka instalacji wymiennika płytowego",
    "description": "Zestawienie kosztów prewencyjnych (wymiennik) z potencjalnymi stratami (wymiana posadzki) w zależności od źródła ciepła pracującego z ogrzewaniem podłogowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Koszt ubezpieczenia (Wymiennik płytowy)",
        "value": "300 - 800 PLN",
        "description": "Stanowi mniej niż 1% wartości całej instalacji grzewczej."
      },
      {
        "@type": "PropertyValue",
        "name": "Potencjalne straty (Brak zabezpieczenia)",
        "value": "15 000 - 30 000 PLN",
        "description": "Koszty generalnego remontu w przypadku wpuszczenia wody >55°C z kotła stałopalnego wprost w posadzkę."
      },
      {
        "@type": "PropertyValue",
        "name": "Zysk energetyczny",
        "value": "5 - 10%",
        "description": "Redukcja strat energii dzięki eliminacji przegrzewania pomieszczeń przez zastosowanie układu mieszającego z wymiennikiem."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Decyzjomat Wymiennika Płytowego",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające użytkownikowi określić konieczność zastosowania wymiennika płytowego na podstawie wybranego źródła ciepła (kocioł węglowy, stary gazowy, pompa ciepła) oraz wizualizujące stosunek kosztów ubezpieczenia do ryzyka zniszczenia posadzki.",
    "featureList": [
      "Wybór źródła ciepła i weryfikacja wymogów technicznych",
      "Dynamiczna weryfikacja konieczności instalacji wymiennika (TAK/NIE)",
      "Wizualny wykres porównujący koszt prewencji z kosztem generalnego remontu"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-decision-module" id="decision-app-lock">
    
    <div class="decision-header">
        <h2>Dlaczego wymiennik płytowy jest rozwiązaniem optymalnym?</h2>
        <p>Główne pytanie inwestorów brzmi: <em>&#8222;Czy do ogrzewania podłogowego faktycznie potrzebuję wymiennika?&#8221;</em></p>
        <p style="margin-top: 10px;">Krótka odpowiedź: <strong>TAK</strong>, jest on niezbędny, jeśli Twoje źródło ciepła (np. kocioł stałopalny, stary kocioł gazowy) pracuje na temperaturze zasilania przekraczającej 55°C. Wymiennik obniża temperaturę wody do bezpiecznego poziomu 35–45°C, chroniąc system przed zniszczeniem. Sytuacja wygląda inaczej tylko przy <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">nowoczesnych pompach ciepła</a> pracujących na bardzo niskich parametrach.</p>
    </div>

    <div class="decision-content">
        
        <div class="interactive-decision-tool">
            <div class="tool-title">🎯 Interaktywny Doradca: Czy potrzebujesz wymiennika?</div>
            
            <div class="source-selectors">
                <button class="source-btn active" data-source="stalopalny">
                    <span>Temp. > 70°C</span>
                    Kocioł Węglowy / Drewno
                </button>
                <button class="source-btn" data-source="gaz">
                    <span>Temp. 55-65°C</span>
                    Stary Kocioł Gazowy
                </button>
                <button class="source-btn" data-source="pompa">
                    <span>Temp. < 45°C</span>
                    Pompa Ciepła / Kondensat
                </button>
            </div>

            <div class="decision-result">
                <div class="verdict-box">
                    <span>Status Wymiennika Płytowego</span>
                    <strong class="verdict-status" id="res-status" style="color: var(--danger);">NIEZBĘDNY</strong>
                    <div id="res-desc" style="font-size: 13px; color: #475569; line-height: 1.5;">Kocioł może zagotować wodę. Bez separacji hydraulicznej i temperaturowej zniszczysz posadzkę.</div>
                </div>
                
                <div class="risk-analysis">
                    <div style="font-size: 14px; font-weight: 800; margin-bottom: 15px; color: var(--primary);">Bilans Finansowy (ROI)</div>
                    
                    <div class="risk-bar-group">
                        <div class="risk-label">
                            Koszt Wymiennika (Ochrona) <span style="color: var(--success);">~ 500 zł</span>
                        </div>
                        <div class="risk-track">
                            <div class="risk-fill" id="bar-protect" style="width: 5%; background: var(--success);"></div>
                        </div>
                    </div>

                    <div class="risk-bar-group">
                        <div class="risk-label">
                            Ryzyko uszkodzenia (Wylewka) <span id="risk-val" style="color: var(--danger);">~ 25 000 zł</span>
                        </div>
                        <div class="risk-track">
                            <div class="risk-fill" id="bar-risk" style="width: 100%; background: var(--danger);"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="text-arguments">
            <h3 style="margin: 0 0 20px 0; font-size: 20px; font-weight: 800; color: var(--primary);">Naukowe i finansowe argumenty za instalacją</h3>
            
            <div class="arg-grid">
                <div class="arg-card">
                    <h4>📐 Zgodność z PN-EN 1264-3</h4>
                    <p>Norma bezwzględnie wymaga, aby temperatura zasilania nie przekraczała odporności materiałowej jastrychu. Wymiennik sprzęgnięty z 
                    <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">profesjonalnym rozdzielaczem</a> to inżynierska gwarancja tej zgodności.</p>
                </div>

                <div class="arg-card">
                    <h4>🛡️ Ochrona Inwestycji</h4>
                    <p>Instalacja jest praktycznie niewymienialna. Koszt wymiennika (300-800 zł) to <strong>mniej niż 1%</strong> wartości systemu, a zabezpiecza przed remontem wartym nawet 30 000 zł.</p>
                </div>

                <div class="arg-card">
                    <h4>⚡ Efektywność (Oszczędności)</h4>
                    <p>Kocioł pracuje stabilnie z wysoką sprawnością, a podłogówka otrzymuje idealnie dawkowe ciepło. Dodając <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">nowoczesne sterowanie</a>, eliminujesz przegrzewanie i oszczędzasz 5-10% energii.</p>
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Podsumowanie analizy techniczno-ekonomicznej</h3>
            <p><strong>Dla kotłów stałopalnych i wysokotemperaturowych (>55°C):</strong> Wymiennik płytowy jest absolutnie niezbędny do zabezpieczenia rur przed starzeniem, a wylewki przed pękaniem. Ryzykujesz zniszczenie posadzki wartej 25 000 zł, oszczędzając na elemencie za 500 zł.</p>
            <p><strong>Dla pomp ciepła (<45°C):</strong> Wymiennik płytowy może być pominięty, jeśli układ jest zamknięty, co pozwala na dodatkowe oszczędności.</p>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Włącz obsługę skryptów JavaScript, aby uzyskać dostęp do interaktywnego Decyzjomatu i kalkulatora ryzyka finansowego.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('decision-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA DECZYJOMATU
    const buttons = document.querySelectorAll('.source-btn');
    const statusEl = document.getElementById('res-status');
    const descEl = document.getElementById('res-desc');
    const barRisk = document.getElementById('bar-risk');
    const valRisk = document.getElementById('risk-val');

    const data = {
        'stalopalny': {
            status: 'NIEZBĘDNY', color: 'var(--danger)',
            desc: 'Kocioł może zagotować wodę. Bez separacji hydraulicznej i temperaturowej zniszczysz posadzkę i rury.',
            riskW: '100%', riskV: '~ 25 000 zł'
        },
        'gaz': {
            status: 'WYsoce ZALECANY', color: 'var(--warning)',
            desc: 'Stare kotły gazowe rzadko schodzą poniżej 50°C. Wymiennik stabilizuje parametry i chroni przed brudem z rur.',
            riskW: '50%', riskV: '~ 12 000 zł (Spadek żywotności)'
        },
        'pompa': {
            status: 'ZBĘDNY (Opcjonalny)', color: 'var(--success)',
            desc: 'Nowoczesna pompa ciepła podaje gotowe 35°C wprost na rozdzielacz. Brak wymiennika poprawia jej sprawność (COP).',
            riskW: '0%', riskV: '0 zł (Bezpiecznie)'
        }
    };

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

            // Update UI
            const key = this.getAttribute('data-source');
            const d = data[key];

            statusEl.innerText = d.status;
            statusEl.style.color = d.color;
            descEl.innerText = d.desc;
            
            barRisk.style.width = d.riskW;
            if(key === 'pompa') {
                barRisk.style.background = 'var(--success)';
                valRisk.style.color = 'var(--success)';
            } else {
                barRisk.style.background = 'var(--danger)';
                valRisk.style.color = 'var(--danger)';
            }
            valRisk.innerText = d.riskV;
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
    --success: #10b981;
}

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

.faq-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

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

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

.faq-content {
    padding: 20px 45px 40px 45px;
}

.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.faq-item:last-child {
    border-bottom: none;
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 25px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: color 0.2s ease;
    font-family: inherit;
}

.faq-question-text {
    display: flex;
    align-items: center;
    gap: 12px;
}

.faq-question-text span.emoji {
    font-size: 22px;
    opacity: 0.8;
}

.faq-question:hover {
    color: var(--accent);
}

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

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

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

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

.faq-answer-inner {
    padding-bottom: 25px;
    padding-left: 34px; /* Wcięcie żeby pasowało do tekstu pod emoji */
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

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

.faq-answer-inner a:hover {
    color: var(--accent-hover);
}

.faq-answer-inner strong {
    color: var(--primary);
    font-weight: 700;
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 25px; }
    .faq-content { padding: 10px 25px 30px 25px; }
    .faq-question { font-size: 15px; padding: 20px 0; }
    .faq-question-text span.emoji { font-size: 18px; }
    .faq-answer-inner { padding-left: 0; }
    .faq-icon { width: 28px; height: 28px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy można zastąpić zaworem mieszającym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zawór trój- lub czterodrogowy z siłownikiem może zastąpić wymiennik płytowy tylko wtedy, gdy oba obiegi są tego samego typu i nie ma ryzyka zanieczyszczenia. Zawór mieszający nie zapewnia jednak separacji hydraulicznej. W przypadku kotłów stałopalnych z otwartym naczyniem zastosowanie wymiennika jest obowiązkowe."
        }
      },
      {
        "@type": "Question",
        "name": "Jak dobrać moc wymiennika płytowego do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Moc wymiennika powinna być równa lub nieznacznie wyższa od zapotrzebowania na ciepło. Należy zwracać uwagę na parametry katalogowe, gdyż przy niskich temperaturach zasilania wymiennik np. 30 kW może oddać jedynie 18–22 kW."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki spadek temperatury na wymienniku jest prawidłowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Po stronie wtórnej (podłogówka) typowy spadek to ΔT = 5–10 K (np. 35/30°C). Po stronie pierwotnej (kocioł) spadek powinien wynosić ok. ΔT = 20 K (np. 75/55°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy wymaga konserwacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wymienniki lutowane są praktycznie bezobsługowe. Zaleca się montaż separatora zanieczyszczeń na powrocie, a w przypadku spadku wydajności - płukanie chemiczne."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy może współpracować z pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ale jest niezbędny głównie w układach hybrydowych z kotłem gazowym lub podczas modernizacji starej instalacji grzejnikowej. W typowych, nowych układach z pompą ciepła jest on zbędny."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy Q&A: Wymienniki Płytowe",
    "description": "Zbiór technicznych odpowiedzi dotyczących doboru, eksploatacji i różnic systemowych wymienników ciepła w układach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Panel FAQ",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Dynamiczny komponent interfejsu (akordeon) pozwalający na szybkie odnalezienie odpowiedzi na najczęściej zadawane pytania inżynierskie.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-faq-module" id="faq-app-lock">
    <div class="faq-header">
        <h2>Sekcja FAQ – Najczęściej zadawane pytania</h2>
        <p>Błyskawiczne odpowiedzi na dylematy projektowe i montażowe.</p>
    </div>

    <div class="faq-content">
        
        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">🔀</span> Czy wymiennik płytowy można zastąpić zaworem mieszającym?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <a href="https://projekt-ogrzewania.pl/produkt/uklad-mieszajacy-kisan-z-pompa-elektroniczna-wilo/">Układ mieszający</a> z zaworem trój- lub czterodrogowym z siłownikiem może zastąpić wymiennik płytowy w funkcji obniżania temperatury zasilania podłogówki <strong>tylko wtedy, gdy oba obiegi (kocioł i podłogówka) są tego samego typu</strong> (np. oba zamknięte) i nie ma ryzyka zanieczyszczenia podłogówki szlamem z instalacji kotłowej. Zawór mieszający <strong>nie zapewnia separacji hydraulicznej</strong>, więc nie chroni przed skokami ciśnienia ani przedostaniem się tlenu do instalacji z otwartego naczynia wzbiorczego. W przypadku kotłów stałopalnych z otwartym naczyniem, zastosowanie wymiennika jest <strong>obowiązkowe</strong> dla zachowania gwarancji na rury podłogowe.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">⚙️</span> Jak dobrać moc wymiennika płytowego do podłogówki?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Moc wymiennika (w kW) powinna być <strong>równa lub nieznacznie wyższa</strong> od projektowanego zapotrzebowania na ciepło ogrzewanej powierzchni. Należy jednak zwrócić uwagę na <strong>temperatury katalogowe</strong>, przy których moc ta jest deklarowana. Wymiennik o mocy 30 kW przy parametrach 80/60°C po stronie pierwotnej i 40/30°C po stronie wtórnej, przy zasilaniu podłogówki 35/30°C może oddać jedynie <strong>18–22 kW</strong>. Zawsze należy posługiwać się programem doborowym producenta lub tabelami korekcyjnymi, planując wielkość <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafki instalacyjnej</a>, aby go pomieścić.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">📉</span> Jaki spadek temperatury na wymienniku jest prawidłowy?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Prawidłowy spadek temperatury zależy od strony wymiennika. Po stronie <strong>wtórnej (podłogówka)</strong> typowy spadek to <strong>ΔT = 5–10 K</strong> (np. 35/30°C). Po stronie <strong>pierwotnej (kocioł)</strong> spadek powinien być wyższy, zazwyczaj <strong>ΔT = 20 K</strong> (np. 75/55°C). Zbyt mały spadek po stronie pierwotnej (np. 75/70°C) świadczy o zbyt dużym przepływie i niedostatecznym wychłodzeniu medium, co obniża sprawność kotła. Odczyt ten zależy również od prawidłowej regulacji na <a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-mosiezny-do-ogrzewania-podlogowego-z-rotametrami/">rozdzielaczach z rotametrami</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">🛠️</span> Czy wymiennik płytowy wymaga konserwacji?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Wymienniki <strong>lutowane</strong> (nierozbieralne) są praktycznie <strong>bezobsługowe</strong>. Jedyną zalecaną czynnością jest okresowe płukanie chemiczne w przypadku znacznego spadku wydajności spowodowanego osadzaniem się kamienia kotłowego. Wymienniki <strong>skręcane</strong> (rozbieralne) umożliwiają mechaniczne czyszczenie płyt, co jest zalecane co 3–5 lat w instalacjach z twardą wodą.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">📏</span> Jakie przyłącza są standardem w wymiennikach do domów?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Dla instalacji o mocy do 30 kW standardem są przyłącza gwintowane o średnicy <strong>1&#8243;</strong> (cal) lub <strong>5/4&#8243;</strong>. Dla mniejszych instalacji (do 15 kW) spotyka się przyłącza <strong>3/4&#8243;</strong>. Należy bezwzględnie unikać przewężania średnic na podejściu do wymiennika, gdyż zwiększa to prędkość przepływu i hałas w instalacji, niezależnie od tego, jakiej <a href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">spinki montażowej</a> czy metody mocowania rur w podłodze użyto na pętlach.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">⚡</span> Czy wymiennik może współpracować z pompą ciepła?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Tak, ale w specyficznych przypadkach. W standardowej instalacji z pompą ciepła niskotemperaturową (zasilanie 35°C) wymiennik jest <strong>zbędny</strong> i stanowi niepotrzebne źródło strat egzergii (spadek temperatury o 2–5 K). Wymiennik jest natomiast <strong>niezbędny</strong>, gdy pompa ciepła pracuje w układzie hybrydowym z kotłem gazowym lub gdy dobudowujemy podłogówkę do istniejącej sieci wysokotemperaturowej.
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 45px 30px 45px; background: #fffbeb; color: #b45309; border-top: 1px solid #fde68a;">
            <p style="margin:0; font-size: 14px;"><strong>Uwaga:</strong> Twój system blokuje skrypty. Pełna lista pytań i odpowiedzi (akordeon) może nie działać prawidłowo bez włączonego języka JavaScript.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł FAQ jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA AKORDEONU
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        const answer = item.querySelector('.faq-answer');

        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykamy wszystkie inne (opcjonalne, odkomentuj jeśli chcesz żeby otwierał się tylko 1 na raz)
            /*
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });
            */

            // Otwieramy/Zamykamy kliknięty
            if (isActive) {
                item.classList.remove('active');
                answer.style.maxHeight = null;
            } else {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(59,130,246,0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

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

.summary-text a:hover {
    color: #60a5fa;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

.risk-desc a {
    color: var(--sum-accent);
    text-decoration: none;
    font-weight: 600;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(59, 130, 246, 0.6);
    background: #2563eb;
}

.sum-btn-secondary {
    background: transparent;
    color: #ffffff !important;
    border: 2px solid #475569;
}

.sum-btn-secondary:hover {
    border-color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Dlaczego warto rozumieć zasadę działania wymiennika płytowego?",
    "abstract": "Zrozumienie zasady działania wymiennika płytowego w ogrzewaniu podłogowym to fundament świadomego projektowania. Prawidłowy dobór urządzenia gwarantuje ochronę instalacji i maksymalną efektywność energetyczną budynku.",
    "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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza wartości wymiennika płytowego w instalacji",
    "description": "Zestawienie porównawcze kosztu zakupu wymiennika płytowego do wartości całej instalacji ogrzewania podłogowego, którą zabezpiecza.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Koszt ubezpieczenia (Wymiennik)",
        "value": "300 - 800 PLN",
        "description": "Jednorazowy koszt urządzenia zapewniającego separację hydrauliczną i redukcję temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Wartość chroniona (Instalacja)",
        "value": "15 000 - 30 000 PLN",
        "description": "Szacunkowa wartość rur, wylewki i robocizny, która jest chroniona przed zniszczeniem termicznym."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏁</span>
            <h2>Podsumowanie: Strażnik Twojej Instalacji</h2>
        </div>

        <p class="summary-text">
            Zrozumienie <strong>zasady działania wymiennika płytowego w ogrzewaniu podłogowym</strong> wykracza poza czystą ciekawość techniczną. Jest to fundament świadomego projektowania i eksploatacji nowoczesnych, energooszczędnych systemów grzewczych. Wiedza o przepływie przeciwprądowym, średniej logarytmicznej różnicy temperatur i krytycznych parametrach doboru pozwala uniknąć kosztownych błędów wykonawczych, które w przypadku instalacji zatopionej w posadzce są praktycznie nieodwracalne.
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card good-choice">
                <span class="risk-label">Koszt polisy</span>
                <span class="risk-value">300–800 zł</span>
                <p class="risk-desc">Inwestycja w prawidłowo dobrany wymiennik to ułamek budżetu. To tania polisa chroniąca przed awarią serca układu hydraulicznego.</p>
            </div>
            <div class="risk-card bad-choice" style="border-bottom-color: #3b82f6;"> <span class="risk-label">Chroniony majątek</span>
                <span class="risk-value">Wysoki</span>
                <p class="risk-desc">Wymiennik zabezpiecza układ opisany w <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksowej wycenie instalacji</a>, warty nierzadko dziesiątki tysięcy złotych.</p>
            </div>
        </div>

        <p class="summary-text">
            W kontekście rosnących wymagań normy PN-EN 1264 oraz dążenia do maksymalnej efektywności energetycznej budynków, rola wymiennika jako <strong>strażnika temperatury i czystości hydraulicznej</strong> będzie wyłącznie rosła, nierzadko przewyższając funkcjonalnością tradycyjne <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a>.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-primary">
                📖 CZYTAJ NASZ BLOG
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ekonomiczna zastosowania wymiennika płytowego</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Element analizy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Wartość szacunkowa</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Znaczenie w systemie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Zakup wymiennika</td>
                        <td style="padding: 10px 0; color: #10b981;">300 &#8211; 800 PLN</td>
                        <td style="padding: 10px 0;">Niski koszt początkowy stanowiący polisę ochronną.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zabezpieczona instalacja</td>
                        <td style="padding: 10px 0; color: #3b82f6;">Dziesiątki tysięcy PLN</td>
                        <td style="padding: 10px 0;">Ochrona rur PEX/PERT oraz wylewki przed zniszczeniem termicznym.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Wiedza o przepływie przeciwprądowym i parametrach wymiennika zapobiega błędom wykonawczym, wspierając bezpieczną eksploatację zgodnie z normą PN-EN 1264.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
