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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa separacja hydrauliczna - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/separacja-hydrauliczna/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>
