<?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 normy en 1264 - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/normy-en-1264/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/normy-en-1264/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 14 Jul 2026 10:46:56 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa normy en 1264 - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/normy-en-1264/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</title>
		<link>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/</link>
					<comments>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 14 Sep 2025 08:54:31 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo systemów grzewczych]]></category>
		<category><![CDATA[Chemia instalacyjna]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Eksploatacja instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[inhibitor korozji]]></category>
		<category><![CDATA[jak chronić instalację grzewczą]]></category>
		<category><![CDATA[jaka woda do podłogówki]]></category>
		<category><![CDATA[kamień kotłowy w instalacji]]></category>
		<category><![CDATA[napełnianie instalacji grzewczej]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[pH w instalacji grzewczej]]></category>
		<category><![CDATA[przewodność wody w podłogówce]]></category>
		<category><![CDATA[woda demineralizowana w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[woda destylowana a demineralizowana]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2759</guid>

					<description><![CDATA[<p>Woda demineralizowana w ogrzewaniu podłogowym to standard, który coraz częściej zastępuje zwykłą wodę z kranu. Brak osadów kamienia, ochrona przed korozją i zgodność z normami europejskimi sprawiają, że instalacja działa dłużej i bardziej efektywnie. W artykule pokazujemy zarówno proste wyjaśnienia dla inwestora, jak i eksperckie dane techniczne, parametry wody oraz procedury serwisowe. To pełne kompendium dla każdego, kto planuje lub eksploatuje podłogówkę.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #0284c7;
    --rk-hero-sky: #f0f9ff;
    --rk-hero-danger: #dc2626;
    --rk-hero-danger-bg: #fef2f2;
    --rk-hero-success: #059669;
    --rk-hero-success-bg: #ecfdf5;
    --rk-hero-border: #cbd5e1;
    --rk-hero-text: #334155;
    --rk-hero-bg: #ffffff;
}

.rk-hero-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-hero-bg);
    border: 3px solid var(--rk-hero-blue);
    border-radius: 0; /* Surowy, inżynierski wygląd */
    box-shadow: 6px 6px 0px var(--rk-hero-dark); /* Twardy cień bez rozmycia */
}

/* Mocne Otwarcie - Hook */
.rk-hero-hook {
    background: var(--rk-hero-danger);
    color: #ffffff;
    padding: 20px 30px;
    display: flex;
    align-items: center;
    gap: 15px;
    font-weight: 900;
    font-size: 18px;
    letter-spacing: 0.5px;
}

.rk-hero-hook-icon {
    background: #ffffff;
    color: var(--rk-hero-danger);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-hero-header {
    padding: 35px 40px 25px 40px;
    background: var(--rk-hero-bg);
}

.rk-hero-h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-hero-dark);
    margin: 0;
    line-height: 1.2;
}

.rk-hero-h2 span {
    color: var(--rk-hero-blue);
}

/* Zakładki Interaktywne (Natychmiastowe, bez animacji) */
.rk-hero-tabs-nav {
    display: flex;
    border-top: 2px solid var(--rk-hero-border);
    border-bottom: 2px solid var(--rk-hero-border);
    background: #f8fafc;
}

.rk-hero-tab-btn {
    flex: 1;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-right: 2px solid var(--rk-hero-border);
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-hero-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-transform: uppercase;
}

.rk-hero-tab-btn:last-child {
    border-right: none;
}

.rk-hero-tab-btn:hover {
    background: #e2e8f0;
    color: var(--rk-hero-dark);
}

.rk-hero-tab-btn.active {
    background: var(--rk-hero-bg);
    color: var(--rk-hero-blue);
    border-bottom: 4px solid var(--rk-hero-blue);
    margin-bottom: -2px; /* Zastąpienie dolnego borderu */
}

/* Zawartość zakładek */
.rk-hero-content-wrapper {
    padding: 35px 40px;
}

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

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

.rk-hero-quick-answer {
    background: var(--rk-hero-success-bg);
    border-left: 6px solid var(--rk-hero-success);
    padding: 20px 25px;
    font-size: 16px;
    line-height: 1.6;
    color: #064e3b;
    margin-bottom: 25px;
}

.rk-hero-quick-answer strong {
    font-weight: 900;
    color: #065f46;
}

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

.rk-hero-text a {
    color: var(--rk-hero-blue);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.rk-hero-text a:hover {
    color: var(--rk-hero-dark);
}

/* Notyfikacja o narzędziach */
.rk-hero-tools-notice {
    background: var(--rk-hero-dark);
    color: #ffffff;
    padding: 20px 40px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-hero-tools-notice svg {
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-hero-tools-text {
    font-size: 15px;
    font-weight: 700;
    margin: 0;
    line-height: 1.5;
}

/* RWD */
@media (max-width: 768px) {
    .rk-hero-hook { padding: 15px 20px; font-size: 15px; align-items: flex-start; }
    .rk-hero-header { padding: 25px 20px; }
    .rk-hero-h2 { font-size: 24px; }
    .rk-hero-tabs-nav { flex-direction: column; }
    .rk-hero-tab-btn { border-right: none; border-bottom: 2px solid var(--rk-hero-border); justify-content: flex-start; padding: 15px 20px; }
    .rk-hero-tab-btn.active { border-bottom: 4px solid var(--rk-hero-blue); margin-bottom: 0; }
    .rk-hero-content-wrapper { padding: 25px 20px; }
    .rk-hero-tools-notice { padding: 20px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Wstęp: Woda demineralizowana w ogrzewaniu podłogowym to absolutny wymóg technologiczny",
    "description": "Zalałeś nową podłogówkę wodą z kranu? Sprawdź dlaczego woda demineralizowana to jedyny bezpieczny czynnik grzewczy gwarantujący najwyższą sprawność.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-14",
    "dateModified": "2026-07-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-wstep",
    "name": "Baza Wiedzy i Narzędzi: Media Robocze w Instalacjach CO",
    "description": "Zestawienie interaktywnych narzędzi diagnostycznych, norm fizykochemicznych oraz instrukcji eksploatacyjnych zawartych w przewodniku inżynierskim.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "woda demineralizowana w ogrzewaniu podłogowym",
      "jaka woda do instalacji podłogówki",
      "zabezpieczenie pompy ciepła przed kamieniem",
      "woda z kranu czy demineralizowana do co",
      "inhibitor korozji w instalacji grzewczej"
    ],
    "measurementTechnique": "Udostepnienie kalkulatorów, analizatorów chemicznych i osi czasu symulujących procesy degradacji wewnątrz rur płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja: Medium robocze pozbawione minerałów z dodatkiem stabilizatora pH.",
        "Cel: 100% ochrona przed kamieniem kotłowym i korozją biologiczną.",
        "Wymóg: Bezwzględny warunek zachowania gwarancji producenta urządzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-wstep",
    "name": "Nawigator Wiedzy Instalacyjnej CO",
    "description": "Moduł wprowadzający czytelnika do zaawansowanych, interaktywnych narzędzi inżynierskich pozwalających wyliczyć parametry i koszty instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container" id="rk-wstep-artykulu">
    
    <!-- Hook -->
    <div class="rk-hero-hook">
        <div class="rk-hero-hook-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        Wlałeś zwykłą kranówkę do nowej podłogówki? Prawdopodobnie właśnie zniszczyłeś żywotność źródła ciepła.
    </div>

    <!-- Tytuł główny dla wstępu -->
    <div class="rk-hero-header">
        <h2 class="rk-hero-h2">
            Woda demineralizowana w ogrzewaniu podłogowym – <span>kompendium inwestora</span>
        </h2>
    </div>

    <!-- Nawigacja Tabs -->
    <div class="rk-hero-tabs-nav">
        <button class="rk-hero-tab-btn active" id="btn-intro-tl" onclick="rkSwitchIntro('tl')">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
            Szybka odpowiedź
        </button>
        <button class="rk-hero-tab-btn" id="btn-intro-det" onclick="rkSwitchIntro('det')">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Szczegóły inżynierskie
        </button>
    </div>

    <!-- Zawartość zakładek -->
    <div class="rk-hero-content-wrapper">
        
        <!-- Panel 1: Szybka odpowiedź -->
        <div class="rk-hero-panel active" id="panel-intro-tl">
            <div class="rk-hero-quick-answer">
                <strong>SZYBKA ODPOWIEDŹ:</strong> Najlepszym i bezwzględnie wymaganym przez producentów wyborem jest <strong>woda demineralizowana w ogrzewaniu podłogowym</strong> połączona z chemicznym inhibitorem korozji. Taka mieszanka charakteryzuje się twardością 0 °dH. W przeciwieństwie do wody z kranu nie tworzy izolującego kamienia kotłowego, hamuje niszczącą korozję elektrochemiczną i stanowi warunek konieczny do zachowania gwarancji urządzeń.
            </div>
            <p class="rk-hero-text">
                Woda demineralizowana w ogrzewaniu podłogowym to specjalistyczne medium robocze pozbawione większości minerałów i soli rozpuszczonych. Stanowi jedyny zalecany sposób napełniania nowoczesnych instalacji płaszczyznowych opartych o wysokiej klasy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> oraz kondensacyjne <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kotły gazowe</a>.
            </p>
        </div>

        <!-- Panel 2: Szczegóły -->
        <div class="rk-hero-panel" id="panel-intro-det">
            <p class="rk-hero-text">
                W przeciwieństwie do surowej wody z kranu, <strong>woda demineralizowana w ogrzewaniu podłogowym</strong> całkowicie eliminuje problem odkładania się kamienia kotłowego w wymiennikach ciepła. Minimalizuje ona również przewodnictwo elektryczne cieczy (nawet poniżej 10 µS/cm przed stabilizacją).
            </p>
            <p class="rk-hero-text">
                Te dwa czynniki bezpośrednio zabezpieczają układ przed wżerną korozją elektrochemiczną i biologiczną (rozwojem czarnego szlamu). Stosowanie tego rozwiązania to nie luksus, lecz bezwzględny <strong>standard technologiczny</strong>, od którego producenci urządzeń uzależniają uznanie praw z tytułu pełnej ochrony gwarancyjnej. Więcej na temat stabilizacji pH przeczytasz w dziale o <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wodzie z inhibitorem korozji</a>.
            </p>
        </div>

    </div>

    <!-- Notice o narzędziach (Hook na dalsze czytanie) -->
    <div class="rk-hero-tools-notice">
        <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
        <p class="rk-hero-tools-text">
            To nie jest zwykły artykuł. Przewijając poniżej, uzyskasz dostęp do darmowych <strong>interaktywnych narzędzi</strong>: inżynierskiego kalkulatora zładu wody, wizualizacji norm chemicznych oraz symulatora kosztów awaryjnych w czasie.
        </p>
    </div>

</div>

<script>
function rkSwitchIntro(tab) {
    // Przyciski
    var btnTl = document.getElementById('btn-intro-tl');
    var btnDet = document.getElementById('btn-intro-det');
    
    // Panele
    var panelTl = document.getElementById('panel-intro-tl');
    var panelDet = document.getElementById('panel-intro-det');

    // Natychmiastowe przełączenie bez animacji
    if (tab === 'tl') {
        btnTl.classList.add('active');
        btnDet.classList.remove('active');
        
        panelTl.classList.add('active');
        panelDet.classList.remove('active');
    } else {
        btnDet.classList.add('active');
        btnTl.classList.remove('active');
        
        panelDet.classList.add('active');
        panelTl.classList.remove('active');
    }
}
</script>



<style>
:root {
    --rk-nrm-dark: #0f172a;
    --rk-nrm-blue: #0284c7;
    --rk-nrm-danger: #dc2626;
    --rk-nrm-danger-light: #fef2f2;
    --rk-nrm-success: #059669;
    --rk-nrm-success-light: #ecfdf5;
    --rk-nrm-border: #cbd5e1;
    --rk-nrm-bg: #ffffff;
    --rk-nrm-text: #475569;
}

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

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

.rk-nrm-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    line-height: 1.3;
}

.rk-nrm-h2 svg {
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-nrm-desc {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

/* Panel Sterowania */
.rk-nrm-controls {
    padding: 30px 40px;
    background: #f1f5f9;
    display: flex;
    justify-content: center;
    border-bottom: 1px solid var(--rk-nrm-border);
}

.rk-nrm-toggle-box {
    display: flex;
    background: var(--rk-nrm-bg);
    border: 2px solid var(--rk-nrm-border);
    border-radius: 14px;
    padding: 6px;
    width: 100%;
    max-width: 600px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-nrm-btn {
    flex: 1;
    padding: 14px 10px;
    border: none;
    background: transparent;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-nrm-text);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-nrm-btn.active-kran {
    background: var(--rk-nrm-danger-light);
    color: var(--rk-nrm-danger);
    box-shadow: 0 2px 5px rgba(220, 38, 38, 0.15);
}

.rk-nrm-btn.active-demi {
    background: var(--rk-nrm-success-light);
    color: var(--rk-nrm-success);
    box-shadow: 0 2px 5px rgba(5, 150, 105, 0.15);
}

/* Siatka Wyników */
.rk-nrm-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
    padding: 35px 40px;
}

@media (min-width: 900px) {
    .rk-nrm-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.rk-nrm-card {
    background: var(--rk-nrm-bg);
    border: 1px solid var(--rk-nrm-border);
    border-radius: 16px;
    padding: 25px 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
    transition: all 0.4s ease;
}

.rk-nrm-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: var(--rk-nrm-border);
    transition: background 0.4s ease;
}

.state-kran .rk-nrm-card::before { background: var(--rk-nrm-danger); }
.state-demi .rk-nrm-card::before { background: var(--rk-nrm-success); }

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

.state-kran .rk-nrm-icon-wrapper { background: var(--rk-nrm-danger-light); color: var(--rk-nrm-danger); }
.state-demi .rk-nrm-icon-wrapper { background: var(--rk-nrm-success-light); color: var(--rk-nrm-success); }

.rk-nrm-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-nrm-dark);
    margin: 0 0 15px 0;
}

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

.rk-nrm-card-text a {
    color: var(--rk-nrm-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}

.rk-nrm-card-text a:hover {
    border-bottom-color: var(--rk-nrm-blue);
}

/* Chemia - Wzór */
.rk-nrm-formula {
    background: #1e293b;
    color: #38bdf8;
    padding: 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    margin-top: 15px;
    transition: all 0.4s ease;
}

.state-kran .rk-nrm-formula { color: #f87171; }
.state-demi .rk-nrm-formula { color: #34d399; }

/* Termika - Wykresy */
.rk-nrm-bar-group {
    margin-top: 15px;
}

.rk-nrm-bar-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 5px;
}

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

.rk-nrm-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background 0.4s ease;
}

/* RWD */
@media (max-width: 768px) {
    .rk-nrm-header { padding: 30px 20px; text-align: left; }
    .rk-nrm-h2 { justify-content: flex-start; font-size: 22px; align-items: flex-start; }
    .rk-nrm-h2 svg { margin-top: 3px; }
    .rk-nrm-controls { padding: 20px; }
    .rk-nrm-toggle-box { flex-direction: column; }
    .rk-nrm-btn { padding: 12px; }
    .rk-nrm-grid { padding: 20px; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-norma",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Dlaczego woda demineralizowana w ogrzewaniu podłogowym jest niezbędna i co mówi norma PN-EN 14868?",
    "description": "Fizykochemiczna analiza wody instalacyjnej w świetle normy PN-EN 14868. Wpływ kamienia kotłowego na opór cieplny oraz ryzyko mikroogniw galwanicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-norma",
    "name": "Właściwości termofizyczne i normatywne czynników roboczych CO",
    "description": "Zestawienie danych dotyczących przewodności cieplnej (izolacyjności) osadów z węglanu wapnia oraz limitów przewodności elektrycznej według europejskich wytycznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 14868",
      "kamień kotłowy w podłogówce",
      "przewodność cieplna kamienia",
      "mikroogniwa galwaniczne",
      "twardość wody mmol/l",
      "utrata gwarancji na pompę ciepła"
    ],
    "measurementTechnique": "Modelowanie spadku współczynnika przewodzenia ciepła lambda z 15 W/(mK) do 0,5 W/(mK) oraz ocena ryzyka korozji w oparciu o przewodność powyżej 100 µS/cm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Reakcja: Rozpad wodorowęglanów prowadzi do trwałego osadu CaCO3.",
        "Przewodność cieplna: Osad (0,5 W/mK) vs Stal nierdzewna (15 W/mK).",
        "Norma: Wymóg całkowitej twardości ponizej 0,1 mmol/l oraz przewodności poniżej 100 µS/cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-norma",
    "name": "Symulator Reakcji Termochemicznych i Zgodności Normatywnej",
    "description": "Interaktywny pulpit pozwalający zaobserwować chemiczne i prawne skutki podgrzania wody wodociągowej w mikro-przekrojach instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-nrm-container" id="rk-norm-dashboard">
    <div class="rk-nrm-header">
        <h2 class="rk-nrm-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Dlaczego demineralizacja jest niezbędna? Analiza PN-EN 14868
        </h2>
        <p class="rk-nrm-desc">
            Europejska norma techniczna bezwzględnie określa fizykochemiczne parametry cieczy roboczej. Sprawdź, jak zachowuje się fizyka płynów w małych przekrojach rur w zależności od napełnienia.
        </p>
    </div>

    <div class="rk-nrm-controls">
        <div class="rk-nrm-toggle-box">
            <button class="rk-nrm-btn active-kran" id="btn-nrm-kran" onclick="rkSwitchNorm('kran')">
                Podgrzanie zwykłej kranówki
            </button>
            <button class="rk-nrm-btn" id="btn-nrm-demi" onclick="rkSwitchNorm('demi')">
                Podgrzanie wody demineralizowanej
            </button>
        </div>
    </div>

    <div class="rk-nrm-grid state-kran" id="rk-nrm-grid-wrapper">
        
        <!-- Karta 1: Chemia -->
        <div class="rk-nrm-card">
            <div class="rk-nrm-icon-wrapper">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 2v7.31"></path><path d="M14 9.3V1.99"></path><path d="M8.5 2h7"></path><path d="M14 9.3a6.5 6.5 0 1 1-4 0"></path><line x1="5.52" y1="16" x2="18.48" y2="16"></line></svg>
            </div>
            <h3 class="rk-nrm-card-title">Chemia Fizyczna</h3>
            <p class="rk-nrm-card-text" id="nrm-txt-chem">
                Podgrzanie kranówki (11–45°dH) wywołuje termiczny rozpad wodorowęglanów wapnia i magnezu. Z roztworu wytrąca się nierozpuszczalny węglan wapnia – czyli twardy kamień kotłowy.
            </p>
            <div class="rk-nrm-formula" id="nrm-formula">
                Ca(HCO<sub>3</sub>)<sub>2</sub> &rarr; CaCO<sub>3</sub>&darr; + H<sub>2</sub>O + CO<sub>2</sub>&uarr;
            </div>
        </div>

        <!-- Karta 2: Termika -->
        <div class="rk-nrm-card">
            <div class="rk-nrm-icon-wrapper">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <h3 class="rk-nrm-card-title">Opór Cieplny &lambda;</h3>
            <p class="rk-nrm-card-text" id="nrm-txt-therm">
                Osad staje się potężnym <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">izolatorem termicznym</a>. Wymiana ciepła zostaje zablokowana. Przewodność elektryczna powyżej 600 µS/cm napędza niszczące mikroogniwa galwaniczne.
            </p>
            <div class="rk-nrm-bar-group">
                <div class="rk-nrm-bar-label"><span>Stal (wymiennik)</span> <span>15 W/(m&middot;K)</span></div>
                <div class="rk-nrm-bar-track"><div class="rk-nrm-bar-fill" style="width: 80%; background: #94a3b8;"></div></div>
                
                <div class="rk-nrm-bar-label"><span>Medium (Woda)</span> <span id="nrm-val-heat">0.5 W/(m&middot;K) Izolator!</span></div>
                <div class="rk-nrm-bar-track"><div class="rk-nrm-bar-fill" id="nrm-bar-heat" style="width: 10%; background: #ef4444;"></div></div>
            </div>
        </div>

        <!-- Karta 3: Norma -->
        <div class="rk-nrm-card">
            <div class="rk-nrm-icon-wrapper">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            </div>
            <h3 class="rk-nrm-card-title">Norma PN-EN 14868</h3>
            <p class="rk-nrm-card-text" id="nrm-txt-legal">
                Twardość wynosi 2–8 mmol/l, a dopuszczalna norma to <strong>&le; 0,1 mmol/l</strong>. Zignorowanie wytycznych skutkuje <strong>natychmiastową utratą gwarancji producenta</strong> na <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompę ciepła</a>.
            </p>
        </div>

    </div>
</div>

<script>
function rkSwitchNorm(mode) {
    var btnKran = document.getElementById('btn-nrm-kran');
    var btnDemi = document.getElementById('btn-nrm-demi');
    var gridWrapper = document.getElementById('rk-nrm-grid-wrapper');

    // Teksty
    var txtChem = document.getElementById('nrm-txt-chem');
    var formula = document.getElementById('nrm-formula');
    var txtTherm = document.getElementById('nrm-txt-therm');
    var valHeat = document.getElementById('nrm-val-heat');
    var barHeat = document.getElementById('nrm-bar-heat');
    var txtLegal = document.getElementById('nrm-txt-legal');

    if (mode === 'kran') {
        btnKran.classList.add('active-kran');
        btnDemi.classList.remove('active-demi');
        gridWrapper.className = 'rk-nrm-grid state-kran';

        txtChem.innerHTML = "Podgrzanie kranówki (11–45°dH) wywołuje termiczny rozpad wodorowęglanów wapnia i magnezu. Z roztworu wytrąca się nierozpuszczalny węglan wapnia – czyli twardy kamień kotłowy.";
        formula.innerHTML = "Ca(HCO<sub>3</sub>)<sub>2</sub> &rarr; CaCO<sub>3</sub>&darr; + H<sub>2</sub>O + CO<sub>2</sub>&uarr;";
        
        txtTherm.innerHTML = "Osad staje się potężnym <a href=\"https://projekt-ogrzewania.pl/opor-cieplny-r-m2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/\">izolatorem termicznym</a>. Wymiana ciepła zostaje zablokowana. Przewodność elektryczna powyżej 600 µS/cm napędza niszczące mikroogniwa galwaniczne.";
        valHeat.innerText = "0.5 W/(m·K) Izolator!";
        barHeat.style.width = "10%";
        barHeat.style.background = "#ef4444";

        txtLegal.innerHTML = "Twardość wynosi 2–8 mmol/l, a dopuszczalna norma to <strong>&le; 0,1 mmol/l</strong>. Zignorowanie wytycznych skutkuje <strong>natychmiastową utratą gwarancji producenta</strong> na <a href=\"https://projekt-ogrzewania.pl/pompa-ciepla/\">pompę ciepła</a>.";

    } else {
        btnDemi.classList.add('active-demi');
        btnKran.classList.remove('active-kran');
        gridWrapper.className = 'rk-nrm-grid state-demi';

        txtChem.innerHTML = "Woda zdemineralizowana pozbawiona jest wodorowęglanów. Nawet podczas podgrzewania na małych przekrojach rur nie zachodzą żadne reakcje strąceniowe.";
        formula.innerHTML = "Brak minerałów = Brak reakcji (Czysty obieg)";
        
        txtTherm.innerHTML = "Brak warstwy izolującej pozwala na bezstratny przepływ ciepła do miedzianych (380 W/(m·K)) i stalowych elementów. Niska przewodność prądu gasi ryzyko korozji elektrochemicznej.";
        valHeat.innerText = "Optymalny przepływ ciepła";
        barHeat.style.width = "80%";
        barHeat.style.background = "#059669";

        txtLegal.innerHTML = "Medium posiada twardość <strong>0,0 mmol/l</strong> oraz przewodność właściwą poniżej wytyczonej granicy 100 µS/cm. <strong>Pełna ochrona gwarancyjna</strong> jest bezwzględnie zachowana.";
    }
}
</script>



<style>
:root {
    --rk-dmg-dark: #0f172a;
    --rk-dmg-blue: #0284c7;
    --rk-dmg-danger: #dc2626;
    --rk-dmg-danger-bg: #fef2f2;
    --rk-dmg-warning: #d97706;
    --rk-dmg-warning-bg: #fffbeb;
    --rk-dmg-stone: #475569;
    --rk-dmg-bg: #ffffff;
    --rk-dmg-border: #e2e8f0;
}

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

.rk-dmg-header {
    background: linear-gradient(135deg, var(--rk-dmg-dark) 0%, #1e293b 100%);
    padding: 35px 40px;
    text-align: center;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dmg-danger);
}

.rk-dmg-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-dmg-h2 svg {
    color: #f87171;
}

.rk-dmg-intro {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.7;
    max-width: 800px;
    margin: 0 auto;
}

.rk-dmg-body {
    padding: 35px 40px;
}

/* Nawigacja raportów */
.rk-dmg-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}

@media (min-width: 768px) {
    .rk-dmg-nav {
        flex-direction: row;
    }
}

.rk-dmg-btn {
    flex: 1;
    background: var(--rk-dmg-bg);
    border: 2px solid var(--rk-dmg-border);
    border-radius: 12px;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dmg-stone);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-dmg-btn.active-scale {
    background: #fefce8;
    border-color: #ca8a04;
    color: #854d0e;
}

.rk-dmg-btn.active-sludge {
    background: #f1f5f9;
    border-color: #334155;
    color: #0f172a;
}

.rk-dmg-btn.active-pump {
    background: var(--rk-dmg-danger-bg);
    border-color: var(--rk-dmg-danger);
    color: var(--rk-dmg-danger);
}

/* Karta Raportu */
.rk-dmg-report {
    background: var(--rk-dmg-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-dmg-border);
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    position: relative;
    overflow: hidden;
}

.rk-dmg-report::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    transition: background 0.4s ease;
}

.rk-dmg-report.state-scale::before { background: #ca8a04; }
.rk-dmg-report.state-sludge::before { background: #334155; }
.rk-dmg-report.state-pump::before { background: var(--rk-dmg-danger); }

.rk-dmg-impact-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 18px;
    margin-bottom: 20px;
}

.state-scale .rk-dmg-impact-badge { background: #fefce8; color: #854d0e; border: 1px solid #fef08a; }
.state-sludge .rk-dmg-impact-badge { background: #f1f5f9; color: #0f172a; border: 1px solid #cbd5e1; }
.state-pump .rk-dmg-impact-badge { background: var(--rk-dmg-danger-bg); color: var(--rk-dmg-danger); border: 1px solid #fecaca; }

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

@media (min-width: 768px) {
    .rk-dmg-content-grid {
        grid-template-columns: 80px 1fr;
        align-items: flex-start;
    }
}

.rk-dmg-icon-wrapper {
    width: 60px;
    height: 60px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.state-scale .rk-dmg-icon-wrapper { background: #fef08a; color: #a16207; }
.state-sludge .rk-dmg-icon-wrapper { background: #e2e8f0; color: #334155; }
.state-pump .rk-dmg-icon-wrapper { background: #fecaca; color: #dc2626; }

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

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

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

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

.rk-dmg-list {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-dmg-stone);
    font-size: 15px;
    line-height: 1.6;
}

.rk-dmg-list li {
    margin-bottom: 8px;
}

@media (max-width: 768px) {
    .rk-dmg-header { padding: 30px 20px; text-align: left; }
    .rk-dmg-h2 { justify-content: flex-start; font-size: 22px; align-items: flex-start; }
    .rk-dmg-h2 svg { flex-shrink: 0; margin-top: 3px; }
    .rk-dmg-body { padding: 25px 20px; }
    .rk-dmg-btn { padding: 14px; flex-direction: row; justify-content: flex-start; }
    .rk-dmg-report { padding: 25px 20px 25px 25px; } /* Miejsce na lewy border */
    .rk-dmg-icon-wrapper { display: none; } /* Ukrywamy ikonę na mobilce dla oszczędności miejsca */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-skutki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Jakie są skutki wlania zwykłej wody z kranu do instalacji ogrzewania podłogowego?",
    "description": "Analiza nieodwracalnych strat eksploatacyjnych, spadków sprawności i awarii pomp obiegowych wywołanych odkładaniem się kamienia kotłowego i magnetytu z surowej kranówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-skutki",
    "name": "Baza Danych Strat Eksploatacyjnych: Woda sieciowa w instalacjach CO",
    "description": "Zestawienie kosztów i spadków sprawności energetycznej wywołanych zjawiskami korozji podosadowej i wytrącaniem węglanu wapnia.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki wlania kranówki do podłogówki",
      "spadek sprawności wymiany ciepła",
      "koszt wymiany pompy obiegowej",
      "czarny szlam w instalacji co",
      "korozja podosadowa rozdzielacza"
    ],
    "measurementTechnique": "Analiza fizykochemiczna osadów (Fe3O4, kamień kotłowy) i wyliczanie szacunkowych strat sprawności cieplnej oraz wydatków na serwis armatury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kamień kotłowy: 1 mm osadu redukuje sprawność systemu o 10-15%.",
        "Czarny szlam (magnetyt): zablokowanie rotametrów i procesy korozji podosadowej.",
        "Awarie: zatarcie elektronicznej pompy obiegowej (koszt: 800 - 1800 PLN)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-skutki",
    "name": "Interaktywny Raport Uszkodzeń Hydraulicznych",
    "description": "Narzędzie pozwalające na zdiagnozowanie krytycznych punktów awaryjnych instalacji CO poprzez symulację wpływu surowej wody sieciowej na poszczególne komponenty.",
    "applicationCategory": "DiagnosticTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dmg-container" id="rk-raport-awarii">
    <div class="rk-dmg-header">
        <h2 class="rk-dmg-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Jakie są skutki wlania kranówki do podłogówki?
        </h2>
        <p class="rk-dmg-intro">
            Zwykła woda z kranu wpuszczona do układu grzewczego powoduje <strong>nieodwracalne straty eksploatacyjne</strong>. Wybierz zjawisko poniżej, aby wygenerować inżynierski raport uszkodzeń i kosztów.
        </p>
    </div>

    <div class="rk-dmg-body">
        
        <div class="rk-dmg-nav">
            <button class="rk-dmg-btn active-scale" id="btn-dmg-scale" onclick="rkLoadDamage('scale')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
                Kamień Kotłowy
            </button>
            <button class="rk-dmg-btn" id="btn-dmg-sludge" onclick="rkLoadDamage('sludge')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                Szlam i Magnetyt
            </button>
            <button class="rk-dmg-btn" id="btn-dmg-pump" onclick="rkLoadDamage('pump')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><line x1="9" y1="9" x2="15" y2="15"></line><line x1="15" y1="9" x2="9" y2="15"></line></svg>
                Zatarcie Pompy
            </button>
        </div>

        <div class="rk-dmg-report state-scale" id="rk-dmg-report-card">
            
            <div class="rk-dmg-impact-badge" id="rk-dmg-badge">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                Spadek Sprawności: 10% &#8211; 15%
            </div>

            <div class="rk-dmg-content-grid">
                <div class="rk-dmg-icon-wrapper" id="rk-dmg-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                
                <div id="rk-dmg-text-content">
                    <p class="rk-dmg-text">
                        Zarastanie pętli grzewczych i wymienników osadem to najdroższa, bo powolna awaria. Już <strong>warstwa kamienia kotłowego o grubości zaledwie 1 mm</strong> na ściankach wymiennika ciepła generuje potężny opór termiczny. Co to oznacza w praktyce?
                    </p>
                    <ul class="rk-dmg-list">
                        <li>Efektywność energetyczna całego systemu drastycznie spada.</li>
                        <li>Źródło ciepła musi pracować dłużej i na wyższych parametrach.</li>
                        <li>W skali sezonu podnosi to <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty eksploatacyjne budynku</a> o kilkaset złotych.</li>
                    </ul>
                </div>
            </div>

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

<script>
function rkLoadDamage(type) {
    var btnScale = document.getElementById('btn-dmg-scale');
    var btnSludge = document.getElementById('btn-dmg-sludge');
    var btnPump = document.getElementById('btn-dmg-pump');
    
    var reportCard = document.getElementById('rk-dmg-report-card');
    var badge = document.getElementById('rk-dmg-badge');
    var content = document.getElementById('rk-dmg-text-content');

    // Reset przycisków
    btnScale.className = 'rk-dmg-btn';
    btnSludge.className = 'rk-dmg-btn';
    btnPump.className = 'rk-dmg-btn';

    if (type === 'scale') {
        btnScale.classList.add('active-scale');
        reportCard.className = 'rk-dmg-report state-scale';
        
        badge.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg> Spadek Sprawności: 10% - 15%';
        
        content.innerHTML = `
            <p class="rk-dmg-text">
                Zarastanie pętli grzewczych i wymienników osadem to najdroższa, bo powolna awaria. Już <strong>warstwa kamienia kotłowego o grubości zaledwie 1 mm</strong> na ściankach wymiennika ciepła generuje potężny opór termiczny. Co to oznacza w praktyce?
            </p>
            <ul class="rk-dmg-list">
                <li>Efektywność energetyczna całego systemu drastycznie spada.</li>
                <li>Źródło ciepła musi pracować dłużej i na wyższych parametrach.</li>
                <li>W skali sezonu podnosi to <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty eksploatacyjne budynku</a> o kilkaset złotych.</li>
            </ul>
        `;
    } else if (type === 'sludge') {
        btnSludge.classList.add('active-sludge');
        reportCard.className = 'rk-dmg-report state-sludge';
        
        badge.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg> Czarny Szlam i Blokady';
        
        content.innerHTML = `
            <p class="rk-dmg-text">
                Obecny w surowej kranówce tlen rozpuszczony (często osiągający wartości nawet do 10 mg/l) błyskawicznie wchodzi w reakcję z komponentami żelaznymi. Skutkuje to tworzeniem <strong>czarnego magnetytu (Fe3O4)</strong>, który w połączeniu z biofilmem bakteryjnym tworzy gęstą maź.
            </p>
            <ul class="rk-dmg-list">
                <li>Mineralne osady zatykają precyzyjne mechanizmy regulacyjne na rozdzielaczach.</li>
                <li>Uniemożliwia to prawidłowe <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">zrównoważenie hydrauliczne instalacji</a>.</li>
                <li>Pojawia się tzw. korozja podosadowa – lokalne drastyczne obniżenie pH, prowadzące do perforacji metalu.</li>
            </ul>
        `;
    } else if (type === 'pump') {
        btnPump.classList.add('active-pump');
        reportCard.className = 'rk-dmg-report state-pump';
        
        badge.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg> Koszt awarii: 800 – 1800 PLN';
        
        content.innerHTML = `
            <p class="rk-dmg-text">
                Najszybsza i najbardziej bolesna dla portfela konsekwencja napełniania instalacji wodą sieciową. Współczesne, elektroniczne pompy obiegowe wykorzystują do działania silne magnesy stałe.
            </p>
            <p class="rk-dmg-text">
                Zawieszony w cieczy magnetyt z rdzy jest <strong>niczym magnes przyciągany bezpośrednio do wirnika pompy</strong>. Następuje jej całkowite zablokowanie i zniszczenie układu elektronicznego. Z uwagi na winę instalatora (brak odpowiedniej wody zgodnej z normą), naprawa <strong>nie podlega gwarancji</strong>. Pamiętaj, by regularnie zlecać <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">przeglądy serwisowe podłogówki</a>.
            </p>
        `;
    }
}
</script>



<style>
:root {
    --rk-chem-dark: #0f172a;
    --rk-chem-blue: #0284c7;
    --rk-chem-sky: #f0f9ff;
    --rk-chem-danger: #ef4444;
    --rk-chem-danger-bg: #fef2f2;
    --rk-chem-warning: #f59e0b;
    --rk-chem-warning-bg: #fffbeb;
    --rk-chem-success: #10b981;
    --rk-chem-success-bg: #ecfdf5;
    --rk-chem-border: #cbd5e1;
    --rk-chem-text: #334155;
    --rk-chem-bg: #ffffff;
}

.rk-chem-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #f8fafc;
    border-radius: 20px;
    box-shadow: 0 12px 30px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-chem-blue);
    overflow: hidden;
}

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

.rk-chem-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-chem-h2 svg {
    color: #38bdf8;
}

.rk-chem-desc {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.7;
    max-width: 750px;
    margin: 0 auto;
}

.rk-chem-body {
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Interaktywne przyciski wyboru */
.rk-chem-toggles {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-chem-toggles {
        flex-direction: row;
    }
}

.rk-chem-btn {
    flex: 1;
    padding: 16px 20px;
    background: var(--rk-chem-bg);
    border: 2px solid var(--rk-chem-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-chem-text);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.rk-chem-btn:hover {
    background: var(--rk-chem-sky);
    border-color: var(--rk-chem-blue);
}

.rk-chem-btn.active-danger {
    background: var(--rk-chem-danger-bg);
    border-color: var(--rk-chem-danger);
    color: var(--rk-chem-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-chem-btn.active-warning {
    background: var(--rk-chem-warning-bg);
    border-color: var(--rk-chem-warning);
    color: #b45309;
    box-shadow: 0 4px 10px rgba(245, 158, 11, 0.15);
}

.rk-chem-btn.active-success {
    background: var(--rk-chem-success-bg);
    border-color: var(--rk-chem-success);
    color: var(--rk-chem-success);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Karta wyników laboratoryjnych */
.rk-chem-lab-card {
    background: var(--rk-chem-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-chem-border);
    padding: 30px;
    position: relative;
    transition: all 0.4s ease;
}

.rk-chem-lab-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: var(--rk-chem-border);
    border-radius: 16px 16px 0 0;
    transition: background 0.4s ease;
}

.rk-chem-lab-card.state-danger::before { background: var(--rk-chem-danger); }
.rk-chem-lab-card.state-warning::before { background: var(--rk-chem-warning); }
.rk-chem-lab-card.state-success::before { background: var(--rk-chem-success); }

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

.rk-chem-lab-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-chem-sky);
    color: var(--rk-chem-blue);
}

.state-danger .rk-chem-lab-icon { background: var(--rk-chem-danger-bg); color: var(--rk-chem-danger); }
.state-warning .rk-chem-lab-icon { background: var(--rk-chem-warning-bg); color: var(--rk-chem-warning); }
.state-success .rk-chem-lab-icon { background: var(--rk-chem-success-bg); color: var(--rk-chem-success); }

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

/* Parametry */
.rk-chem-param-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-chem-param-row {
    background: #f8fafc;
    padding: 15px 20px;
    border-radius: 10px;
    border-left: 4px solid var(--rk-chem-border);
    transition: all 0.3s ease;
}

.state-danger .rk-chem-param-row.ph-row { border-left-color: var(--rk-chem-danger); }
.state-warning .rk-chem-param-row.ph-row { border-left-color: var(--rk-chem-warning); }
.state-success .rk-chem-param-row.ph-row { border-left-color: var(--rk-chem-success); }

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

.rk-chem-param-val {
    font-size: 16px;
    color: var(--rk-chem-dark);
    line-height: 1.6;
}

.rk-chem-param-val strong {
    font-weight: 800;
}

.rk-chem-param-val a {
    color: var(--rk-chem-blue);
    font-weight: 700;
    text-decoration: none;
}

/* Wskaźnik pH wizualny */
.rk-chem-ph-bar {
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, #ef4444 0%, #f59e0b 50%, #10b981 85%, #3b82f6 100%);
    border-radius: 4px;
    margin-top: 10px;
    position: relative;
}

.rk-chem-ph-marker {
    position: absolute;
    top: -6px;
    width: 4px;
    height: 20px;
    background: var(--rk-chem-dark);
    border-radius: 2px;
    transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 0 0 2px #ffffff;
}

@media (max-width: 768px) {
    .rk-chem-header { padding: 25px 20px; }
    .rk-chem-body { padding: 20px; }
    .rk-chem-h2 { font-size: 22px; text-align: left; justify-content: flex-start; align-items: flex-start; }
    .rk-chem-h2 svg { flex-shrink: 0; margin-top: 3px; }
    .rk-chem-btn { flex-direction: row; text-align: left; padding: 15px; }
    .rk-chem-lab-card { padding: 20px; }
    .rk-chem-param-row { padding: 12px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-destylowana",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Czym różni się woda demineralizowana od wody destylowanej w instalacji CO?",
    "description": "Technologiczne zestawienie różnic w produkcji i agresywności chemicznej pomiędzy wodą destylowaną a zdemineralizowaną w kontekście korozji instalacji grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-destylowana",
    "name": "Baza Danych Właściwości Fizykochemicznych: Destylowana vs Demineralizowana",
    "description": "Zbiór danych określających zachowanie korozyjne wód oczyszczonych w zamkniętych instalacjach centralnego ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "woda destylowana a demineralizowana",
      "woda głodna jonów",
      "korozja miedzi i mosiądzu",
      "inhibitor korozji do ogrzewania",
      "ph wody w centralnym ogrzewaniu"
    ],
    "measurementTechnique": "Analiza spektralna i elektrochemiczna: ocena stabilności odczynu pH w kontakcie z powietrzem (absorpcja CO2) oraz redukcji przewodności poniżej 10 µS/cm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Woda destylowana: pH spada do 5,5 (silnie korozyjna, pochłania CO2).",
        "Woda demineralizowana: pH 6,0-7,0 (wymaga natychmiastowej stabilizacji inhibitorami).",
        "Medium docelowe: pH podniesione do bezpiecznego okna 8,2-9,5 dzięki buforom chemicznym."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-destylowana",
    "name": "Symulator Agresywności Chemicznej Medium",
    "description": "Aplikacja edukacyjna obrazująca korozyjny wpływ tzw. wody głodnej na instalacje sanitarne i konieczność stosowania stabilizatorów pH.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chem-container" id="rk-chem-analyzer">
    <div class="rk-chem-header">
        <h2 class="rk-chem-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10 2v7.31"></path><path d="M14 9.3V1.99"></path><path d="M8.5 2h7"></path><path d="M14 9.3a6.5 6.5 0 1 1-4 0"></path><line x1="5.52" y1="16" x2="18.48" y2="16"></line></svg>
            Woda demineralizowana czy destylowana?
        </h2>
        <p class="rk-chem-desc">
            Podstawowa różnica leży w technologii produkcji oraz finalnej agresywności chemicznej. Sprawdź, dlaczego wlanie &#8222;najczystszej&#8221; wody zniszczy Twoją instalację szybciej niż zwykła kranówka.
        </p>
    </div>

    <div class="rk-chem-body">
        
        <div class="rk-chem-toggles">
            <button class="rk-chem-btn active-danger" id="btn-chem-dest" onclick="rkSwitchChem('dest')">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Woda Destylowana
            </button>
            <button class="rk-chem-btn" id="btn-chem-demi" onclick="rkSwitchChem('demi')">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Czysta Woda Demi
            </button>
            <button class="rk-chem-btn" id="btn-chem-safe" onclick="rkSwitchChem('safe')">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><polyline points="9 12 11 14 15 10"></polyline></svg>
                Woda Demi + Inhibitor
            </button>
        </div>

        <div class="rk-chem-lab-card state-danger" id="rk-chem-card">
            <div class="rk-chem-lab-header">
                <div class="rk-chem-lab-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3 class="rk-chem-lab-title" id="rk-chem-title">Status: Czysta Woda Destylowana</h3>
            </div>

            <div class="rk-chem-param-list">
                
                <div class="rk-chem-param-row">
                    <div class="rk-chem-param-label">Metoda produkcji</div>
                    <div class="rk-chem-param-val" id="rk-chem-prod">Powstaje w procesie termicznego odparowania i skraplania. Jest droga w produkcji i całkowicie jałowa.</div>
                </div>

                <div class="rk-chem-param-row ph-row">
                    <div class="rk-chem-param-label">Zachowanie chemiczne i odczyn pH</div>
                    <div class="rk-chem-param-val" id="rk-chem-ph-text">Bardzo niestabilna. Wychwytuje dwutlenek węgla (CO2) z powietrza, co gwałtownie obniża jej <strong>pH do poziomu 5,5 (odczyn kwaśny)</strong>.</div>
                    <div class="rk-chem-ph-bar">
                        <div class="rk-chem-ph-marker" id="rk-chem-ph-marker" style="left: 20%;"></div>
                    </div>
                </div>

                <div class="rk-chem-param-row">
                    <div class="rk-chem-param-label">Agresywność względem instalacji CO</div>
                    <div class="rk-chem-param-val" id="rk-chem-agr">Staje się wysoce korozyjna. To zjawisko tzw. <strong>&#8222;wody głodnej jonów&#8221;</strong>, która agresywnie trawi elementy z miedzi i mosiądzu.</div>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
function rkSwitchChem(type) {
    var btnDest = document.getElementById('btn-chem-dest');
    var btnDemi = document.getElementById('btn-chem-demi');
    var btnSafe = document.getElementById('btn-chem-safe');
    var card = document.getElementById('rk-chem-card');
    
    // Pola tekstowe
    var title = document.getElementById('rk-chem-title');
    var prod = document.getElementById('rk-chem-prod');
    var phText = document.getElementById('rk-chem-ph-text');
    var agr = document.getElementById('rk-chem-agr');
    var marker = document.getElementById('rk-chem-ph-marker');

    // Reset przycisków
    btnDest.className = 'rk-chem-btn';
    btnDemi.className = 'rk-chem-btn';
    btnSafe.className = 'rk-chem-btn';

    if (type === 'dest') {
        btnDest.classList.add('active-danger');
        card.className = 'rk-chem-lab-card state-danger';
        
        title.innerText = "Status: Czysta Woda Destylowana";
        prod.innerHTML = "Powstaje w procesie termicznego odparowania i skraplania. Jest droga w produkcji i całkowicie jałowa.";
        phText.innerHTML = "Bardzo niestabilna. Wychwytuje dwutlenek węgla z powietrza, co gwałtownie obniża jej <strong>pH do poziomu 5,5 (odczyn kwaśny)</strong>.";
        agr.innerHTML = "Staje się wysoce korozyjna. To zjawisko tzw. <strong>\"wody głodnej jonów\"</strong>, która agresywnie trawi elementy z miedzi i mosiądzu w instalacji.";
        marker.style.left = "20%"; // Strefa czerwona/kwaśna

    } else if (type === 'demi') {
        btnDemi.classList.add('active-warning');
        card.className = 'rk-chem-lab-card state-warning';
        
        title.innerText = "Status: Surowa Woda Demineralizowana";
        prod.innerHTML = "Oczyszczana metodami fizykochemicznymi (odwrócona osmoza i wymiana jonowa). Przewodność obniżona do &lt; 10 µS/cm.";
        phText.innerHTML = "Zachowuje stabilniejsze wyjściowe <strong>pH w granicach 6,0–7,0</strong>, jednak wciąż brakuje jej jonów ochronnych.";
        agr.innerHTML = "Nadal jest to medium \"głodne\". Pozbawiona minerałów woda dąży do samorzutnego nasycenia, <strong>agresywnie \"wyciągając\" cząsteczki z metalowych rur</strong>.";
        marker.style.left = "45%"; // Strefa pomarańczowa/neutralna

    } else {
        btnSafe.classList.add('active-success');
        card.className = 'rk-chem-lab-card state-success';
        
        title.innerText = "Status: Woda Demi + Inhibitor (ZALECANA)";
        prod.innerHTML = "Profesjonalne medium powstałe poprzez natychmiastowe uzdatnienie czystej wody demi dedykowanym dodatkiem chemicznym.";
        phText.innerHTML = "Chemiczny bufor podnosi i trwale stabilizuje <strong>odczyn pH do bezpiecznego poziomu 8,2–9,5</strong>.";
        agr.innerHTML = "Zerowa agresywność. Inhibitor tworzy na powierzchniach metali molekularną <strong>warstwę pasywną chroniącą przed korozją</strong>. Pamiętaj o regularnym dolewaniu np. przy użyciu <a href=\"https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/\">wody z inhibitorem korozji do CO</a>.";
        marker.style.left = "80%"; // Strefa zielona/niebieska (zasadowa, bezpieczna dla CO)
    }
}
</script>



<style>
:root {
    --rk-spec-dark: #0f172a;
    --rk-spec-blue: #0284c7;
    --rk-spec-sky: #f0f9ff;
    --rk-spec-danger: #ef4444;
    --rk-spec-danger-bg: #fef2f2;
    --rk-spec-success: #10b981;
    --rk-spec-success-bg: #ecfdf5;
    --rk-spec-border: #e2e8f0;
    --rk-spec-text: #475569;
    --rk-spec-bg: #ffffff;
}

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

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

.rk-spec-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-spec-h2 svg {
    color: #38bdf8;
}

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

/* Interaktywny Switcher */
.rk-spec-controls {
    padding: 30px 40px 10px 40px;
    display: flex;
    justify-content: center;
}

.rk-spec-switch-wrapper {
    background: var(--rk-spec-bg);
    border: 2px solid var(--rk-spec-border);
    border-radius: 16px;
    display: inline-flex;
    padding: 6px;
    gap: 8px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    width: 100%;
    max-width: 600px;
}

.rk-spec-switch-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-spec-text);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-spec-switch-btn.active-bad {
    background: var(--rk-spec-danger-bg);
    color: var(--rk-spec-danger);
    box-shadow: 0 2px 4px rgba(239, 68, 68, 0.1);
}

.rk-spec-switch-btn.active-good {
    background: var(--rk-spec-success-bg);
    color: var(--rk-spec-success);
    box-shadow: 0 2px 4px rgba(16, 185, 129, 0.1);
}

/* Kafelki Parametrów */
.rk-spec-grid {
    padding: 20px 40px 40px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-spec-card {
    background: var(--rk-spec-bg);
    border: 1px solid var(--rk-spec-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-spec-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-spec-border);
    transition: background 0.4s ease;
}

.rk-spec-card.state-bad::before { background: var(--rk-spec-danger); }
.rk-spec-card.state-good::before { background: var(--rk-spec-success); }

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

.rk-spec-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--rk-spec-sky);
    color: var(--rk-spec-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}

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

/* Wiersze danych w kafelku */
.rk-spec-data-row {
    display: flex;
    flex-direction: column;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px dashed var(--rk-spec-border);
}

@media (min-width: 768px) {
    .rk-spec-data-row {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
    }
}

.rk-spec-data-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-spec-label {
    font-size: 14px;
    font-weight: 600;
    color: #94a3b8;
    margin-bottom: 5px;
}

.rk-spec-value-norm {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-spec-dark);
    background: #f1f5f9;
    padding: 4px 10px;
    border-radius: 6px;
}

.rk-spec-value-dyn {
    font-size: 18px;
    font-weight: 900;
    transition: color 0.4s ease;
}

.state-bad .rk-spec-value-dyn { color: var(--rk-spec-danger); }
.state-good .rk-spec-value-dyn { color: var(--rk-spec-success); }

.rk-spec-impact {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-spec-text);
    transition: color 0.4s ease;
}

.rk-spec-impact a {
    color: var(--rk-spec-blue);
    font-weight: 700;
    text-decoration: none;
}

/* RWD */
@media (max-width: 768px) {
    .rk-spec-header { padding: 25px 20px; text-align: left; }
    .rk-spec-h2 { justify-content: flex-start; font-size: 22px; align-items: flex-start; }
    .rk-spec-h2 svg { flex-shrink: 0; margin-top: 2px; }
    .rk-spec-controls { padding: 20px 20px 0 20px; }
    .rk-spec-switch-wrapper { flex-direction: column; }
    .rk-spec-grid { padding: 20px; }
    .rk-spec-card { padding: 20px 20px 20px 25px; } /* Miejsce na pasek boczny */
    .rk-spec-label { margin-bottom: 8px; }
    .rk-spec-value-norm, .rk-spec-value-dyn { display: inline-block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-specyfikacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Specyfikacja techniczna: Woda kranowa vs Woda demineralizowana z inhibitorem",
    "description": "Szczegółowe porównanie parametrów fizykochemicznych surowej wody kranowej oraz medium demineralizowanego w odniesieniu do normy PN-EN 14868.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-specyfikacja",
    "name": "Porównanie parametrów fizykochemicznych wody roboczej",
    "description": "Zestawienie twardości, przewodności, pH oraz natlenienia dla wody sieciowej w zestawieniu z wytycznymi europejskiej normy dla układów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry wody w podłogówce",
      "twardość wody mmol/l",
      "przewodność wody grzewczej us/cm",
      "ph w instalacji co",
      "wymagania normy pn-en 14868"
    ],
    "measurementTechnique": "Porównanie tabelaryczne parametrów laboratoryjnych (twardość, przewodność, pH, zawartość O2) z dopuszczalnymi progami dla układów zamkniętych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Twardość: Norma wymaga poniżej 0,1 mmol/l. Kranówka dostarcza do 8,0 mmol/l.",
        "Przewodność: Kranówka 400-900 µS/cm sprzyja korozji elektrochemicznej.",
        "Biofilm: Woda z kranu stwarza wysokie ryzyko rozwoju szlamu i zatorów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-specyfikacja",
    "name": "Interaktywny Analizator Parametrów Wody",
    "description": "Narzędzie pozwalające na dynamiczne zestawienie wpływu napełnienia instalacji wodą kranową kontra wodą demineralizowaną w odniesieniu do obowiązujących norm technicznych.",
    "applicationCategory": "DiagnosticTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spec-container" id="rk-specyfikacja-wody">
    <div class="rk-spec-header">
        <h2 class="rk-spec-h2">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            Specyfikacja techniczna parametrów roboczych
        </h2>
        <p class="rk-spec-desc">
            Poniższy panel przedstawia szczegółowe porównanie fizykochemiczne w odniesieniu do rygorystycznych wymogów normy <strong>PN-EN 14868</strong>. Przełącz źródło wody, aby zobaczyć wpływ na instalację.
        </p>
    </div>

    <div class="rk-spec-controls">
        <div class="rk-spec-switch-wrapper">
            <button class="rk-spec-switch-btn active-bad" id="btn-spec-kran" onclick="rkUpdateSpec('kran')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                Surowa woda kranowa
            </button>
            <button class="rk-spec-switch-btn" id="btn-spec-demi" onclick="rkUpdateSpec('demi')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></svg>
                Demineralizowana + Inhibitor
            </button>
        </div>
    </div>

    <div class="rk-spec-grid">
        
        <!-- Parametr 1 -->
        <div class="rk-spec-card state-bad" id="spec-card-1">
            <div class="rk-spec-card-header">
                <div class="rk-spec-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2"></polygon><line x1="12" y1="22" x2="12" y2="15.5"></line><polyline points="22 8.5 12 15.5 2 8.5"></polyline><polyline points="2 15.5 12 8.5 22 15.5"></polyline><line x1="12" y1="2" x2="12" y2="8.5"></line></svg>
                </div>
                <h3 class="rk-spec-title">Twardość ogólna</h3>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wymagania PN-EN 14868</div>
                <div class="rk-spec-value-norm">≤ 0,1 mmol/l (≤ 0,56 °dH)</div>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wynik dla wybranego medium</div>
                <div class="rk-spec-value-dyn" id="val-1">2,0 – 8,0 mmol/l (11–45 °dH)</div>
            </div>
            <div class="rk-spec-data-row" style="border: none;">
                <div class="rk-spec-label">Wpływ na instalację</div>
                <div class="rk-spec-impact" id="imp-1">Wysokie ryzyko błyskawicznego odkładania się kamienia kotłowego na wymienniku, blokującego wymianę ciepła.</div>
            </div>
        </div>

        <!-- Parametr 2 -->
        <div class="rk-spec-card state-bad" id="spec-card-2">
            <div class="rk-spec-card-header">
                <div class="rk-spec-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <h3 class="rk-spec-title">Przewodność właściwa (w 25°C)</h3>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wymagania PN-EN 14868</div>
                <div class="rk-spec-value-norm">&lt; 100 µS/cm</div>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wynik dla wybranego medium</div>
                <div class="rk-spec-value-dyn" id="val-2">400 – 900 µS/cm</div>
            </div>
            <div class="rk-spec-data-row" style="border: none;">
                <div class="rk-spec-label">Wpływ na instalację</div>
                <div class="rk-spec-impact" id="imp-2">Doskonałe środowisko dla prądów galwanicznych. Drastyczne przyspieszenie <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">korozji elektrochemicznej metali</a>.</div>
            </div>
        </div>

        <!-- Parametr 3 -->
        <div class="rk-spec-card state-bad" id="spec-card-3">
            <div class="rk-spec-card-header">
                <div class="rk-spec-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M8 14s1.5 2 4 2 4-2 4-2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line></svg>
                </div>
                <h3 class="rk-spec-title">Odczyn pH</h3>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wymagania PN-EN 14868</div>
                <div class="rk-spec-value-norm">8,2 – 10,0 (zależnie od stopów)</div>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wynik dla wybranego medium</div>
                <div class="rk-spec-value-dyn" id="val-3">6,5 – 7,5</div>
            </div>
            <div class="rk-spec-data-row" style="border: none;">
                <div class="rk-spec-label">Wpływ na instalację</div>
                <div class="rk-spec-impact" id="imp-3">Zbyt niskie pH dla ochrony stali. Brak utworzenia trwałej warstwy pasywnej na elementach armatury.</div>
            </div>
        </div>

        <!-- Parametr 4 -->
        <div class="rk-spec-card state-bad" id="spec-card-4">
            <div class="rk-spec-card-header">
                <div class="rk-spec-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
                </div>
                <h3 class="rk-spec-title">Zawartość tlenu (O2) i Biofilm</h3>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wymagania normatywne</div>
                <div class="rk-spec-value-norm">&lt; 0,1 mg/l / Środowisko jałowe</div>
            </div>
            <div class="rk-spec-data-row">
                <div class="rk-spec-label">Wynik dla wybranego medium</div>
                <div class="rk-spec-value-dyn" id="val-4">8 – 11 mg/l / Obecność pożywek</div>
            </div>
            <div class="rk-spec-data-row" style="border: none;">
                <div class="rk-spec-label">Wpływ na instalację</div>
                <div class="rk-spec-impact" id="imp-4">Dostarczenie czynnika utleniającego (rdzewienie) oraz bakterii tworzących tzw. &#8222;czarny szlam&#8221; zatykający przepływy.</div>
            </div>
        </div>

    </div>
</div>

<script>
function rkUpdateSpec(mode) {
    var btnKran = document.getElementById('btn-spec-kran');
    var btnDemi = document.getElementById('btn-spec-demi');
    var cards = [
        document.getElementById('spec-card-1'),
        document.getElementById('spec-card-2'),
        document.getElementById('spec-card-3'),
        document.getElementById('spec-card-4')
    ];

    if (mode === 'kran') {
        // Przyciski
        btnKran.classList.add('active-bad');
        btnDemi.classList.remove('active-good');
        
        // Zmiana klas kart na czerwone
        for (var i = 0; i < cards.length; i++) {
            cards[i].classList.remove('state-good');
            cards[i].classList.add('state-bad');
        }

        // Twardość
        document.getElementById('val-1').innerText = "2,0 – 8,0 mmol/l (11–45 °dH)";
        document.getElementById('imp-1').innerHTML = "Wysokie ryzyko błyskawicznego odkładania się kamienia kotłowego na wymienniku, blokującego wymianę ciepła.";

        // Przewodność
        document.getElementById('val-2').innerText = "400 – 900 µS/cm";
        document.getElementById('imp-2').innerHTML = "Doskonałe środowisko dla prądów galwanicznych. Drastyczne przyspieszenie <a href=\"https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/\">korozji elektrochemicznej metali</a>.";

        // pH
        document.getElementById('val-3').innerText = "6,5 – 7,5";
        document.getElementById('imp-3').innerHTML = "Zbyt niskie pH dla ochrony stali. Brak utworzenia trwałej warstwy pasywnej na elementach armatury.";

        // Tlen / Biofilm
        document.getElementById('val-4').innerText = "8 – 11 mg/l / Obecność pożywek";
        document.getElementById('imp-4').innerHTML = "Dostarczenie czynnika utleniającego (rdzewienie) oraz bakterii tworzących tzw. \"czarny szlam\" zatykający przepływy.";

    } else {
        // Przyciski
        btnDemi.classList.add('active-good');
        btnKran.classList.remove('active-bad');
        
        // Zmiana klas kart na zielone
        for (var j = 0; j < cards.length; j++) {
            cards[j].classList.remove('state-bad');
            cards[j].classList.add('state-good');
        }

        // Twardość
        document.getElementById('val-1').innerText = "0,0 mmol/l (0 °dH)";
        document.getElementById('imp-1').innerHTML = "Całkowity brak ryzyka liniowego odkładania się izolującego kamienia kotłowego.";

        // Przewodność
        document.getElementById('val-2').innerText = "30 – 80 µS/cm";
        document.getElementById('imp-2').innerHTML = "Zredukowane do minimum ryzyko powstawania niszczących prądów galwanicznych w obrębie rozdzielacza.";

        // pH
        document.getElementById('val-3').innerText = "8,5 – 9,5 (ustabilizowane)";
        document.getElementById('imp-3').innerHTML = "Idealne środowisko pasywujące dla elementów ze stali, mosiądzu oraz bezpieczne dla aluminium.";

        // Tlen / Biofilm
        document.getElementById('val-4').innerText = "< 0,05 mg/l / Zero bakterii";
        document.getElementById('imp-4').innerHTML = "Brak utleniacza powstrzymuje rdzewienie. Dodatek biocydów trwale blokuje powstawanie biofilmu.";
    }
}
</script>



<style>
:root {
    --rk-alg-dark: #0f172a;
    --rk-alg-blue: #0284c7;
    --rk-alg-light-blue: #f0f9ff;
    --rk-alg-accent: #38bdf8;
    --rk-alg-bg: #ffffff;
    --rk-alg-border: #cbd5e1;
    --rk-alg-text: #475569;
    --rk-alg-formula: #1e293b;
}

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

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

.rk-alg-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-alg-h2 svg {
    color: var(--rk-alg-accent);
}

.rk-alg-desc {
    color: #cbd5e1;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Układ Siatki */
.rk-alg-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

@media (min-width: 900px) {
    .rk-alg-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Kolumna 1: Teoria i Wzory */
.rk-alg-theory {
    padding: 40px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-alg-border);
}

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

.rk-alg-h3 svg {
    color: var(--rk-alg-blue);
}

.rk-alg-formula-box {
    background: var(--rk-alg-bg);
    border: 1px solid var(--rk-alg-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
}

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

.rk-alg-text a {
    color: var(--rk-alg-blue);
    font-weight: 700;
    text-decoration: none;
}

.rk-alg-math {
    background: var(--rk-alg-formula);
    color: #38bdf8;
    padding: 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    letter-spacing: 1px;
}

.rk-alg-math-sub {
    font-size: 12px;
    color: #94a3b8;
    display: block;
    margin-top: 5px;
}

/* Kolumna 2: Kalkulator Interaktywny */
.rk-alg-calc {
    padding: 40px;
    background: var(--rk-alg-bg);
}

.rk-alg-control-group {
    margin-bottom: 25px;
}

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

.rk-alg-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-alg-dark);
}

.rk-alg-badge {
    background: var(--rk-alg-light-blue);
    color: var(--rk-alg-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 14px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

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

.rk-alg-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-alg-blue);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* Wyniki na żywo */
.rk-alg-results-panel {
    background: var(--rk-alg-dark);
    border-radius: 16px;
    padding: 25px;
    margin-top: 30px;
    color: #ffffff;
}

.rk-alg-res-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.rk-alg-res-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.rk-alg-res-title {
    font-size: 14px;
    color: #94a3b8;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-alg-res-val {
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
}

.rk-alg-res-val.highlight {
    color: var(--rk-alg-accent);
    font-size: 24px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-alg-header { padding: 30px 20px; text-align: left; }
    .rk-alg-h2 { justify-content: flex-start; font-size: 22px; }
    .rk-alg-theory, .rk-alg-calc { padding: 25px 20px; }
    .rk-alg-theory { border-right: none; border-bottom: 2px dashed var(--rk-alg-border); }
    .rk-alg-math { font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-zlad",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Ile litrów wody mieści się w instalacji ogrzewania podłogowego? Algorytm obliczeniowy",
    "description": "Precyzyjny inżynierski algorytm obliczania zładu wody (objętości cieczy) w systemie grzewczym oparty na fizyce płynów i parametrach rury PEX 16x2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-zlad",
    "name": "Stałe Fizyczne Zładu Wodnego (PEX/PERT 16x2)",
    "description": "Zbiór matematycznych stałych fizycznych do wyznaczania objętości czynnika grzewczego w instalacjach opartych na rurze PEX o średnicy wewnętrznej 12 mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność rury pex 16",
      "objętość wody w podłogówce",
      "kalkulator do obliczania ilości metrów rury",
      "ile wody wchodzi w 100m rury",
      "dozowanie inhibitora korozji"
    ],
    "measurementTechnique": "Obliczenie kubatury na podstawie wzoru na objętość walca (V = pi * r^2 * h) przy stałej wewnętrznej średnicy rury wynoszącej 12 mm (0,012 m).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Objętość 1 mb rury 16x2 = 0,113 litra.",
        "Stała projektowa: 100 mb rury PEX mieści 11,3 litra.",
        "Rekomendowane stężenie inhibitora: 1-2% objętości."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-zlad",
    "name": "Inżynierski Kalkulator Zładu Instalacji CO",
    "description": "Interaktywna aplikacja przeliczająca w czasie rzeczywistym całkowity zład instalacji płaszczyznowej w oparciu o wprowadzony metraż, bufor ciepła i stałe objętościowe.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-alg-container" id="rk-zlad-wody">
    <div class="rk-alg-header">
        <h2 class="rk-alg-h2">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
            Ile litrów wody mieści się w instalacji?
        </h2>
        <p class="rk-alg-desc">
            Dokładne wyliczenie zładu wody w systemie grzewczym jest kluczowe do zakupienia poprawnej ilości zdemineralizowanego medium oraz precyzyjnego dozowania inhibitora korozji (zazwyczaj 1% do 2% całkowitej objętości).
        </p>
    </div>

    <div class="rk-alg-grid">
        
        <!-- Kolumna Teoretyczna -->
        <div class="rk-alg-theory">
            <h3 class="rk-alg-h3">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Fizyka płynów w rurze PEX
            </h3>
            
            <p class="rk-alg-text">
                Najpopularniejsza <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rura PEX do ogrzewania podłogowego</a> posiada średnicę zewnętrzną 16 mm i ściankę 2 mm. Średnica wewnętrzna (d_w) to dokładnie 12 mm.
            </p>

            <div class="rk-alg-formula-box">
                <p class="rk-alg-text" style="margin-bottom: 10px; font-weight: 700;">Wzór na objętość 1 metra (Walec):</p>
                <div class="rk-alg-math">
                    V = pi * (d_w / 2)^2 * 1m
                    <span class="rk-alg-math-sub">V = 3,14159 * (0,006 m)^2 * 1 m</span>
                </div>
            </div>

            <p class="rk-alg-text" style="font-size: 15px;">
                Wynik to 0,000113 m³. Dla uproszczenia inżynierskiego przyjmujemy absolutną stałą: <br><strong style="color: var(--rk-alg-dark);">100 metrów rury PEX 16x2 mieści dokładnie 11,3 litra wody.</strong> Weryfikację tej stałej opisano w artykule <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">ile wody mieści się w 1 metrze rury pex</a>.
            </p>
        </div>

        <!-- Kolumna Interaktywna -->
        <div class="rk-alg-calc">
            <h3 class="rk-alg-h3">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                Algorytm Obliczeniowy
            </h3>

            <!-- Suwak: Metraż -->
            <div class="rk-alg-control-group">
                <div class="rk-alg-label-flex">
                    <span class="rk-alg-label">Powierzchnia grzewcza (m²)</span>
                    <span class="rk-alg-badge" id="alg-area-val">150</span>
                </div>
                <input type="range" class="rk-alg-slider" id="alg-area-input" min="50" max="350" step="5" value="150" oninput="rkRunAlg()">
            </div>

            <!-- Suwak: Bufor -->
            <div class="rk-alg-control-group">
                <div class="rk-alg-label-flex">
                    <span class="rk-alg-label"><a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color: inherit; text-decoration: none;">Pojemność bufora ciepła (L)</a></span>
                    <span class="rk-alg-badge" id="alg-buffer-val">100</span>
                </div>
                <input type="range" class="rk-alg-slider" id="alg-buffer-input" min="0" max="500" step="10" value="100" oninput="rkRunAlg()">
            </div>

            <!-- Wyniki Algorytmu -->
            <div class="rk-alg-results-panel">
                
                <div class="rk-alg-res-row">
                    <div class="rk-alg-res-title">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14v-2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2"></path><path d="M4 20v-2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2"></path></svg>
                        Długość Rur PEX (co 10cm)
                    </div>
                    <div class="rk-alg-res-val" id="alg-out-pipes">1350 mb</div>
                </div>

                <div class="rk-alg-res-row">
                    <div class="rk-alg-res-title">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                        Pojemność sekcji armatury
                    </div>
                    <div class="rk-alg-res-val" id="alg-out-armature">22 L</div>
                </div>

                <div class="rk-alg-res-row" style="border-bottom: none; margin-bottom: 0;">
                    <div class="rk-alg-res-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
                        Całkowity Zład Wody (V_całk)
                    </div>
                    <div class="rk-alg-res-val highlight" id="alg-out-total">277.5 L</div>
                </div>
            </div>

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

<script>
function rkRunAlg() {
    // Pobranie danych
    var area = parseFloat(document.getElementById('alg-area-input').value);
    var buffer = parseFloat(document.getElementById('alg-buffer-input').value);
    
    // Aktualizacja widoku suwaków
    document.getElementById('alg-area-val').innerText = area;
    document.getElementById('alg-buffer-val').innerText = buffer;

    // Stałe matematyczne z treści (Krok 1-4)
    var pipeUsagePerM2 = 9.0; // mb/m2 (przy rozstawie 10cm)
    var pipeCapPerMeter = 0.113; // litrów na mb
    var manifoldVolPerLoop = 0.5; // litrów na sekcję rozdzielacza
    var supplyPipesVol = 15.0; // stała dla pionów
    var heatPumpVol = 3.0; // źródło ciepła

    // Obliczenia krokowe
    var lPipes = area * pipeUsagePerM2; // L
    var vPetli = lPipes * pipeCapPerMeter; // Krok 1
    
    var loopsCount = Math.ceil(lPipes / 100); // ok. 100m na pętlę
    var vArm = (loopsCount * manifoldVolPerLoop) + supplyPipesVol; // Krok 2
    
    var vZrodla = heatPumpVol + buffer; // Krok 3
    
    var vCalk = vPetli + vArm + vZrodla; // Krok 4

    // Renderowanie do DOM
    document.getElementById('alg-out-pipes').innerText = Math.round(lPipes) + " mb";
    document.getElementById('alg-out-armature').innerText = Math.round(vArm) + " L";
    document.getElementById('alg-out-total').innerText = vCalk.toFixed(1) + " L";
}

// Inicjalizacja przy starcie strony
document.addEventListener("DOMContentLoaded", function() {
    rkRunAlg();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #e0f2fe;
    --rk-calc-accent: #38bdf8;
    --rk-calc-green: #10b981;
    --rk-calc-bg: #ffffff;
    --rk-calc-gray: #f8fafc;
    --rk-calc-border: #cbd5e1;
    --rk-calc-text: #334155;
}

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

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

.rk-calc-h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-calc-h2 svg {
    color: var(--rk-calc-accent);
}

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

.rk-calc-body {
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Sekcja Inputów */
.rk-calc-controls {
    background: var(--rk-calc-gray);
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
}

.rk-calc-group {
    margin-bottom: 25px;
}

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

.rk-calc-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 15px;
}

.rk-calc-val-badge {
    background: var(--rk-calc-blue);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
}

/* Suwaki (Range) */
.rk-calc-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

.rk-calc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

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

/* Przełączniki (Toggles) */
.rk-calc-toggles {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media (min-width: 768px) {
    .rk-calc-toggles {
        flex-direction: row;
    }
}

.rk-calc-btn {
    flex: 1;
    padding: 16px;
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-calc-text);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

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

/* Sekcja Wyników */
.rk-calc-results {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

@media (min-width: 768px) {
    .rk-calc-results {
        grid-template-columns: repeat(3, 1fr);
    }
}

.rk-calc-result-box {
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: border-color 0.3s;
}

.rk-calc-result-box:hover {
    border-color: var(--rk-calc-blue);
}

.rk-calc-result-box.highlight {
    background: var(--rk-calc-dark);
    border-color: var(--rk-calc-dark);
    color: #ffffff;
}

.rk-calc-res-icon {
    margin-bottom: 15px;
    display: flex;
    justify-content: center;
}

.rk-calc-res-icon svg {
    width: 40px;
    height: 40px;
    color: var(--rk-calc-blue);
}

.rk-calc-result-box.highlight .rk-calc-res-icon svg {
    color: var(--rk-calc-accent);
}

.rk-calc-res-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.rk-calc-result-box.highlight .rk-calc-res-label {
    color: #94a3b8;
}

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

.rk-calc-result-box.highlight .rk-calc-res-value {
    color: #ffffff;
}

/* Sekcja CTA z długim ogonem */
.rk-calc-cta {
    background: var(--rk-calc-blue-light);
    padding: 40px 45px;
    border-top: 1px solid var(--rk-calc-blue);
    text-align: center;
}

.rk-calc-cta h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
}

.rk-calc-cta p {
    font-size: 16px;
    color: var(--rk-calc-text);
    margin: 0 auto 25px auto;
    max-width: 650px;
    line-height: 1.6;
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-body, .rk-calc-cta { padding: 30px 20px; }
    .rk-calc-h2 { font-size: 24px; text-align: left; align-items: flex-start; }
    .rk-calc-h2 svg { margin-top: 4px; flex-shrink: 0; }
    .rk-calc-controls { padding: 20px; }
    .rk-calc-res-value { font-size: 28px; }
    .rk-calc-cta-btn { width: 100%; justify-content: center; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Kalkulator zładu wody w ogrzewaniu podłogowym - algorytm obliczeniowy",
    "description": "Interaktywne narzędzie obliczające całkowitą pojemność wodną instalacji ogrzewania podłogowego (zład wody) oraz wymaganą ilość inhibitora korozji na podstawie metrażu i rozstawu rur PEX.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-kalkulator",
    "name": "Pojemność hydrauliczna układów płaszczyznowych (PEX/PERT 16x2)",
    "description": "Zbiór zmiennych algorytmicznych wykorzystywanych do precyzyjnego wyznaczania objętości czynnika roboczego w instalacjach opartych na rozstawie rur 10 cm i 15 cm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zład wody w ogrzewaniu podłogowym",
      "pojemność rury pex 16",
      "ile wody wchodzi w podłogówkę",
      "kalkulator pojemności wodnej instalacji",
      "ilość inhibitora korozji na 100 litrów"
    ],
    "measurementTechnique": "Obliczenia objętości walca dla rur PEX 16x2 mm (pojemność jednostkowa 0,113 l/mb) powiększone o szacunkową kubaturę zładu belek rozdzielacza i źródła ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "100 mb rury PEX 16x2 = 11,3 litra zładu",
        "Średnie stężenie inhibitora ochronnego = 2% całkowitej objętości cieczy",
        "Zład strefowy rozdzielacza mosiężnego = ok. 0,5 litra na pętlę"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-kalkulator",
    "name": "Kalkulator Zładu Wody i Chemii Instalacyjnej",
    "description": "Dynamiczne narzędzie HTML5 pozwalające inwestorowi na bieżąco obliczać zapotrzebowanie na wodę demineralizowaną oraz koncentrat inhibitora w oparciu o wprowadzony metraż i zagęszczenie rur.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-kalkulator-wody">
    <div class="rk-calc-header">
        <h2 class="rk-calc-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Kalkulator Zładu Wody (PEX 16x2)
        </h2>
        <p class="rk-calc-desc">Oszacuj, ile litrów wody demineralizowanej oraz inhibitora korozji musisz kupić do swojej instalacji. Wynik uwzględnia objętość rur, rozdzielacza i standardowej pompy ciepła.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-controls">
            <!-- Powierzchnia -->
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Powierzchnia grzewcza (m²)</span>
                    <span class="rk-calc-val-badge" id="rk-area-val">120</span>
                </div>
                <input type="range" class="rk-calc-slider" id="rk-area-input" min="30" max="300" step="5" value="120" oninput="rkUpdateCalc()">
            </div>

            <!-- Rozstaw rur -->
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Dominujący rozstaw rur</span>
                </div>
                <div class="rk-calc-toggles">
                    <button class="rk-calc-btn active" id="btn-roz-10" data-val="10" onclick="rkSetSpacing(10)">Gęsty (co 10 cm)</button>
                    <button class="rk-calc-btn" id="btn-roz-15" data-val="15" onclick="rkSetSpacing(15)">Rzadszy (co 15 cm)</button>
                </div>
            </div>

            <!-- Pojemność bufora -->
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Pojemność ewentualnego bufora ciepła (litry)</span>
                    <span class="rk-calc-val-badge" id="rk-buffer-val">50</span>
                </div>
                <input type="range" class="rk-calc-slider" id="rk-buffer-input" min="0" max="300" step="10" value="50" oninput="rkUpdateCalc()">
            </div>
        </div>

        <div class="rk-calc-results">
            <!-- Wynik: Szacowane rury -->
            <div class="rk-calc-result-box">
                <div class="rk-calc-res-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14v-2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2"></path><path d="M4 20v-2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2"></path><path d="M4 8V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2"></path></svg>
                </div>
                <div class="rk-calc-res-label">Zużycie rury PEX</div>
                <div class="rk-calc-res-value" id="rk-out-pipes">1080 mb</div>
            </div>

            <!-- Wynik: Zład Wody -->
            <div class="rk-calc-result-box highlight">
                <div class="rk-calc-res-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
                </div>
                <div class="rk-calc-res-label">Całkowity zład wody</div>
                <div class="rk-calc-res-value" id="rk-out-vol">193 L</div>
            </div>

            <!-- Wynik: Chemia -->
            <div class="rk-calc-result-box">
                <div class="rk-calc-res-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 2v7.31"></path><path d="M14 9.3V1.99"></path><path d="M8.5 2h7"></path><path d="M14 9.3a6.5 6.5 0 1 1-4 0"></path><line x1="5.52" y1="16" x2="18.48" y2="16"></line></svg>
                </div>
                <div class="rk-calc-res-label">Inhibitor (stęż. 2%)</div>
                <div class="rk-calc-res-value" id="rk-out-inh">3.9 L</div>
            </div>
        </div>

    </div>

    <!-- Zoptymalizowane CTA -->
    <div class="rk-calc-cta">
        <h4>Te wyliczenia to dopiero początek drogi</h4>
        <p>
            Aby uniknąć zakupu zbyt drogiej pompy ciepła oraz precyzyjnie wyregulować przepływy na rotametrach, potrzebujesz profesjonalnego bilansu cieplnego OZC. Zamień szacunki na twarde, inżynierskie dane dopasowane do materiałów Twojego budynku.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-calc-cta-btn">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
// Zmienna przechowująca aktywny rozstaw
var currentSpacing = 10;

function rkSetSpacing(val) {
    currentSpacing = val;
    
    // Zmiana stylów przycisków
    var btn10 = document.getElementById('btn-roz-10');
    var btn15 = document.getElementById('btn-roz-15');
    
    if (val === 10) {
        btn10.classList.add('active');
        btn15.classList.remove('active');
    } else {
        btn15.classList.add('active');
        btn10.classList.remove('active');
    }
    
    rkUpdateCalc();
}

function rkUpdateCalc() {
    // Pobranie wartości z suwaków
    var area = parseFloat(document.getElementById('rk-area-input').value);
    var buffer = parseFloat(document.getElementById('rk-buffer-input').value);
    
    // Aktualizacja etykiet nad suwakami
    document.getElementById('rk-area-val').innerText = area;
    document.getElementById('rk-buffer-val').innerText = buffer;
    
    // Zmienne algorytmu
    var mbPerM2 = 9.0; // Domyślnie dla 10cm (z uwzględnieniem podejść)
    if (currentSpacing === 15) {
        mbPerM2 = 6.5; // Średnie zużycie dla 15cm
    }
    
    var pipeCapacityLiters = 0.113; // litrów na 1 mb rury 16x2
    var manifoldPerLoopLiters = 0.5; // pojemność belek na pętlę
    var supplyPipesLiters = 15.0; // rury zasilające rozdzielacz
    var heatPumpLiters = 3.0; // wymiennik małej pompy ciepła
    
    // Główne obliczenia
    var totalPipeLength = area * mbPerM2;
    var loopsCount = Math.ceil(totalPipeLength / 100); // Zakładamy średnio pętle po 100m
    
    var volumePipes = totalPipeLength * pipeCapacityLiters;
    var volumeManifold = (loopsCount * manifoldPerLoopLiters) + supplyPipesLiters;
    var volumeTotal = volumePipes + volumeManifold + heatPumpLiters + buffer;
    
    var inhibitorAmount = volumeTotal * 0.02; // Stężenie 2%
    
    // Renderowanie wyników
    document.getElementById('rk-out-pipes').innerText = Math.round(totalPipeLength) + " mb";
    document.getElementById('rk-out-vol').innerText = Math.round(volumeTotal) + " L";
    document.getElementById('rk-out-inh').innerText = inhibitorAmount.toFixed(1) + " L";
}

// Wywołanie przy pierwszym załadowaniu
document.addEventListener("DOMContentLoaded", function() {
    rkUpdateCalc();
});
</script>



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

.rk-proc-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proc-light);
    border-radius: 20px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.08);
    border: 1px solid var(--rk-proc-border);
    overflow: hidden;
}

.rk-proc-header {
    background: var(--rk-proc-dark);
    padding: 35px 40px;
    text-align: center;
    border-bottom: 4px solid var(--rk-proc-blue);
}

.rk-proc-h2 {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-proc-h2 svg {
    color: var(--rk-proc-accent);
}

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

/* Oś Czasu (Timeline) */
.rk-proc-timeline {
    padding: 40px;
    position: relative;
}

/* Pionowa linia łącząca kroki */
.rk-proc-timeline::before {
    content: '';
    position: absolute;
    top: 50px;
    bottom: 50px;
    left: 64px; /* Środek ikony (40px padding + 24px połowa ikony) */
    width: 2px;
    background: var(--rk-proc-border);
    z-index: 1;
}

.rk-proc-item {
    position: relative;
    z-index: 2;
    margin-bottom: 25px;
}

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

/* Karta Kroku */
.rk-proc-card {
    background: var(--rk-proc-step-bg);
    border: 1px solid var(--rk-proc-border);
    border-radius: 16px;
    margin-left: 60px; /* Miejsce na pływający numer */
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-proc-item.active .rk-proc-card {
    border-color: var(--rk-proc-blue);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.1);
}

/* Pływający numer kroku */
.rk-proc-number {
    position: absolute;
    left: 0;
    top: 20px; /* Wyśrodkowanie względem przycisku */
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rk-proc-step-bg);
    border: 2px solid var(--rk-proc-border);
    color: var(--rk-proc-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    transition: all 0.3s ease;
    z-index: 3;
}

.rk-proc-item.active .rk-proc-number {
    background: var(--rk-proc-blue);
    border-color: var(--rk-proc-blue);
    color: #ffffff;
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.2);
}

/* Przycisk Akordeonu */
.rk-proc-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    border-radius: 16px;
    transition: background 0.2s;
}

.rk-proc-trigger:hover {
    background: #f1f5f9;
}

.rk-proc-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-proc-dark);
    margin: 0;
    padding-right: 15px;
    line-height: 1.4;
}

.rk-proc-chevron {
    color: #94a3b8;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
}

.rk-proc-item.active .rk-proc-chevron {
    transform: rotate(180deg);
    color: var(--rk-proc-blue);
}

/* Zawartość Kroku */
.rk-proc-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-proc-inner {
    padding: 0 25px 25px 25px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media (min-width: 768px) {
    .rk-proc-inner {
        flex-direction: row;
        align-items: flex-start;
    }
}

.rk-proc-icon-box {
    flex-shrink: 0;
    width: 70px;
    height: 70px;
    background: #f0f9ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-proc-blue);
}

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

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

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

.rk-proc-text-box a:hover {
    border-bottom-color: var(--rk-proc-blue);
}

@media (max-width: 768px) {
    .rk-proc-header { padding: 25px 20px; }
    .rk-proc-h2 { font-size: 22px; }
    .rk-proc-timeline { padding: 20px 15px 20px 15px; }
    
    /* Ukrywamy fizyczną linię na telefonach, by oszczędzić miejsce, 
       zostawiamy ułożenie pionowe (akordeonowe) kart */
    .rk-proc-timeline::before { display: none; }
    
    .rk-proc-card { margin-left: 0; margin-top: 25px; }
    
    .rk-proc-number {
        top: -20px;
        left: 20px;
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .rk-proc-trigger { padding: 30px 20px 15px 20px; } /* Więcej miejsca od góry na numer */
    .rk-proc-title { font-size: 15px; }
    .rk-proc-inner { padding: 0 20px 20px 20px; }
    .rk-proc-icon-box { display: none; } /* Ukrywamy dużą ikonę na mobile dla czytelności tekstu */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-procedura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Procedura napełniania instalacji podłogówki wodą zdemineralizowaną krok po kroku",
    "description": "5-etapowy, restrykcyjny reżim technologiczny napełniania układów płaszczyznowych zapewniający homogeniczne wymieszanie inhibitora chemicznego oraz brak napowietrzenia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-procedura",
    "name": "Reżim technologiczny napełniania układów płaszczyznowych (Procedura 5-krokowa)",
    "description": "Zestawienie wytycznych ciśnieniowych i chemicznych niezbędnych do bezpiecznego uruchomienia zamkniętego układu centralnego ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ciśnieniowe płukanie wstępne",
      "pompa do prób ciśnieniowych",
      "sekwencyjne tłoczenie na rozdzielaczu",
      "próba szczelności podłogówki",
      "kontrola pH wody demineralizowanej"
    ],
    "measurementTechnique": "Badanie ciśnieniowe zgodne z PN-EN 1264-4 (3 bar) oraz weryfikacja konduktometrem i pehametrem (przewodność 30-100 µS/cm, pH 8,5-9,2).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Płukanie wodą techniczną",
        "Krok 2: Przygotowanie w stacji zalewowej",
        "Krok 3: Tłoczenie na rozdzielacz",
        "Krok 4: Próba ciśnieniowa (3 bar)",
        "Krok 5: Kontrola laboratoryjna"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-procedura",
    "name": "Symulator Procedury Napełniania Instalacji",
    "description": "Interaktywny przewodnik krok po kroku prezentujący zasady bezpiecznego napełniania instalacji podłogowych z zachowaniem norm ciśnieniowych i chemicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proc-container" id="rk-procedura-napelniania">
    <div class="rk-proc-header">
        <h2 class="rk-proc-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 19 21 12 17 5 21 12 2"></polygon></svg>
            Procedura napełniania wodą zdemineralizowaną
        </h2>
        <p class="rk-proc-desc">
            Napełnianie układu płaszczyznowego zdemineralizowanym medium wymaga zachowania restrykcyjnego reżimu technologicznego, aby nie dopuścić do napowietrzenia zładu oraz zapewnić homogeniczne wymieszanie inhibitora chemicznego.
        </p>
    </div>

    <div class="rk-proc-timeline">
        
        <!-- Krok 1 -->
        <div class="rk-proc-item active" id="proc-step-1">
            <div class="rk-proc-number">1</div>
            <div class="rk-proc-card">
                <button class="rk-proc-trigger" onclick="rkToggleProc('proc-step-1')">
                    <h3 class="rk-proc-title">Krok 1: Ciśnieniowe płukanie wstępne instalacji</h3>
                    <svg class="rk-proc-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-proc-content" style="max-height: 1000px;"> <!-- Pierwszy otwarty domyślnie -->
                    <div class="rk-proc-inner">
                        <div class="rk-proc-icon-box">
                            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
                        </div>
                        <p class="rk-proc-text-box">
                            Przed wprowadzeniem wody docelowej, cała instalacja musi zostać dokładnie przepłukana wodą czystą w celu usunięcia zanieczyszczeń poinstalacyjnych (opiłki plastiku, pozostałości kalafonii, kurz). Płukanie wykonuje się sekwencyjnie – otwarta jest tylko jedna pętla grzewcza na rozdzielaczu, aż do momentu, gdy wypływająca z niej woda będzie całkowicie klarowna. Po zakończeniu procedury dla wszystkich pętli, wodę technologiczną należy w miarę możliwości wydmuchać z układu sprężonym powietrzem.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Krok 2 -->
        <div class="rk-proc-item" id="proc-step-2">
            <div class="rk-proc-number">2</div>
            <div class="rk-proc-card">
                <button class="rk-proc-trigger" onclick="rkToggleProc('proc-step-2')">
                    <h3 class="rk-proc-title">Krok 2: Przygotowanie stacji napełniającej i chemii</h3>
                    <svg class="rk-proc-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-proc-content">
                    <div class="rk-proc-inner">
                        <div class="rk-proc-icon-box">
                            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 2v7.31"></path><path d="M14 9.3V1.99"></path><path d="M8.5 2h7"></path><path d="M14 9.3a6.5 6.5 0 1 1-4 0"></path><line x1="5.52" y1="16" x2="18.48" y2="16"></line></svg>
                        </div>
                        <p class="rk-proc-text-box">
                            Napełnianie właściwe nie może odbywać się poprzez bezpośrednie podłączenie węża ogrodowego do sieci wodociągowej. Wymagane jest użycie zewnętrznej pompy zalewowej (tzw. pompy membranowej lub pompy do prób ciśnieniowych) oraz czystego zbiornika buforowego (np. atestowanego pojemnika <strong>200-1000 litrów</strong>), do którego wlewa się zakupioną <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wodę demineralizowaną z inhibitorem korozji</a> z paletopojemnika typu IBC. W zbiorniku tym miesza się wodę z odpowiednią ilością inhibitora (np. Fernox F1 lub Sentinel X100) za pomocą mieszadła mechanicznego, uzyskując jednorodne stężenie.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Krok 3 -->
        <div class="rk-proc-item" id="proc-step-3">
            <div class="rk-proc-number">3</div>
            <div class="rk-proc-card">
                <button class="rk-proc-trigger" onclick="rkToggleProc('proc-step-3')">
                    <h3 class="rk-proc-title">Krok 3: Sekwencyjne tłoczenie medium do rozdzielaczy</h3>
                    <svg class="rk-proc-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-proc-content">
                    <div class="rk-proc-inner">
                        <div class="rk-proc-icon-box">
                            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="14" width="20" height="4" rx="1"></rect><rect x="2" y="6" width="20" height="4" rx="1"></rect><line x1="6" y1="10" x2="6" y2="14"></line><line x1="12" y1="10" x2="12" y2="14"></line><line x1="18" y1="10" x2="18" y2="14"></line></svg>
                        </div>
                        <p class="rk-proc-text-box">
                            Pompa zalewowa podłączona zostaje do zaworu napełniająco-spustowego na belce zasilającej <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza do podłogówki</a>, natomiast wąż spustowy z belki powrotnej zostaje wprowadzony z powrotem do zbiornika buforowego (tworząc obieg zamknięty). Zamyka się wszystkie pętle grzewcze oprócz pierwszej. Włącza się pompę zalewową i tłoczy zdemineralizowane medium tak długo, aż z węża spustowego przestaną wydostawać się pęcherzyki powietrza. Procedurę powtarza się po kolei dla każdej pętli grzewczej z osobna.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Krok 4 -->
        <div class="rk-proc-item" id="proc-step-4">
            <div class="rk-proc-number">4</div>
            <div class="rk-proc-card">
                <button class="rk-proc-trigger" onclick="rkToggleProc('proc-step-4')">
                    <h3 class="rk-proc-title">Krok 4: Odpowietrzenie końcowe i ciśnieniowa próba szczelności</h3>
                    <svg class="rk-proc-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-proc-content">
                    <div class="rk-proc-inner">
                        <div class="rk-proc-icon-box">
                            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><circle cx="12" cy="12" r="3"></circle><line x1="12" y1="12" x2="16" y2="8"></line></svg>
                        </div>
                        <p class="rk-proc-text-box">
                            Po napełnieniu wszystkich pętli zamyka się zawór spustowy i doprowadza ciśnienie w instalacji do poziomu roboczego podwyższonego (zazwyczaj <strong>0,3 MPa / 3 bar</strong> w celu przeprowadzenia <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próby szczelności ogrzewania podłogowego</a> zgodnie z rygorystyczną normą PN-EN 1264-4). Układ pozostawia się pod tym ciśnieniem na minimum <strong>24 godziny</strong>. Równocześnie uruchamia się pompę obiegową na najwyższym biegu przy otwartych automatycznych odpowietrznikach, w celu odseparowania resztek mikrobalonów powietrza.
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Krok 5 -->
        <div class="rk-proc-item" id="proc-step-5">
            <div class="rk-proc-number">5</div>
            <div class="rk-proc-card">
                <button class="rk-proc-trigger" onclick="rkToggleProc('proc-step-5')">
                    <h3 class="rk-proc-title">Krok 5: Weryfikacja parametrów fizykochemicznych testerem</h3>
                    <svg class="rk-proc-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-proc-content">
                    <div class="rk-proc-inner">
                        <div class="rk-proc-icon-box">
                            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="8" y1="10" x2="16" y2="10"></line><line x1="8" y1="14" x2="12" y2="14"></line><line x1="8" y1="18" x2="12" y2="18"></line></svg>
                        </div>
                        <p class="rk-proc-text-box">
                            Po zakończeniu cyklu odpowietrzania i stabilizacji ciśnienia, technik pobiera próbkę cieczy z najdalej oddalonego punktu instalacji. Za pomocą skalibrowanego konduktometru oraz pehametru elektronicznego dokonuje się pomiaru kontrolnego. Prawidłowo przygotowane i zabezpieczone medium powinno wykazać parametry: <strong>pH = 8,5 - 9,2</strong> oraz przewodność właściwą w wąskim zakresie <strong>30 - 100 µS/cm</strong> (wartość nieznacznie rośnie względem czystej wody demineralizowanej z uwagi na obecność jonów chroniących w inhibitorze). Wyniki pomiarów należy bezwzględnie wpisać do protokołu odbioru instalacji.
                        </p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function rkToggleProc(stepId) {
    var allItems = document.querySelectorAll('.rk-proc-item');
    var targetItem = document.getElementById(stepId);
    var targetContent = targetItem.querySelector('.rk-proc-content');
    
    // Sprawdzenie stanu za pomocą ścisłego porównania (bez zaprzeczeń z &&)
    var isAlreadyActive = targetItem.classList.contains('active');

    // Zwinięcie wszystkich kart
    for (var i = 0; i < allItems.length; i++) {
        allItems[i].classList.remove('active');
        allItems[i].querySelector('.rk-proc-content').style.maxHeight = null;
    }

    // Rozwinięcie klikniętej karty, jeśli była zamknięta
    if (isAlreadyActive === false) {
        targetItem.classList.add('active');
        targetContent.style.maxHeight = targetContent.scrollHeight + "px";
    }
}

// Inicjalizacja wysokości dla domyślnie otwartego pierwszego kroku
document.addEventListener("DOMContentLoaded", function() {
    var firstStep = document.getElementById('proc-step-1');
    if (firstStep) {
        var content = firstStep.querySelector('.rk-proc-content');
        content.style.maxHeight = content.scrollHeight + "px";
    }
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-danger: #ef4444;
    --rk-err-danger-bg: #fef2f2;
    --rk-err-warning: #f59e0b;
    --rk-err-warning-bg: #fffbeb;
    --rk-err-blue: #0284c7;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
}

.rk-err-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #f8fafc;
    border-radius: 20px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

.rk-err-header {
    background: #0f172a;
    padding: 35px 40px;
    text-align: center;
    border-bottom: 4px solid var(--rk-err-danger);
}

.rk-err-h2 {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-err-h2 svg {
    color: var(--rk-err-danger);
    animation: rkPulseAlert 2s infinite;
}

@keyframes rkPulseAlert {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

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

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

/* Karty błędów - Jedna kolumna (Desktop i Mobile) */
.rk-err-card {
    background: var(--rk-err-bg);
    border: 1px solid var(--rk-err-border);
    border-left: 6px solid var(--rk-err-blue);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-err-card.severity-high {
    border-left-color: var(--rk-err-danger);
}

.rk-err-card.severity-med {
    border-left-color: var(--rk-err-warning);
}

.rk-err-card.active {
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}

.rk-err-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.2s;
}

.rk-err-trigger:hover {
    background: #f1f5f9;
}

.rk-err-icon {
    width: 45px;
    height: 45px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.severity-high .rk-err-icon { background: var(--rk-err-danger-bg); color: var(--rk-err-danger); }
.severity-med .rk-err-icon { background: var(--rk-err-warning-bg); color: var(--rk-err-warning); }

.rk-err-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    flex-grow: 1;
    line-height: 1.4;
}

.rk-err-arrow {
    color: #94a3b8;
    transition: transform 0.3s ease;
}

.rk-err-card.active .rk-err-arrow {
    transform: rotate(180deg);
}

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

.rk-err-content-inner {
    padding: 0 25px 25px 85px; /* Dopasowane do szerokości ikony i odstępu */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-text);
}

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

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

.rk-err-highlight {
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
    color: var(--rk-err-dark);
    font-family: monospace;
    font-size: 14px;
}

@media (max-width: 768px) {
    .rk-err-header { padding: 25px 20px; }
    .rk-err-list { padding: 20px; }
    .rk-err-trigger { padding: 15px; gap: 15px; }
    .rk-err-icon { width: 40px; height: 40px; }
    .rk-err-title { font-size: 15px; }
    .rk-err-content-inner { padding: 0 15px 20px 15px; } /* Usunięcie dużego wcięcia na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Najczęstsze błędy popełniane podczas napełniania instalacji grzewczych",
    "description": "Zestawienie krytycznych błędów przy napełnianiu podłogówki: od braku inhibitora, przez mieszanie z kranówką, po użycie zmiękczacza domowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-bledy",
    "name": "Rejestr Błędów Instalacyjnych: Napełnianie CO",
    "description": "Analiza chemiczna i techniczna skutków błędnego przygotowania zładu wody w instalacjach płaszczyznowych i źródłach ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przyspieszona korozja chemiczna",
      "twardość węglanowa w instalacji",
      "woda ze zmiękczacza do podłogówki",
      "okno pH dla aluminium",
      "niszczenie wymienników ciepła"
    ],
    "measurementTechnique": "Weryfikacja stężenia minerałów, pomiar przewodności prądu w zładzie (µS/cm) oraz weryfikacja pH w obecności aluminium.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Woda ze zmiękczacza: Drastyczny wzrost przewodności powyżej 1000 µS/cm (ryzyko galwaniczne).",
        "Brak inhibitora: Agresywność zdemineralizowanego medium niszcząca metale.",
        "Aluminium w układzie: Wymagany ścisły reżim pH 8,2-8,5."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-bledy",
    "name": "Symulator Skutków Błędów Instalacyjnych",
    "description": "Interaktywny panel analizujący bezpośrednie konsekwencje nieprawidłowego napełniania układów grzewczych, ukazujący zjawiska korozji elektrochemicznej i degradacji pH.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-errors-panel">
    <div class="rk-err-header">
        <h2 class="rk-err-h2">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
            Najczęstsze błędy popełniane podczas napełniania
        </h2>
        <p class="rk-err-desc">Podczas prac instalacyjnych łatwo o błędy, które mogą całkowicie zniweczyć korzyści płynące ze stosowania profesjonalnego medium. Kliknij poniższe karty, aby poznać mechanikę awarii.</p>
    </div>

    <div class="rk-err-list">
        
        <!-- Błąd 1 -->
        <div class="rk-err-card severity-high" id="err-1">
            <button class="rk-err-trigger" onclick="rkToggleError('err-1')">
                <div class="rk-err-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><line x1="9" y1="9" x2="15" y2="15"></line><line x1="15" y1="9" x2="9" y2="15"></line></svg>
                </div>
                <h3 class="rk-err-title">Brak inhibitora w wodzie demineralizowanej</h3>
                <svg class="rk-err-arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-content-inner">
                    To najpoważniejszy błąd instalacyjny. Jak wykazano, pozbawiona minerałów woda dąży do autokompensacji i staje się <strong>skrajnie agresywna</strong> dla miedzi, mosiądzu i stali, wywołując przyspieszoną korozję chemiczną (zjawisko tzw. "wody głodnej"). Tak zalana instalacja ulega korozji szybciej niż zalana zwykłą kranówką. Przeczytaj więcej, jak <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">uniknąć najczęstszych błędów przy montażu podłogówki</a>.
                </div>
            </div>
        </div>

        <!-- Błąd 2 -->
        <div class="rk-err-card severity-med" id="err-2">
            <button class="rk-err-trigger" onclick="rkToggleError('err-2')">
                <div class="rk-err-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path><path d="M2 12h20"></path></svg>
                </div>
                <h3 class="rk-err-title">Mieszanie z kranówką "pół na pół"</h3>
                <svg class="rk-err-arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-content-inner">
                    Częsta praktyka instalatorów chcących oszczędzić na kosztach logistycznych i ilości kupionych baniek z wodą. Dodanie nawet 20% kranówki wprowadza do układu wystarczającą ilość twardości węglanowej oraz flory bakteryjnej, by w pełni aktywować procesy tworzenia osadów mineralnych oraz czarnego biofilmu blokującego przepływy.
                </div>
            </div>
        </div>

        <!-- Błąd 3 -->
        <div class="rk-err-card severity-high" id="err-3">
            <button class="rk-err-trigger" onclick="rkToggleError('err-3')">
                <div class="rk-err-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <h3 class="rk-err-title">Dolewanie wody ze stacji zmiękczającej (soli)</h3>
                <svg class="rk-err-arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-content-inner">
                    Woda ze zmiękczacza domowego (regenerowanego solą tabletkowaną NaCl) <strong>nie jest wodą demineralizowaną!</strong> Zmiękczacz jonitowy wymienia jony wapnia i magnezu na jony sodu. Twardość faktycznie spada, ale przewodność elektryczna takiej wody drastycznie rośnie (często przekracza <span class="rk-err-highlight">1000 µS/cm</span>), co błyskawicznie wzmaga niszczącą korozję elektrochemiczną między różnymi metalami w instalacji.
                </div>
            </div>
        </div>

        <!-- Błąd 4 -->
        <div class="rk-err-card severity-med" id="err-4">
            <button class="rk-err-trigger" onclick="rkToggleError('err-4')">
                <div class="rk-err-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M8 14s1.5 2 4 2 4-2 4-2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line></svg>
                </div>
                <h3 class="rk-err-title">Brak kontroli pH w obecności aluminium</h3>
                <svg class="rk-err-arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-content-inner">
                    Częsty błąd w układach hybrydowych. Jeżeli elementem instalacji jest na przykład aluminiowo-krzemowy wymiennik, który posiada <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a>, układ wymaga rygorystycznego utrzymania okna pH w granicach <span class="rk-err-highlight">8,2–8,5</span>. Przekroczenie pH na poziomie 9,0 (co jest bezpieczne i pożądane dla zwykłej stali) powoduje błyskawiczne rozpuszczanie warstwy pasywnej aluminium i nieodwracalne niszczenie (przeżeranie) wymiennika ciepła.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function rkToggleError(cardId) {
    var allCards = document.querySelectorAll('.rk-err-card');
    var targetCard = document.getElementById(cardId);
    var targetContent = targetCard.querySelector('.rk-err-content');
    
    var isActive = targetCard.classList.contains('active');

    // Zamykamy wszystkie karty
    for (var i = 0; i < allCards.length; i++) {
        allCards[i].classList.remove('active');
        allCards[i].querySelector('.rk-err-content').style.maxHeight = null;
    }

    // Jeśli kliknięta karta nie była aktywna, otwórz ją
    if (isActive === false) {
        targetCard.classList.add('active');
        targetContent.style.maxHeight = targetContent.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0284c7;
    --rk-cs-sky: #e0f2fe;
    --rk-cs-danger: #ef4444;
    --rk-cs-danger-dark: #991b1b;
    --rk-cs-success: #10b981;
    --rk-cs-success-dark: #065f46;
    --rk-cs-border: #cbd5e1;
    --rk-cs-bg: #ffffff;
    --rk-cs-gray-bg: #f8fafc;
    --rk-cs-text: #475569;
}

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

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

.rk-cs-h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    line-height: 1.3;
}

.rk-cs-h2 svg {
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-cs-desc {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

/* Sekcja kontrolera czasu */
.rk-cs-timeline-ctrl {
    background: var(--rk-cs-gray-bg);
    padding: 35px 45px;
    border-bottom: 1px solid var(--rk-cs-border);
    text-align: center;
}

.rk-cs-h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs-slider-wrapper {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
}

.rk-cs-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-cs-border);
    outline: none;
}

.rk-cs-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-cs-blue);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 3px 6px rgba(0,0,0,0.2);
    transition: transform 0.2s;
}

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

.rk-cs-time-labels {
    display: flex;
    justify-content: space-between;
    max-width: 600px;
    margin: 15px auto 0 auto;
    font-weight: 800;
    color: var(--rk-cs-text);
    font-size: 15px;
}

.rk-cs-time-labels span {
    position: relative;
    cursor: pointer;
    transition: color 0.3s;
}

.rk-cs-time-labels span.active {
    color: var(--rk-cs-blue);
}

/* Siatka Porównawcza */
.rk-cs-comparison {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

@media (min-width: 768px) {
    .rk-cs-comparison {
        grid-template-columns: 1fr 1fr;
    }
}

.rk-cs-scenario {
    padding: 40px;
    position: relative;
    transition: background 0.5s ease;
}

.rk-cs-scenario:first-child {
    border-bottom: 1px solid var(--rk-cs-border);
}

@media (min-width: 768px) {
    .rk-cs-scenario:first-child {
        border-bottom: none;
        border-right: 1px solid var(--rk-cs-border);
    }
}

/* Wariant Kranówka */
.rk-cs-scenario.bad { background: #fff1f2; }
.rk-cs-scenario.bad .rk-cs-scenario-title { color: var(--rk-cs-danger-dark); }
.rk-cs-scenario.bad .rk-cs-stat-val { color: var(--rk-cs-danger); }
.rk-cs-scenario.bad .rk-cs-icon-bg { background: #fee2e2; color: var(--rk-cs-danger); }

/* Wariant Demi */
.rk-cs-scenario.good { background: #ecfdf5; }
.rk-cs-scenario.good .rk-cs-scenario-title { color: var(--rk-cs-success-dark); }
.rk-cs-scenario.good .rk-cs-stat-val { color: var(--rk-cs-success); }
.rk-cs-scenario.good .rk-cs-icon-bg { background: #d1fae5; color: var(--rk-cs-success); }

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

.rk-cs-icon-bg {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-cs-scenario-title {
    font-size: 20px;
    font-weight: 900;
    margin: 0;
}

.rk-cs-stat-group {
    background: #ffffff;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    border: 1px solid rgba(0,0,0,0.05);
}

.rk-cs-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--rk-cs-border);
}

.rk-cs-stat-row:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

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

.rk-cs-stat-val {
    font-size: 18px;
    font-weight: 900;
}

.rk-cs-diagnosis {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-cs-text);
    margin: 0;
    padding-top: 10px;
}

.rk-cs-diagnosis a {
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.bad .rk-cs-diagnosis a { color: var(--rk-cs-danger-dark); }
.good .rk-cs-diagnosis a { color: var(--rk-cs-success-dark); }

@media (max-width: 768px) {
    .rk-cs-header { padding: 30px 20px; text-align: left; }
    .rk-cs-h2 { justify-content: flex-start; font-size: 22px; align-items: flex-start; }
    .rk-cs-h2 svg { margin-top: 3px; }
    .rk-cs-timeline-ctrl { padding: 25px 20px; }
    .rk-cs-scenario { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Case study: Koszty naprawy ogrzewania podłogowego po 5 i 15 latach (Kranówka vs Woda demineralizowana)",
    "description": "Symulacja długoterminowych skutków finansowych napełnienia instalacji podłogowej surową wodą. Analiza spadku sprawności i kosztów płukania zaszlamionej instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-casestudy",
    "name": "Symulacja długoterminowych kosztów eksploatacji CO (Case Study)",
    "description": "Zbiór danych empirycznych obrazujących awaryjność komponentów źródła ciepła na przestrzeni 1, 5 i 15 lat w zależności od zastosowanego medium grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "awaria pompy ciepła przez kamień kotłowy",
      "koszty naprawy ogrzewania podłogowego po 5 latach",
      "płukanie zaszlamionej instalacji podłogówki",
      "spadek wydajności ogrzewania podłogowego",
      "wymiana rozdzielacza do podłogówki cena"
    ],
    "measurementTechnique": "Szacowanie oporów cieplnych i kosztów serwisowych metodą porównawczą dla standardowego budynku 150 m2 wyposażonego w pompę ciepła i rozdzielacze mosiężne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rok 5 (Kranówka): Spadek wydajności o 15%, koszt płukania zaszlamionego układu ok. 3500 zł.",
        "Rok 15 (Kranówka): Krytyczna awaria pompy przez kamień, korozja wżerna rozdzielaczy, koszty rzędu 25000 zł.",
        "Rok 1-15 (Demi): Utrzymanie 100% sprawności, koszt eksploatacji chemii ok. 450 zł."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-casestudy",
    "name": "Kalkulator Degradacji i Kosztów Serwisowych (Wehikuł Czasu)",
    "description": "Interaktywny symulator pozwalający prześledzić narastanie usterek i kosztów w układzie płaszczyznowym na przestrzeni kilkunastu lat eksploatacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-case-study">
    <div class="rk-cs-header">
        <h2 class="rk-cs-h2">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Case Study: Koszty eksploatacji w czasie (150 m²)
        </h2>
        <p class="rk-cs-desc">
            Analiza dwóch identycznych domów z pompą ciepła. Jeden napełniono zwykłą kranówką, drugi profesjonalnym medium zdemineralizowanym. Przesuń suwak, aby zobaczyć, jak upływ czasu weryfikuje pozorne oszczędności.
        </p>
    </div>

    <div class="rk-cs-timeline-ctrl">
        <h3 class="rk-cs-h3">Symulator upływu czasu</h3>
        <div class="rk-cs-slider-wrapper">
            <input type="range" class="rk-cs-slider" id="rk-time-slider" min="1" max="3" step="1" value="1" oninput="rkUpdateTime()">
            <div class="rk-cs-time-labels">
                <span id="rk-lbl-1" class="active" onclick="rkSetSlider(1)">1 Rok</span>
                <span id="rk-lbl-2" onclick="rkSetSlider(2)">5 Lat</span>
                <span id="rk-lbl-3" onclick="rkSetSlider(3)">15 Lat</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-comparison">
        
        <!-- Scenariusz: Kranówka -->
        <div class="rk-cs-scenario bad">
            <div class="rk-cs-scenario-header">
                <div class="rk-cs-icon-bg">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h3 class="rk-cs-scenario-title">Woda z kranu (Dom A)</h3>
            </div>
            
            <div class="rk-cs-stat-group">
                <div class="rk-cs-stat-row">
                    <span class="rk-cs-stat-label">Sprawność układu</span>
                    <span class="rk-cs-stat-val" id="rk-bad-eff">98%</span>
                </div>
                <div class="rk-cs-stat-row">
                    <span class="rk-cs-stat-label">Koszt nieplanowanych napraw</span>
                    <span class="rk-cs-stat-val" id="rk-bad-cost">0 PLN</span>
                </div>
            </div>

            <p class="rk-cs-diagnosis" id="rk-bad-diag">
                Na początku wszystko wydaje się działać poprawnie. Jednak wewnątrz wymiennika zaczyna już osadzać się pierwszy, mikroskopijny film z węglanu wapnia. Zauważalny jest minimalny <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">spadek wydajności ogrzewania podłogowego</a>.
            </p>
        </div>

        <!-- Scenariusz: Demineralizowana -->
        <div class="rk-cs-scenario good">
            <div class="rk-cs-scenario-header">
                <div class="rk-cs-icon-bg">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h3 class="rk-cs-scenario-title">Woda Demi + Inhibitor (Dom B)</h3>
            </div>
            
            <div class="rk-cs-stat-group">
                <div class="rk-cs-stat-row">
                    <span class="rk-cs-stat-label">Sprawność układu</span>
                    <span class="rk-cs-stat-val" id="rk-good-eff">100%</span>
                </div>
                <div class="rk-cs-stat-row">
                    <span class="rk-cs-stat-label">Koszt eksploatacji chemii</span>
                    <span class="rk-cs-stat-val" id="rk-good-cost">0 PLN</span>
                </div>
            </div>

            <p class="rk-cs-diagnosis" id="rk-good-diag">
                Instalacja pracuje w sterylnym, stabilnym środowisku. Bufor chemiczny utrzymuje pH na poziomie 8,5, co tworzy idealną warstwę pasywną chroniącą wymiennik w <a href="https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/">pompie ciepła</a> przed jakimkolwiek rdzewieniem.
            </p>
        </div>

    </div>
</div>

<script>
function rkSetSlider(val) {
    document.getElementById('rk-time-slider').value = val;
    rkUpdateTime();
}

function rkUpdateTime() {
    var timeVal = parseInt(document.getElementById('rk-time-slider').value);
    
    // Etykiety nad suwakiem
    document.getElementById('rk-lbl-1').className = '';
    document.getElementById('rk-lbl-2').className = '';
    document.getElementById('rk-lbl-3').className = '';
    document.getElementById('rk-lbl-' + timeVal).className = 'active';

    // Elementy Dom A (Bad)
    var badEff = document.getElementById('rk-bad-eff');
    var badCost = document.getElementById('rk-bad-cost');
    var badDiag = document.getElementById('rk-bad-diag');

    // Elementy Dom B (Good)
    var goodEff = document.getElementById('rk-good-eff');
    var goodCost = document.getElementById('rk-good-cost');
    var goodDiag = document.getElementById('rk-good-diag');

    if (timeVal === 1) {
        // ROK 1
        badEff.innerText = "98%";
        badCost.innerText = "0 PLN";
        badDiag.innerHTML = "Na początku wszystko wydaje się działać poprawnie. Jednak wewnątrz wymiennika zaczyna już osadzać się pierwszy, mikroskopijny film z węglanu wapnia. Zauważalny jest minimalny <a href=\"https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/\">spadek wydajności ogrzewania podłogowego</a>.";

        goodEff.innerText = "100%";
        goodCost.innerText = "0 PLN (koszt startowy)";
        goodDiag.innerHTML = "Instalacja pracuje w sterylnym, stabilnym środowisku. Bufor chemiczny utrzymuje pH na poziomie 8,5, co tworzy idealną warstwę pasywną chroniącą wymiennik w <a href=\"https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/\">pompie ciepła</a> przed rdzewieniem.";
    } 
    else if (timeVal === 2) {
        // ROK 5
        badEff.innerText = "85%";
        badCost.innerText = "3 500 PLN";
        badDiag.innerHTML = "Poważne problemy. Kamień kotłowy dławi wymiennik. Konieczne jest agresywne, chemiczne <a href=\"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/\">płukanie zaszlamionej instalacji podłogówki</a>, aby odblokować zacięte rotametry i ratować pompę obiegową.";

        goodEff.innerText = "100%";
        goodCost.innerText = "150 PLN";
        goodDiag.innerHTML = "Instalacja pozostaje krystalicznie czysta. Przeprowadzono jedynie standardową kontrolę serwisową i profilaktyczne uzupełnienie stężenia inhibitora korozji (koszt chemii to ok. 150 zł).";
    } 
    else if (timeVal === 3) {
        // ROK 15
        badEff.innerText = "AWARIA KRYTYCZNA";
        badCost.innerText = "25 000+ PLN";
        badDiag.innerHTML = "Katastrofa hydrauliczna. Następuje <strong>awaria pompy ciepła przez kamień kotłowy</strong> (zatarty wirnik prądu stałego). Dodatkowo wżery perforują belki armatury, przez co konieczna jest całkowita <a href=\"https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/\">wymiana rozdzielacza do podłogówki (cena</a> naprawy z kłuciem posadzki to koszmar).";

        goodEff.innerText = "99%";
        goodCost.innerText = "450 PLN (Suma lat)";
        goodDiag.innerHTML = "Instalacja pracuje z rewelacyjną sprawnością, pozwalając na <a href=\"https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m2/\">rzeczywiste oszczędności na kosztach ogrzewania</a>. Pierwotny, droższy czynnik roboczy dawno się spłacił, ratując przed zakupem nowej pompy ciepła.";
    }
}
</script>



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

.rk-auth-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border: 2px solid var(--rk-auth-blue);
    border-radius: 0; /* Surowy, techniczny wygląd */
    box-shadow: 4px 4px 0px var(--rk-auth-dark); /* Twardy cień, bez rozmycia */
}

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

.rk-auth-h2 {
    font-size: 24px;
    font-weight: 900;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-auth-h2 svg {
    color: var(--rk-auth-social);
}

.rk-auth-body {
    display: flex;
    flex-direction: column;
}

@media (min-width: 768px) {
    .rk-auth-body {
        flex-direction: row;
    }
}

/* Sekcja Lewa - Profil */
.rk-auth-profile {
    padding: 30px;
    background: var(--rk-auth-light);
    border-right: 2px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
}

@media (min-width: 768px) {
    .rk-auth-profile {
        width: 320px;
        flex-shrink: 0;
    }
}

.rk-auth-image-box {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-blue);
    overflow: hidden;
    margin-bottom: 20px;
    background: var(--rk-auth-bg);
}

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

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

.rk-auth-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    margin: 0 0 20px 0;
    letter-spacing: 1px;
}

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

.rk-auth-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-auth-bg);
    border: 2px solid var(--rk-auth-border);
    padding: 10px 15px;
    color: var(--rk-auth-dark);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
}

/* Brak animacji - natychmiastowa zmiana koloru na hover */
.rk-auth-social-btn:hover {
    background: var(--rk-auth-dark);
    color: #ffffff;
    border-color: var(--rk-auth-dark);
}

/* Sekcja Prawa - Interaktywny Content */
.rk-auth-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.rk-auth-tabs {
    display: flex;
    border-bottom: 2px solid var(--rk-auth-border);
    background: var(--rk-auth-light);
    flex-wrap: wrap; /* na wypadek małych ekranów */
}

.rk-auth-tab {
    flex: 1;
    padding: 18px 15px;
    background: transparent;
    border: none;
    border-right: 2px solid var(--rk-auth-border);
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-text);
    cursor: pointer;
}

.rk-auth-tab:last-child {
    border-right: none;
}

.rk-auth-tab.active {
    background: var(--rk-auth-bg);
    color: var(--rk-auth-blue);
    border-bottom: 4px solid var(--rk-auth-blue);
    margin-bottom: -2px; /* Nakładanie na border kontenera */
}

.rk-auth-panels {
    padding: 35px 40px;
    background: var(--rk-auth-bg);
    flex-grow: 1;
}

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

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

.rk-auth-quote {
    font-size: 18px;
    line-height: 1.7;
    color: var(--rk-auth-dark);
    font-weight: 700;
    margin: 0 0 20px 0;
    border-left: 6px solid var(--rk-auth-blue);
    padding-left: 20px;
    font-style: italic;
}

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

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

.rk-auth-text a {
    color: var(--rk-auth-blue);
    font-weight: 800;
    text-decoration: underline;
}

/* RWD */
@media (max-width: 768px) {
    .rk-auth-header { padding: 20px; }
    .rk-auth-h2 { font-size: 18px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-auth-tabs { flex-direction: column; }
    .rk-auth-tab { border-right: none; border-bottom: 2px solid var(--rk-auth-border); text-align: left; padding: 15px 20px; }
    .rk-auth-tab.active { border-bottom: 4px solid var(--rk-auth-blue); }
    .rk-auth-panels { padding: 25px 20px; }
    .rk-auth-profile { border-right: none; border-bottom: 2px solid var(--rk-auth-border); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o napełnianiu instalacji CO",
    "description": "Inżynieryjny werdykt i podsumowanie eksperckie dotyczące bezpieczeństwa instalacji płaszczyznowych oraz zabezpieczenia gwarancyjnego źródeł ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC / CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-ekspert",
    "name": "Wytyczne Autorskie (Okiem Eksperta) dla bezpieczeństwa instalacji płaszczyznowych",
    "description": "Zbiór bezkompromisowych, potwierdzonych wieloletnią praktyką zasad zabezpieczenia hydraulicznego systemów CO przed utratą sprawności.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zabezpieczenie gwarancyjne pompy ciepła",
      "bezpieczeństwo instalacji płaszczyznowych",
      "autorytet w projektowaniu podłogówki",
      "wymogi chemiczne dla instalatora",
      "ochrona inwestycji grzewczej"
    ],
    "measurementTechnique": "Weryfikacja jakości montażu na podstawie danych autorskich i wytycznych inżynierskich (E-E-A-T).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Werdykt: Stosowanie kranówki to pozorna oszczędność niszcząca budżet w perspektywie 5 lat.",
        "Praktyka inżynierska: Zawsze żądaj od wykonawcy protokołu zalania czynnikiem zdemineralizowanym."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-ekspert",
    "name": "Panel Weryfikacji Autorytetu Inżynierskiego (E-E-A-T)",
    "description": "Interaktywny panel uwiarygadniający doświadczenie autora, zawierający referencje, bezpośrednie linki do kanałów eksperckich oraz ostateczny werdykt techniczny.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-ekspert-blok">
    <div class="rk-auth-header">
        <h2 class="rk-auth-h2">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Zdaniem eksperta: Robert Kucharski o napełnianiu podłogówki
        </h2>
    </div>

    <div class="rk-auth-body">
        
        <!-- Sekcja Profilowa -->
        <div class="rk-auth-profile">
            <div class="rk-auth-image-box">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Inżynier Projekt-Ogrzewania.pl">
            </div>
            <p class="rk-auth-name">Robert Kucharski</p>
            <p class="rk-auth-title">Główny Projektant HVAC</p>

            <div class="rk-auth-social-links">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="4" x2="20" y2="20"></line><line x1="20" y1="4" x2="4" y2="20"></line></svg>
                    X (Twitter)
                </a>
            </div>
        </div>

        <!-- Sekcja Interaktywna -->
        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" id="rk-tab-btn-1" onclick="rkSwitchTab('1')">Werdykt Inżynieryjny</button>
                <button class="rk-auth-tab" id="rk-tab-btn-2" onclick="rkSwitchTab('2')">Gwarancja i Ochrona</button>
            </div>

            <div class="rk-auth-panels">
                
                <!-- Panel 1 -->
                <div class="rk-auth-panel active" id="rk-tab-panel-1">
                    <p class="rk-auth-quote">
                        "Oszczędność kilkuset złotych na etapie napełniania instalacji kranówką to najdroższy kredyt, jaki inwestor może zaciągnąć na własnym domu."
                    </p>
                    <p class="rk-auth-text">
                        W swojej praktyce projektowej spotykam się z tym błędem nagminnie. Instalator podłącza wąż ogrodowy do sieci, zalewa układ wodą z dużą zawartością węglanów i uważa pracę za skończoną. Skutki tej decyzji uderzają w inwestora zazwyczaj po 4-5 sezonach grzewczych, gdy warstwa kamienia w wymienniku drastycznie tnie <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">sprawność ogrzewania podłogowego</a>, a tlen rozpuszczony inicjuje rozwój czarnego szlamu. Stosowanie wody zdemineralizowanej z inhibitorem to nie jest luksus – to twardy wymóg technologiczny układów zamkniętych.
                    </p>
                </div>

                <!-- Panel 2 -->
                <div class="rk-auth-panel" id="rk-tab-panel-2">
                    <p class="rk-auth-quote">
                        "Serwisant pompy ciepła zaczyna naprawę od zbadania parametru wody. Jeśli twardość i przewodność są przekroczone – żegnasz się z gwarancją."
                    </p>
                    <p class="rk-auth-text">
                        Zabezpieczenie instalacji płaszczyznowych oraz zabezpieczenie gwarancyjne pompy ciepła to system naczyń połączonych. Producenci urządzeń grzewczych twardo opierają swoje warunki gwarancyjne na normie <strong>PN-EN 14868</strong>. Jako inwestor, zawsze żądaj od instalatora wpisania do protokołu odbioru dokładnych wyników pomiaru: poziomu pH oraz przewodności w µS/cm. Tylko udokumentowany proces zalania układu wodą zdemineralizowaną daje Ci pełnię praw reklamacyjnych w przypadku awarii.
                    </p>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
function rkSwitchTab(tabId) {
    // Pobranie przycisków
    var btn1 = document.getElementById('rk-tab-btn-1');
    var btn2 = document.getElementById('rk-tab-btn-2');

    // Pobranie paneli
    var panel1 = document.getElementById('rk-tab-panel-1');
    var panel2 = document.getElementById('rk-tab-panel-2');

    // Zmiana przycisków (brak animacji - natychmiastowe przypisanie klas)
    if (tabId === '1') {
        btn1.classList.add('active');
        btn2.classList.remove('active');
        
        panel1.classList.add('active');
        panel2.classList.remove('active');
    } else {
        btn2.classList.add('active');
        btn1.classList.remove('active');
        
        panel2.classList.add('active');
        panel1.classList.remove('active');
    }
}
</script>



<style>
:root {
    --rk-diag-dark: #1e293b;
    --rk-diag-blue: #0284c7;
    --rk-diag-sky: #e0f2fe;
    --rk-diag-border: #cbd5e1;
    --rk-diag-text: #475569;
    --rk-diag-bg: #ffffff;
    --rk-diag-hover: #f8fafc;
    --rk-diag-icon-color: #0ea5e9;
}

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

.rk-diag-header {
    background: linear-gradient(90deg, #0f172a 0%, #1e293b 100%);
    padding: 35px 40px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-diag-header-icon {
    width: 48px;
    height: 48px;
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-diag-h2 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0;
    line-height: 1.2;
}

.rk-diag-wrapper {
    padding: 30px;
    background: #f1f5f9;
}

/* Interaktywny Akordeon */
.rk-diag-item {
    background: var(--rk-diag-bg);
    border: 1px solid var(--rk-diag-border);
    border-radius: 16px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    overflow: hidden;
}

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

.rk-diag-item.active {
    border-color: var(--rk-diag-blue);
    box-shadow: 0 8px 16px -4px rgba(2, 132, 199, 0.15);
}

.rk-diag-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: background 0.2s;
}

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

.rk-diag-icon-circle {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--rk-diag-sky);
    color: var(--rk-diag-icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-diag-item.active .rk-diag-icon-circle {
    background: var(--rk-diag-blue);
    color: #ffffff;
    transform: scale(1.1);
}

.rk-diag-q-text {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    flex-grow: 1;
    line-height: 1.4;
    margin: 0;
}

.rk-diag-chevron {
    color: var(--rk-diag-border);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-diag-item.active .rk-diag-chevron {
    transform: rotate(180deg);
    color: var(--rk-diag-blue);
}

/* Odpowiedź - Treść */
.rk-diag-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--rk-diag-bg);
}

.rk-diag-inner {
    padding: 0 25px 25px 84px; /* Odsunięcie tekstu równe ikonie + gap */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-diag-text);
}

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

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-diag-header { padding: 25px 20px; flex-direction: column; text-align: center; gap: 15px; }
    .rk-diag-wrapper { padding: 20px; }
    .rk-diag-btn { padding: 15px; gap: 15px; }
    .rk-diag-icon-circle { width: 36px; height: 36px; }
    .rk-diag-icon-circle svg { width: 18px; height: 18px; }
    .rk-diag-q-text { font-size: 15px; }
    .rk-diag-inner { padding: 0 15px 20px 15px; } /* Usunięcie lewego marginesu na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące wody demineralizowanej w CO",
    "description": "Rozwiązujemy najczęstsze wątpliwości inwestorów dotyczące kosztów, zamarzania, stosowania zmiękczaczy i degradacji wody w instalacjach ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy do napełnienia instalacji ogrzewania podłogowego mogę użyć wody ze zmiękczacza domowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, domowy zmiękczacz wody usuwa jedynie jony odpowiedzialne za twardość, zastępując je jonami sodu, co drastycznie podnosi przewodność elektryczną cieczy. Taka woda nie spełnia wymogów normy PN-EN 14868 i wykazuje wysokie właściwości korozyjne wobec metali."
        }
      },
      {
        "@type": "Question",
        "name": "Jak często należy wymieniać lub uzupełniać wodę demineralizowaną w zamkniętym układzie podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wody w poprawnie wykonanej, szczelnej instalacji grzewczej nie powinno się wymieniać nigdy, ponieważ każda nowa porcja cieczy to dostarczenie świeżego tlenu. Wszelkie ubytki ciśnienia należy uzupełniać wyłącznie gotową mieszanką wody demineralizowanej i inhibitora za pomocą pompki ręcznej."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki jest średni koszt zakupu wody demineralizowanej do domu jednorodzinnego o powierzchni 150 m²?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Koszt zakupu 300 litrów wody demineralizowanej waha się w granicach 250–400 PLN, natomiast koszt dedykowanego inhibitora korozji to około 150–250 PLN. Łączny wydatek na materiały chemiczne wynosi więc około 400–650 PLN, co stanowi ułamek kosztów w porównaniu z ryzykiem naprawy pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Czy woda demineralizowana z inhibitorem chroni instalację przed zamarznięciem podczas zimy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, woda demineralizowana oraz standardowe inhibitory korozji nie zmieniają znacząco temperatury krzepnięcia wody, która nadal wynosi około 0°C. Jeżeli budynek będzie nieogrzewany w zimie, zamiast wody należy zastosować profesjonalny płyn na bazie glikolu polipropylenowego."
        }
      },
      {
        "@type": "Question",
        "name": "Po czym poznać, że woda w mojej instalacji podłogowej uległa degradacji i szkodzi systemowi?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Głównymi objawami są: całkowite ściemnienie cieczy w rotametrach (czarny szlam), wyczuwalny zapach siarkowodoru podczas odpowietrzania oraz spadek przepływów na poszczególnych pętlach. W takim scenariuszu konieczne jest chemiczne przepłukanie instalacji i ponowne zalanie jej czystą wodą zdemineralizowaną."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-faq",
    "name": "Baza Wiedzy Eksploatacyjnej: Problemy i rozwiązania hydrauliczne",
    "description": "Zbiór danych diagnostycznych określających zachowanie układów płaszczyznowych pod wpływem różnych czynników chemicznych i temperaturowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "napełnianie układu ze zmiękczacza domowego",
      "częstotliwość wymiany wody w co",
      "koszt zabezpieczenia instalacji grzewczej",
      "temperatura krzepnięcia w podłogówce",
      "czarny szlam i zapach siarkowodoru"
    ],
    "measurementTechnique": "Diagnostyka sensoryczna i chemiczna stanu instalacji (badanie przewodności, obserwacja wzrokowa przepływów i zjawisk korozyjnych).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt ochrony chemicznej: 400-650 PLN (dla zładu 300L).",
        "Symptomy degradacji: ciemnienie cieczy na rotametrach, brak przepływu, gazowanie układu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-faq",
    "name": "Interaktywny Panel Diagnostyczny FAQ",
    "description": "Narzędzie pozwalające inwestorowi na błyskawiczną weryfikację poprawności procedur serwisowych i eksploatacyjnych systemu grzewczego.",
    "applicationCategory": "DiagnosticTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-faq-demi">
    <div class="rk-diag-header">
        <svg class="rk-diag-header-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <circle cx="12" cy="12" r="10"></circle>
            <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
            <line x1="12" y1="17" x2="12.01" y2="17"></line>
        </svg>
        <h2 class="rk-diag-h2">FAQ – Najczęściej zadawane pytania dotyczące wody demineralizowanej w CO</h2>
    </div>

    <div class="rk-diag-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-diag-item" id="faq-item-1">
            <button class="rk-diag-btn" onclick="rkToggleDiagnosticFaq('faq-item-1')">
                <div class="rk-diag-icon-circle">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                </div>
                <h3 class="rk-diag-q-text">Czy do napełnienia instalacji ogrzewania podłogowego mogę użyć wody ze zmiękczacza domowego?</h3>
                <svg class="rk-diag-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-diag-content">
                <div class="rk-diag-inner">
                    Nie, domowy zmiękczacz wody usuwa jedynie jony odpowiedzialne za twardość, zastępując je jonami sodu, co drastycznie podnosi przewodność elektryczną cieczy. Zastosowanie takiego rozwiązania sprawia, że do układu wprowadzana jest woda, która absolutnie nie spełnia wymogów normy PN-EN 14868 i wykazuje niezwykle wysokie właściwości korozyjne wobec użytych w układzie metali. Do bezpiecznego zalania układu dedykowana jest procedura opisana w poradniku: <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić instalację ogrzewania podłogowego</a>.
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-diag-item" id="faq-item-2">
            <button class="rk-diag-btn" onclick="rkToggleDiagnosticFaq('faq-item-2')">
                <div class="rk-diag-icon-circle">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.5 2v6h-6M2.13 15.57a9 9 0 1 0 3.84-10.36L2 8"></path></svg>
                </div>
                <h3 class="rk-diag-q-text">Jak często należy wymieniać lub uzupełniać wodę demineralizowaną w zamkniętym układzie podłogówki?</h3>
                <svg class="rk-diag-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-diag-content">
                <div class="rk-diag-inner">
                    Wody w poprawnie wykonanej, szczelnej instalacji grzewczej nie powinno się wymieniać **nigdy**, ponieważ każda nowa porcja cieczy to dostarczenie do układu świeżego tlenu, który wzmaga korozję. Wszelkie ubytki ciśnienia należy uzupełniać wyłącznie gotową, wcześniej przygotowaną mieszanką wody demineralizowanej i odpowiedniego inhibitora za pomocą specjalistycznej pompki ręcznej lub stacji zalewowej.
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-diag-item" id="faq-item-3">
            <button class="rk-diag-btn" onclick="rkToggleDiagnosticFaq('faq-item-3')">
                <div class="rk-diag-icon-circle">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3 class="rk-diag-q-text">Jaki jest średni koszt zakupu wody demineralizowanej do domu jednorodzinnego o powierzchni 150 m²?</h3>
                <svg class="rk-diag-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-diag-content">
                <div class="rk-diag-inner">
                    Koszt zakupu ok. 300 litrów wody demineralizowanej waha się w granicach 250–400 PLN, natomiast koszt dedykowanego inhibitora korozji to wydatek rzędu 150–250 PLN. Łączny budżet na profesjonalne materiały chemiczne zamyka się w kwocie ok. 400–650 PLN. Jak widać w zestawieniu pod nazwą <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksowa wycena ogrzewania podłogowego</a>, stanowi to ułamek całkowitych kosztów inwestycji i wielokrotnie mniejszy wydatek w porównaniu z potężnym ryzykiem uszkodzenia nowej pompy ciepła.
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-diag-item" id="faq-item-4">
            <button class="rk-diag-btn" onclick="rkToggleDiagnosticFaq('faq-item-4')">
                <div class="rk-diag-icon-circle">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                </div>
                <h3 class="rk-diag-q-text">Czy woda demineralizowana z inhibitorem chroni instalację przed zamarznięciem podczas zimy?</h3>
                <svg class="rk-diag-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-diag-content">
                <div class="rk-diag-inner">
                    Nie. Zarówno czysta woda demineralizowana, jak i standardowe inhibitory korozji nie zmieniają znacząco temperatury krzepnięcia cieczy roboczej – ta nadal wynosi w przybliżeniu 0°C. Jeżeli spodziewasz się, że budynek w okresie zimowym pozostanie całkowicie nieogrzewany, jedynym bezpiecznym wyjściem jest zastosowanie profesjonalnego płynu na bazie niezamarzających domieszek. Przeczytaj więcej w artykule: <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">glikol w ogrzewaniu podłogowym</a>.
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-diag-item" id="faq-item-5">
            <button class="rk-diag-btn" onclick="rkToggleDiagnosticFaq('faq-item-5')">
                <div class="rk-diag-icon-circle">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h3 class="rk-diag-q-text">Po czym poznać, że woda w mojej instalacji podłogowej uległa degradacji i szkodzi systemowi?</h3>
                <svg class="rk-diag-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-diag-content">
                <div class="rk-diag-inner">
                    Najważniejszymi sygnałami ostrzegawczymi są: całkowite ściemnienie cieczy i widoczny czarny osad (magnetyt), który można zaobserwować przez szybki (jeżeli posiadasz zamontowany <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr w rozdzielaczu</a>), bardzo wyraźny, drażniący zapach siarkowodoru wyczuwalny podczas odpowietrzania pionów oraz niewytłumaczalny spadek i trudności z regulacją przepływów na poszczególnych pętlach. W takim skrajnym przypadku natychmiastowo konieczne jest silne chemiczne przepłukanie całej instalacji i ponowne, poprawne zalanie jej czystą, ustabilizowaną wodą.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function rkToggleDiagnosticFaq(itemId) {
    var allItems = document.querySelectorAll('.rk-diag-item');
    var targetItem = document.getElementById(itemId);
    var targetContent = targetItem.querySelector('.rk-diag-content');
    
    // Check if the clicked item is already active
    var isActive = targetItem.classList.contains('active');

    // Close all items
    for (var i = 0; i < allItems.length; i++) {
        allItems[i].classList.remove('active');
        allItems[i].querySelector('.rk-diag-content').style.maxHeight = null;
    }

    // If it wasn't active before, open it now
    if (isActive === false) {
        targetItem.classList.add('active');
        // Calculate the height needed for the inner content
        targetContent.style.maxHeight = targetContent.scrollHeight + "px";
    }
}
</script>



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

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border: 2px solid var(--rk-dl-blue);
    border-radius: 0; /* Surowy, inżynierski styl */
    box-shadow: 6px 6px 0px var(--rk-dl-dark);
}

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

.rk-dl-h2 {
    font-size: 24px;
    font-weight: 900;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-dl-h2 svg {
    color: #38bdf8;
}

.rk-dl-body {
    display: flex;
    flex-direction: column;
    padding: 30px;
    background: var(--rk-dl-bg);
}

@media (min-width: 768px) {
    .rk-dl-body {
        flex-direction: row;
        gap: 35px;
    }
}

/* Miniatura */
.rk-dl-thumb-col {
    width: 100%;
    margin-bottom: 25px;
}

@media (min-width: 768px) {
    .rk-dl-thumb-col {
        width: 250px;
        flex-shrink: 0;
        margin-bottom: 0;
    }
}

.rk-dl-thumb-wrapper {
    width: 100%;
    border: 2px solid var(--rk-dl-border);
    padding: 5px;
    background: var(--rk-dl-gray);
    cursor: pointer;
    position: relative;
}

.rk-dl-thumb-wrapper:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-magnify {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background: var(--rk-dl-blue);
    color: #ffffff;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}

/* Treść i Przyciski */
.rk-dl-info-col {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

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

@media (min-width: 768px) {
    .rk-dl-actions {
        flex-direction: row;
    }
}

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 25px;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
}

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

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

.rk-dl-btn-secondary {
    background: transparent;
    color: var(--rk-dl-dark);
    border-color: var(--rk-dl-dark);
}

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

/* Nota Prawna */
.rk-dl-copyright {
    background: var(--rk-dl-gray);
    padding: 15px;
    border-left: 4px solid var(--rk-dl-blue);
    font-size: 12px;
    line-height: 1.5;
    color: var(--rk-dl-text);
    margin-top: auto;
}

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

/* Modal Obrazka */
.rk-dl-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.95);
    overflow: auto;
}

.rk-dl-modal-content {
    margin: 5vh auto;
    display: block;
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    border: 4px solid #ffffff;
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #ffffff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}

.rk-dl-modal-close:hover {
    color: var(--rk-dl-blue);
}

@media (max-width: 768px) {
    .rk-dl-header { padding: 20px; }
    .rk-dl-h2 { font-size: 20px; }
    .rk-dl-body { padding: 20px; }
    .rk-dl-btn { width: 100%; }
    .rk-dl-modal-close { top: 10px; right: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Materiały techniczne do pobrania: Infografika parametrów wody CO",
    "description": "Zestawienie norm PN-EN 14868 i procedur napełniania instalacji w formie podręcznej infografiki w wysokiej rozdzielczości do wydruku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/09/Infografika-Woda-demineralizowana-w-ogrzewaniu-podlogowym-–-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-14",
    "dateModified": "2026-07-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset-infografika",
    "name": "Karta Technologiczna: Parametry Wody Grzewczej (Infografika PDF)",
    "description": "Podręczny dokument PDF zawierający wizualizację skutków stosowania kranówki oraz schemat postępowania przy napełnianiu podłogówki wodą zdemineralizowaną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat napełniania instalacji ogrzewania podłogowego pdf",
      "woda zdemineralizowana do co infografika",
      "parametry wody kotłowej tabela",
      "zabezpieczenie podłogówki przed kamieniem schemat",
      "wytyczne producentów pomp ciepła pdf"
    ],
    "measurementTechnique": "Weryfikacja parametrów fizykochemicznych instalacji w skróconej formie graficznej na potrzeby instalatorów i inwestorów.",
    "mainEntity": {
      "@type": "CreativeWork",
      "name": "Infografika - Woda demineralizowana w ogrzewaniu podłogowym",
      "encodingFormat": "application/pdf"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp-viewer",
    "name": "Przeglądarka Dokumentacji Technicznej",
    "description": "Moduł umożliwiający bezpośredni podgląd i pobranie materiałów inżynierskich w formacie WebP oraz PDF.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- Kontener główny -->
<div class="rk-dl-container">
    <div class="rk-dl-header">
        <h2 class="rk-dl-h2">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały do pobrania: Infografika podsumowująca
        </h2>
    </div>

    <div class="rk-dl-body">
        
        <!-- Kolumna z miniaturą -->
        <div class="rk-dl-thumb-col">
            <div class="rk-dl-thumb-wrapper" onclick="rkToggleModal('open')">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/09/Infografika-Woda-demineralizowana-w-ogrzewaniu-podlogowym-–-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu.webp" alt="Infografika: Woda demineralizowana w ogrzewaniu podłogowym">
                <div class="rk-dl-magnify">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                </div>
            </div>
        </div>

        <!-- Kolumna z treścią -->
        <div class="rk-dl-info-col">
            <h3 class="rk-dl-h3">Karta technologiczna instalatora</h3>
            <p class="rk-dl-desc">
                Zapisz na telefonie lub wydrukuj tę ściągawkę. Znajdziesz w niej błyskawiczne zestawienie różnic pomiędzy wodą wodociągową a demineralizowaną oraz reżim procedury napełniania układu, aby chronić gwarancję pompy ciepła.
            </p>
            
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/09/Infografika-Woda-demineralizowana-w-ogrzewaniu-podlogowym-–-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu.pdf" target="_blank" class="rk-dl-btn rk-dl-btn-primary" rel="noopener noreferrer">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    Pobierz plik PDF
                </a>
                <button onclick="rkToggleModal('open')" class="rk-dl-btn rk-dl-btn-secondary">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Zobacz obraz (WebP)
                </button>
            </div>

            <div class="rk-dl-copyright">
                <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br> 
                Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
            </div>
        </div>

    </div>
</div>

<!-- Modal podglądu -->
<div id="rk-image-modal" class="rk-dl-modal">
    <span class="rk-dl-modal-close" onclick="rkToggleModal('close')">&times;</span>
    <img decoding="async" class="rk-dl-modal-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/09/Infografika-Woda-demineralizowana-w-ogrzewaniu-podlogowym-–-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu.webp" alt="Podgląd infografiki w pełnym rozmiarze">
</div>

<script>
function rkToggleModal(action) {
    var modal = document.getElementById('rk-image-modal');
    
    if (action === 'open') {
        modal.style.display = "block";
    } else {
        modal.style.display = "none";
    }
}

// Zamknięcie modala po kliknięciu w tło
document.getElementById('rk-image-modal').addEventListener('click', function(e) {
    if (e.target === this) {
        rkToggleModal('close');
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0284c7;
    --rk-fin-accent: #38bdf8;
    --rk-fin-green: #059669;
    --rk-fin-green-bg: #ecfdf5;
    --rk-fin-red: #dc2626;
    --rk-fin-red-bg: #fef2f2;
    --rk-fin-gray: #64748b;
    --rk-fin-light: #f8fafc;
    --rk-fin-border: #e2e8f0;
}

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

.rk-fin-header {
    padding: 40px 50px;
    background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-fin-border);
}

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

.rk-fin-summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

.rk-fin-interactive-area {
    padding: 40px 50px;
}

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

/* Przełączniki - Mobile First (Pionowe) -> Desktop (Poziome) */
.rk-fin-toggles {
    display: flex;
    flex-direction: column; /* Domyślnie pionowo dla mobile */
    gap: 15px;
    margin-bottom: 35px;
}

@media (min-width: 768px) {
    .rk-fin-toggles {
        flex-direction: row; /* Obok siebie tylko na szerokich ekranach */
    }
}

.rk-fin-btn {
    flex: 1;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-fin-border);
    background: #ffffff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-fin-btn.active-bad {
    background: var(--rk-fin-red-bg);
    border-color: var(--rk-fin-red);
    color: var(--rk-fin-red);
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.15);
}

.rk-fin-btn.active-good {
    background: var(--rk-fin-green-bg);
    border-color: var(--rk-fin-green);
    color: var(--rk-fin-green);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.15);
}

/* Wizualizacja */
.rk-fin-dashboard {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    background: var(--rk-fin-dark);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
}

@media (min-width: 768px) {
    .rk-fin-dashboard {
        grid-template-columns: 150px 1fr;
        align-items: center;
    }
}

.rk-fin-svg-box {
    text-align: center;
}

.rk-fin-pipe-svg {
    width: 120px;
    height: auto;
    transition: all 0.4s ease;
}

/* Animacje SVG */
.pipe-outer { fill: #cbd5e1; }
.pipe-inner { transition: fill 0.5s ease; }
.water-flow { stroke-dasharray: 10; animation: flowAnim 2s linear infinite; }
.scale-deposit { opacity: 0; transition: opacity 0.5s ease; fill: #fbbf24; }
.bact-dots { opacity: 0; transition: opacity 0.5s ease; fill: #451a03; }

.state-bad .pipe-inner { fill: #fef3c7; }
.state-bad .scale-deposit { opacity: 1; }
.state-bad .bact-dots { opacity: 1; animation: pulseBact 2s infinite; }
.state-bad .water-flow { stroke: #b45309; animation-duration: 4s; }

.state-good .pipe-inner { fill: #bae6fd; }
.state-good .scale-deposit { opacity: 0; }
.state-good .bact-dots { opacity: 0; }
.state-good .water-flow { stroke: #0284c7; animation-duration: 1.5s; }

@keyframes flowAnim {
    to { stroke-dashoffset: -20; }
}
@keyframes pulseBact {
    0%, 100% { transform: scale(1); transform-origin: center; }
    50% { transform: scale(1.2); transform-origin: center; }
}

.rk-fin-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-fin-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.rk-fin-stat-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-fin-stat-label {
    font-size: 14px;
    color: #94a3b8;
    font-weight: 600;
}

.rk-fin-stat-val {
    font-size: 18px;
    font-weight: 900;
}

.val-red { color: #f87171; }
.val-green { color: #34d399; }

/* Tagi Długi Ogon */
.rk-fin-tags {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive-area, .rk-fin-tags { padding: 30px 20px; }
}

.rk-mat-tag {
    background: #f1f5f9;
    color: var(--rk-fin-gray);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--rk-fin-border);
    transition: all 0.2s;
}

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

/* Mocne CTA */
.rk-fin-cta {
    background: var(--rk-fin-blue);
    padding: 40px 30px;
    text-align: center;
}

.rk-fin-cta h4 {
    color: #ffffff;
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 20px 0;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #ffffff;
    color: var(--rk-fin-blue);
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    text-decoration: none;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-btn-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/"
    },
    "headline": "Podsumowanie – Woda demineralizowana w ogrzewaniu podłogowym to gwarancja bezpieczeństwa",
    "description": "Zwykła woda z kranu powoduje spadek sprawności o 15% i zatarcia pomp. Tylko woda demineralizowana z inhibitorem gwarantuje bezawaryjność na dekady.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-12",
    "dateModified": "2026-07-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#dataset",
    "name": "Parametry fizykochemiczne wody roboczej w instalacjach CO (Zestawienie)",
    "description": "Porównawcze dane techniczne wpływu wody wodociągowej oraz demineralizowanej z inhibitorem na żywotność instalacji podłogowych i sprawność wymiany ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "spadek sprawności układu grzewczego",
      "zatarcia pompy obiegowej",
      "norma PN-EN 14868",
      "przewodność wody w CO",
      "ochrona gwarancji pompy ciepła"
    ],
    "measurementTechnique": "Symulacja spadku sprawności wymiennika ciepła o 15% na skutek wytrącania się kamienia kotłowego w odniesieniu do normatywów technicznych producentów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Woda z kranu: Spadek sprawności o 15%, ekstremalne ryzyko zatarcia pomp prądu stałego, utrata gwarancji.",
        "Woda demineralizowana + Inhibitor: 100% zachowania sprawności, zerowe odkładanie kamienia zgodnie z normą PN-EN 14868."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#webapp",
    "name": "Symulator Degradacji Instalacji Grzewczej",
    "description": "Interaktywny kalkulator ryzyka ukazujący wpływ zastosowania zwykłej wody kranowej kontra wody demineralizowanej z inhibitorem na najważniejsze parametry instalacji (sprawność, twardość, status gwarancji).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="woda-demi-podsumowanie">
    <div class="rk-fin-header">
        <h2 class="rk-fin-h2">Podsumowanie – Woda demineralizowana w ogrzewaniu podłogowym to gwarancja bezpieczeństwa</h2>
        <p class="rk-fin-summary-text">
            Inwestycja w wodę demineralizowaną w ogrzewaniu podłogowym to jedyna technicznie uzasadniona decyzja, która pozwala na bezawaryjną i wysokoefektywną pracę systemu grzewczego przez dekady. Zwykła woda z kranu, choć darmowa i łatwo dostępna na etapie budowy, generuje gigantyczne ryzyko w postaci odkładania się kamienia kotłowego, spadku sprawności układu o 15% oraz zatarcia nowoczesnych <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" style="color: var(--rk-fin-blue); font-weight: 700;">pomp obiegowych</a> prądu stałego. Przestrzeganie restrykcyjnych norm PN-EN 14868 oraz wytycznych producentów urządzeń grzewczych wymaga stosowania wody o zerowej twardości i minimalnej przewodności, bezwzględnie zabezpieczonej organicznym inhibitorem korozji.
        </p>
    </div>

    <div class="rk-fin-interactive-area">
        <h3 class="rk-fin-h3">Sprawdź symulację: Co wlewasz do swoich rur?</h3>
        
        <div class="rk-fin-toggles">
            <button class="rk-fin-btn" id="btn-kran" onclick="rkSwitchMedium('kranowka')">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                Zwykła woda z kranu
            </button>
            <button class="rk-fin-btn active-good" id="btn-demi" onclick="rkSwitchMedium('demi')">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></svg>
                Woda demineralizowana + Inhibitor
            </button>
        </div>

        <div class="rk-fin-dashboard state-good" id="rk-sim-board">
            <div class="rk-fin-svg-box">
                <!-- Rura w przekroju SVG -->
                <svg class="rk-fin-pipe-svg" viewBox="0 0 100 100">
                    <circle class="pipe-outer" cx="50" cy="50" r="45" />
                    <circle class="pipe-inner" cx="50" cy="50" r="35" />
                    <!-- Kamień kotłowy -->
                    <path class="scale-deposit" d="M15 50 A 35 35 0 0 0 85 50 A 30 30 0 0 1 15 50" />
                    <!-- Bakterie/Szlam -->
                    <circle class="bact-dots" cx="35" cy="70" r="3" />
                    <circle class="bact-dots" cx="65" cy="65" r="4" />
                    <circle class="bact-dots" cx="50" cy="75" r="3.5" />
                    <circle class="bact-dots" cx="45" cy="80" r="2" />
                    <!-- Przepływ -->
                    <path class="water-flow" fill="none" stroke-width="6" stroke-linecap="round" d="M30 40 Q 50 30 70 40 T 30 40" />
                    <path class="water-flow" fill="none" stroke-width="6" stroke-linecap="round" d="M30 60 Q 50 50 70 60 T 30 60" />
                </svg>
            </div>
            
            <div class="rk-fin-stats">
                <div class="rk-fin-stat-row">
                    <span class="rk-fin-stat-label">Sprawność wymiany ciepła</span>
                    <span class="rk-fin-stat-val val-green" id="stat-eff">100% (Optymalna)</span>
                </div>
                <div class="rk-fin-stat-row">
                    <span class="rk-fin-stat-label">Zgodność z PN-EN 14868</span>
                    <span class="rk-fin-stat-val val-green" id="stat-norm">SPEŁNIONA (0 °dH)</span>
                </div>
                <div class="rk-fin-stat-row">
                    <span class="rk-fin-stat-label">Gwarancja pompy ciepła</span>
                    <span class="rk-fin-stat-val val-green" id="stat-war">ZACHOWANA</span>
                </div>
                <div class="rk-fin-stat-row">
                    <span class="rk-fin-stat-label">Ryzyko awarii pompy obiegowej</span>
                    <span class="rk-fin-stat-val val-green" id="stat-risk">ZMINIMALIZOWANE</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-tags">
        <span class="rk-mat-tag"># woda demineralizowana w ogrzewaniu podłogowym</span>
        <span class="rk-mat-tag"># kamień kotłowy w instalacji co</span>
        <span class="rk-mat-tag"># zatarta pompa obiegowa</span>
        <span class="rk-mat-tag"># norma PN-EN 14868</span>
        <span class="rk-mat-tag"># spadek sprawności podłogówki</span>
        <span class="rk-mat-tag"># inhibitor korozji do ogrzewania</span>
        <span class="rk-mat-tag"># bezpieczne napełnianie instalacji</span>
        <span class="rk-mat-tag"># koszty eksploatacji pompy ciepła</span>
    </div>

    <div class="rk-fin-cta">
        <h4>Nie ryzykuj tysięcy złotych na poprawki i awarie.</h4>
        <p style="color: #bae6fd; margin-bottom: 25px; font-size: 15px;">Poznaj sprawdzone przez inżynierów procedury, normy i bezwzględne zasady montażu podłogówki z profesjonalnym źródłem ciepła.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            ZOBACZ BAZĘ WIEDZY INSTALATORA
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
function rkSwitchMedium(state) {
    var btnKran = document.getElementById('btn-kran');
    var btnDemi = document.getElementById('btn-demi');
    var board = document.getElementById('rk-sim-board');
    
    // Pola tekstowe
    var valEff = document.getElementById('stat-eff');
    var valNorm = document.getElementById('stat-norm');
    var valWar = document.getElementById('stat-war');
    var valRisk = document.getElementById('stat-risk');

    if (state === 'kranowka') {
        // Zmiana przycisków
        btnKran.classList.add('active-bad');
        btnKran.classList.remove('active-good');
        btnDemi.classList.remove('active-good');
        btnDemi.classList.remove('active-bad');
        
        // Zmiana SVG
        board.className = 'rk-fin-dashboard state-bad';

        // Aktualizacja danych na czerwone
        valEff.textContent = 'SPADEK o 15% (Kamień)';
        valEff.className = 'rk-fin-stat-val val-red';
        
        valNorm.textContent = 'NIEZGODNE (~15 °dH)';
        valNorm.className = 'rk-fin-stat-val val-red';
        
        valWar.textContent = 'ODRZUCONA / UTRACONA';
        valWar.className = 'rk-fin-stat-val val-red';
        
        valRisk.textContent = 'KRYTYCZNE (Szlam / Zatarcia)';
        valRisk.className = 'rk-fin-stat-val val-red';

    } else {
        // Zmiana przycisków
        btnDemi.classList.add('active-good');
        btnDemi.classList.remove('active-bad');
        btnKran.classList.remove('active-bad');
        btnKran.classList.remove('active-good');
        
        // Zmiana SVG
        board.className = 'rk-fin-dashboard state-good';

        // Aktualizacja danych na zielone
        valEff.textContent = '100% (Optymalna)';
        valEff.className = 'rk-fin-stat-val val-green';
        
        valNorm.textContent = 'SPEŁNIONA (0 °dH)';
        valNorm.className = 'rk-fin-stat-val val-green';
        
        valWar.textContent = 'ZACHOWANA';
        valWar.className = 'rk-fin-stat-val val-green';
        
        valRisk.textContent = 'ZMINIMALIZOWANE';
        valRisk.className = 'rk-fin-stat-val val-green';
    }
}
</script>



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

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

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

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

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "sprawdzone porady ogrzewanie podłogowe",
        "zaufany blog budowlany hvac",
        "ekspert instalacji robert kucharski",
        "najlepsze poradniki o pompach ciepła",
        "rzetelne źródło wiedzy instalacyjnej"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>
</div>

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        </div>
    </div>

</div>

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        var t_f = t_i + (q * 0.093);

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

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

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

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

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

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

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

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

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

    updateCalc();
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

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

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

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



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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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



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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>
</div>

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534;
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wytyczne zasilania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących maksymalnych limitów temperatury zasilania oraz powierzchni podłogi z uwzględnieniem specyfiki źródła ciepła i okładziny.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura zasilania wg normy",
        "value": "55°C",
        "description": "Graniczna wartość według PN-EN 1264, której przekroczenie grozi uszkodzeniem jastrychu."
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna temperatura zasilania (Pompa ciepła)",
        "value": "30-38°C",
        "description": "Zakres gwarantujący najwyższy współczynnik SCOP i energooszczędność."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura powierzchni podłogi",
        "value": "29°C",
        "description": "Limit dla stref stałego przebywania ludzi (np. salon, sypialnia) ze względów fizjologicznych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Audyt Parametrów Zasilania",
    "description": "Interaktywna aplikacja sprawdzająca, czy założenia projektowe dotyczące temperatur zasilania podłogówki są bezpieczne i zgodne z normami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Weryfikacja parametrów OZC i układu hydraulicznego",
      "Kontrola zabezpieczeń przed przegrzewem dla źródeł wysokotemperaturowych",
      "Ocena spójności między rozstawem rur a planowaną okładziną"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie i rekomendacje eksperta</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Maksymalna temperatura zasilania podłogówki to parametr, którego nie wolno lekceważyć.</p>
    </div>
    
    <div class="summary-text">
        <p>Choć norma dopuszcza graniczną wartość <strong>55°C</strong>, współczesne budownictwo oparte na efektywnych źródłach niskotemperaturowych bezwzględnie dąży do parametrów na poziomie <strong>30-38°C</strong>. Taki zakres to jedyna droga, która gwarantuje najwyższą sprawność pomp ciepła, bezpieczeństwo termiczne dla wszystkich rodzajów okładzin wierzchnich oraz idealny, bezwładnościowy komfort cieplny dla domowników.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🌡️ Audyt Bezpieczeństwa: Weryfikacja parametrów zasilania</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Projekt OZC jako absolutna podstawa</h4>
                    <p>Zawsze wymagam obliczenia projektowego zapotrzebowania na ciepło przed rozpoczęciem instalacji, aby nie dobierać temperatury zasilania "w ciemno".</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Zastosowanie zaworu mieszającego</h4>
                    <p>W przypadku współpracy z kotłem stałopalnym lub gazowym, układ jest zabezpieczony zaworem obniżającym zbyt wysoką temperaturę powrotu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Dopasowanie rozstawu pętli do okładziny</h4>
                    <p>Dobrałem gęstość rur pod rodzaj wykończenia. Zastosuję węższy rozstaw (np. co 10 cm), jeśli nad rurami znajdzie się stawiające opór termiczny drewno.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Monitorowanie temperatury powierzchni</h4>
                    <p>Układ jest tak wyregulowany, by temperatura powierzchni podłogi (np. w salonie i sypialniach) bezwzględnie nie przekraczała normatywnych 29°C.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój układ grzewczy to majstersztyk inżynierski.</h3>
            <p>Inwestycja w poprawnie zaprojektowany i wyregulowany system to nie tylko niższe rachunki za energię, ale przede wszystkim spokój na dziesięciolecia i dom wolny od kosztownych awarii wylewki i posadzek.</p>
        </div>

        <p class="success-cta-promo">Chcesz poznać inne parametry wpływające na efektywność ogrzewania? Sprawdź naszą bazę wiedzy pełną branżowych kalkulatorów i darmowych poradników!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</p>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
